{"version":3,"file":"SMAPI.entities.combined-1.0.0.min.js","names":["$","undefined","smapi","window","extend","each","proxy","noop","isFunction","Globalize","entities","AssemblyVersionModel","options","settings","jQuery","AssemblyName","FullAssemblyName","CodeBase","VersionString","ID","GID","CreatedBy","DateCreated","ModifiedBy","DateModified","APILink","self","this","ko","observable","validatedObservable","Scripts","observableArray","LoadFromResponse","responseData","loaded","length","items","Array","i","push","AssemblyScriptModel","LoadFromLink","baseApiUrl","access","getById","data","textStatus","jqXHR","container","ApiContainerModel","Status","Payload","ValidationTitle","ValidationMessages","statusText","required","message","sm","portal","utility","getResourceValue","constant","validate_FieldRequired_Key","maxLength","params","formatString","validate_0CharactersOrLess_Key","min","validate_MustBeNumeric_Key","max","number","pattern","validate_ErrorInFormat0_Key","ModelErrors","validation","group","IsVMValid","ResourceName","SimpleResourceName","DDL","AssemblyVersionID","Parent","UserModel","UserID","ApplicationID","Name","LoweredName","IsAnonymous","LastActivityDate","AssociatedTypeID","DisplayName","SurName","GivenName","Email","UserGroups","GroupModel","date","validate_MustBeADate_Key","TRSIdentityModel","Roles","RoleModel","TRSGroupIdentityModel","Description","GroupLevelID","ProviderID","ProviderKey","IsUnion","Abbreviation","GroupLevel","Groups","GroupLevelModel","TRSMembershipUserModel","ProviderName","UserName","EncryptedPassword","PasswordSalt","SourceProviderID","SourceProviderKey","LoweredEmail","PasswordQuestion","EncryptedPasswordAnswer","Comment","IsApproved","IsLockedOut","CreationDate","LastLoginDate","LastPasswordChangedDate","LastLockoutDate","FailedPasswordAttemptCount","FailedPasswordAttemptWindowStart","FailedPasswordAnswerAttemptCount","FailedPasswordAnswerAttemptWindowStart","PasswordEncryptionType","AnswerEncryptionType","ForceChangePassword","User","LoginCertificates","TRSMembershipUserCertificateModel","TRSMembershipID","UserHash","UserHashDisplay","TRSMembership","LocaleModel","Priority","InvariantDescription","IsTB","Code","SystemLocale","IsLTR","WebApplicationModel","ApplicationName","LoweredApplicationName","AuthenticationProviderDefModel","EntityBuilderModel","NamespaceName","AssemblyNameStr","IsUsingEncryption","IsChangeSession","Entities","Enumerations","Interfaces","Indexers","BuilderEntityModel","BuilderEnumerationModel","BuilderInterfaceModel","BuilderIndexerModel","ParentID","Value","TypeName","FullTypeName","ParentTypeName","IsObsolete","Cloneable","Properties","Relationships","BuilderInterfacePropertyModel","BuilderInterfaceRelationshipModel","BuilderInterfaceID","InheritedGID","AttributeName","DataType","IsPK","IsBK","HasSetter","HasGetter","IsNullable","SimpleDataType","RelationShipType","ParentDataTypeName","Singleton","Indices","BuilderIndexModel","ReturnOrdinal","EqualProperties","RangeProperties","BuilderIndexEqualPropertyModel","BuilderIndexRangePropertyModel","BuilderIndexID","BoundFieldName","CompareNull","FieldName","BoundMin","BoundMax","IncludeMin","IncludeMax","HandleNullMax","HandleNullableField","PartialClass","Implements","TableName","DBSchema","OwnedTable","CachedByPK","InterfaceEntity","EntityCode","EntityCodeName","IsParentEntity","TypeField","TypeValue","ToStringMethod","HasClusteredIndex","MainPage","Icon","IsDerivedBuilderEntity","Title","CacheName","EntityCharacteristics","DisplayMode","ShowSuperstructure","ShowObsolete","ShowCreatedResults","ShowSimpleAudit","DetailsColumnCnt","DetailsColumnDynamic","ParentInTOC","ExcludeFromApi","ManagementGrouping","MenuModule","MenuGrouping","MenuLocation","NoValidation","ExcludeFromMVC","IsUserDefined","PackageID","EmittOrder","PathToContact","Fields","Queries","DBIndices","Package","BuilderEntityFieldModel","BuilderEntityRelationshipModel","BuilderEntityQueryModel","BuilderEntityDBIndexModel","EntityModel","SDKPackageModel","BuilderEntityID","FieldOrdinal","DefaultValue","DataLength","Precision","Scale","IsAvailableForWrapper","IsIdentity","Required","IsInherited","IsFixedLength","IsInline","MinimumDataLength","HintMask","DisplayMask","IsDBHashed","IsDBEncrypted","ZoneName","IsMasked","IsLocalizable","Transient","InheritedID","MigrationDefaultValue","AttributeForRelationship","AggregateRelationship","Label","ShortLabel","Tooltip","Prompt","MinimumValue","MaximumValue","ValidationRegExStr","InvalidMessage","SourceType","SourceDisplay","SourceValue","SourceFilter","SortOrdinal","SortDirection","FieldCharacteristics","RelatedField","NaturalKey","SearchField","SearchResultField","PopupSearchField","PopupSearchResultField","LiveSearchResult","PopupJsonResult","SVDisplayField","TOCTableField","TOCListField","Hidden","Calculated","TitledDisplayGroup","DisplayGroup","IsHtml","HeaderField","ShortForm","LongForm","TitledResultsGroup","ResultsGroup","ResultsOrder","InStaticPrimary","IsPercentage","IsDateSequence","DateSeqDownstreamOperator","DateSeqUpstreamOperator","DateSeqPathToDownstreamDate","DateSeqPathToUpstreamDate","PathToCurrency","ApiSummaryField","ApiDetailedField","IsTimeSequence","StaticSectionView","PopupEditorView","ListTableHeaderView","ListTableRowView","StandardTableHeaderView","StandardTableRowView","StandardListView","StandardTableM2MView","SearchEditorView","SearchHeaderView","SearchRowView","SearchListView","DisplayReadOnly","MVCAttributes","BuilderEntityFieldMVCAttributeModel","ClassType","IsFK","IsRequired","IsAnchor","InPartial","Aggregated","CascadeAction","CsvDictionaryKeys","ParentAttribute","BackpointedAttribute","IndexerType","ForeignKeyName","HierarchyPart","InitializerPart","Characteristics","IsParent","Context","SearchFieldDepth","EditorMode","SearchMode","TOCItemMode","ApiSummaryRelationship","ApiDetailedRelationship","LockParentOnChildEdit","TOCOrdinal","SaveOrdinal","NoRecursionForATO","NoRecursionForDTO","RelationshipLinks","BuilderEntityRelationshipLinkModel","BuilderEntityRelationshipMVCAttributeModel","BuilderEntityLookupRelationshipModel","GroupIdentifierField","GroupIdentifierValue","GroupParentLookup","GroupBinding","QueryToParentLookup","BulderEntityBusinessMeaningRelationshipModel","RelationshipLinkType","MyLink","OtherLink","MyLinkProperty","OtherProperty","LiteralValue","LinkOrder","QueryName","Logical","QueryParts","QueryPartModel","BuilderEntityQueryID","QueryPartType","ObjectState","BuilderEntityQuery","QueryPartGroupModel","QueryPartBindingModel","StaticValue","QueryPartLiteralModel","LiteralString","DBClustered","DBUnique","BuilderEntityDBIndexFieldModel","SortOrder","BuilderEntityDBIndexID","SystemProtected","LookupGroupModel","LinkedEntityType","UseGroupIdentifier","GroupIdentifier","GlossaryModel","IconID","BusinessMeaningName","CategoryBusinessMeaningName","RequireCodeField","Children","IconModel","ModuleAssemblyModel","SiteModel","Modules","ModuleModel","EntityAssembly","HasScripts","ParentModuleID","Searchable","DataAssemblyList","UtilityAssemblyList","UnitTestAssemblyList","ParentModule","ChildModules","LookupGroupingModel","AnchorEntityID","AnchorEntity","LookupGroupings","LookupGroupingAssociationModel","Binding","LookupGroupingID","LookupGrouping","BuilderEntityGID","EntityType","ParentsNames","IsPartialClass","Version","VersionAdded","VersionRemoved","SuperstructureEnabled","EntityFieldModel","EntityRelationshipModel","EntityDBIndexModel","BuilderEntityFieldGID","EntityID","DBFieldName","ValidationExpression","Filter","Used","HashName","EncryptionName","Entity","EntityFieldMVCAttributeModel","BuilderEntityRelationshipGID","ToEntityID","RelationshipType","BeginDate","EndDate","LookupGroupID","HierarchyType","InitializerType","FromEntity","LookupGroup","ToEntity","EntityRelationshipLinkModel","EntityRelationshipMVCAttributeModel","BuilderRelationshipLinkGID","CurrencyModel","CultureCode","BuilderDBIndexGID","EntityDBIndexFieldModel","BuilderDBIndexFieldGID","DBIndexID","ResourceRoleModel","RoleID","ResourceID","Role","MatchListTargetModel","PathToElement","MatchListID","MatchList","MatchListModel","EntityGID","MatchCriteria","SortCriteria","Private","AdHoc","RefreshListID","ListPermissionID","MatchListItem","MatchListTargets","RefreshList","ListPermission","MatchListItemModel","ItemID","SystemLogModel","OccurredWhen","HostName","Thread","TransactionId","EntityKey","LogLevel","Location","SystemLogMessage","SystemLogMessageModel","SystemLogID","Message","SystemLog","SystemLogExceptionModel","Exception","SystemLogExtendedPropertyModel","ExtendedProperties","ReportExecModel","LocaleList","RunDate","PermissionModel","EntityPermissionID","SecuredObjectKeyString","PermissionSource","PermissionType","IsSystemRole","Permissions","GroupLevelWeight","GroupRowAccessModel","GroupID","EntityTypeID","EntityRowSecurityGroupsModel","TRSRuleSetModel","BoundTypeName","WFVersion","RuleSetStr","IsWebRule","ModuleID","Module","PersonalizationPathModel","ActualPath","LoweredPath","WebApplicationID","WebApplication","PersonalizationAllUsersModel","PageSettings","LastUpdatedDate","PathID","Path","PersonalizationPerUserModel","ProfileModel","PropertyNames","PropertyValuesString","PropertyValuesBinary","SiteID","Site","FlintCredentialModel","IconFile","ThemedIconFile","AlertModel","AlertDate","AlertTypeID","AlertType","UserRuleSetModel","RuleSetID","ParentRuleSetID","OriginalAncestorRuleSetID","Stale","StaleAsOfDate","RuleSet","ParentRuleSet","OriginalAncestorRuleSet","GroupRuleSetModel","Group","DataChangedWatcherModel","PathToWorkflowBO","WorkfowInitiationRuleset","DataChangedWatchPropertyModel","EntityFieldID","EntityField","LoggerModel","CorrelationID","WhenLogged","Elapsed","HttpMethod","URL","Details","LookupTablesLoaderModel","Type","Active","FlintSettingModel","SiteName","AllowedLocales","SystemLocales","AlwaysPromptUser","ChartImageHandler","ExternalGroupRuleSet","AllowedAssemblies","LoadWatchers","ReportServerUrl","ExtraLogging","DefaultTheme","EditModeGroup","EnableAJAX","ShowRawException","RecreateCounterCategories","ReportModel","MenuText","ShowInReportsPane","ReportPath","MenuPath","MVCActionID","ReportParametersModel","OutputFormatID","ReportTypeID","FilterCriteria","MVCAction","ReportFields","ReportFilters","ReportGroups","OutputFormat","ReportType","MVCActionModel","ReportFieldModel","ReportFilterModel","ReportGroupModel","ReportLabelModel","FieldPath","FormatID","DecimalPlacesID","AggregateFunctionID","ShowThousands","ShowCurrency","AdvancedFieldName","DisplayLabel","ExpressionPath","ExpressionID","Format","AggregateFunction","DecimalPlaces","Expression","TRSExpressionModel","OperatorID","ComparisonValue","UseAsParameter","LogicalOperator","Operator","ShowDetailRows","ShowHeaderRow","ShowFooterRow","TenantModel","MenuItemModel","MenuItemSectionID","IsReportingMenu","NavigateToURL","ImageURL","Target","MenuSequence","Placeholder","GlossaryParentID","MenuItems","GlossaryParent","MenuItemSection","PageActionModel","ResourceKey","MenuItemID","MenuItem","Controller","Action","Area","ExcludeFromHistory","DataAuditModel","AuditEntityID","AuditCreate","AuditUpdate","AuditDelete","AuditAll","AuditEntity","AuditHistoryModel","AuditKey","ChangedData","FieldID","RelationshipID","InstanceID","InstanceGID","EntityName","FieldRelationship","ContextMenuModel","ParentEntityID","TargetEntityID","ParentEntity","TargetEntity","LinkModel","LinkLabel","SourceUrl","DestUrl","LinkActionTypeID","LinkActionType","LinkCounters","LinkActionTypeModel","LinkCounterModel","TrackingCode","SentCount","ActionCount","LinkID","Link","SecurityGroupManagementConditionModel","SecurityGroupManagementID","BaseTypeID","BaseType","SecurityGroupManagement","SecurityGroupManagementModel","Enabled","ChildEntityID","ParentExpressionID","ChildExpressionID","ChildEntity","Conditions","ParentExpression","ChildExpression","TRSExpressionNodeModel","InstanceName","PropertyName","SystemType","EntityRelationshipID","ReverseEntityRelationshipID","NodeOrdinal","NodeType","IsCollection","EntityRelationship","ReverseEntityRelationship","Filters","TRSExpressionFilterModel","ExpressionType","RawExpression","EnteredValue","BoundEntityID","BoundSystemType","BoundInstanceName","ComparisonFieldID","ComparisonFieldSystemType","BoundEntity","ComparisonField","Nodes","SourceExpressionID","ComparisonExpressionID","ExpressionNodeID","SourceExpression","ComparisonExpression","ExpressionNode","LifecycleEventModel","EntityLifecycleEventModel","TRSRulesetID","LifecycleEventID","TRSRuleset","LifecycleEvent","BuildVersionModel","ApplicationSettingsModel","SettingName","SettingValue","SettingSortOrder","SettingLabel","SettingDescription","IsHidden","FieldGroupID","FormatString","RegExFormat","Mask","RegExMatch","TypeID","SimpleTypeID","FieldGroup","SimpleType","ApplicationSettingFieldGroupModel","ApplicationSettingFieldTypeModel","ApplicationSettingSimpleFieldTypeModel","AuthorID","RichDescription","DateOriginallyPublished","DateLastRevisionPublished","Author","PrerequisitePackages","Parameters","SDKPackageAuthorModel","SDKPackageParameterModel","SDKPackageID","SDKPackage","FieldFormatModel","BusinessMeaningNameUsedModel","AuthorName","ApplicationSettingTabModel","TabID","Tab","GlossaryID","IsGlossary","IncludeProtocol","IsRelativePath","Separator","ObjectValue","ObjectText","IsNewlineSeparated","CharactersEscaped","IntegrationSettingsModel","IntegratedApplicationID","IntegratedApplication","IntegratedApplicationModel","IntegrationSettingFieldGroupModel","IntegrationSettingTabModel","PollingFrequency","PollingFrequencyUnit","ListenerProcessClass","ListenerProcessActive","ListenerProcessLastActiveDate","ListenerProcessAssembly","CustomController","CustomControllerAfterSaveAction","ExtPollingFrequency","ExtPollingFrequencyUnit","ExtListenerProcessClass","ExtListenerProcessActive","ExtListenerProcessLastActiveDate","validate_GreaterThan0_Key","validate_LessThan0_Key","PasswordPatternModel","HasToContainLowerCase","HasToContainUpperCase","HasToContainDigit","HasToContainSpecialCharacter","PackageFileTypeModel","Extension","ApplicationServiceModel","VirtualDirectory","IsWebApp","SupportAssemblyModel","FileName","ApplicationServices","PackageResourceModel","SourcePath","DestPath","ApplicationServiceID","FileTypeID","ApplicationService","FileType","LoadTemplates","basePath","targetDiv","uri","ajax","url","type","async","success","template","append"],"sources":["assets/js/models/SMAPI.entities.combined-1.0.0.js"],"mappings":"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","ignoreList":[],"sourcesContent":["(function ($, undefined) {\r\n \r\n var smapi = window.smapi = window.smapi || {},\r\n extend = $.extend,\r\n each = $.each,\r\n proxy = $.proxy,\r\n noop = $.noop,\r\n isFunction = $.isFunction,\r\n globalize = window.Globalize;\r\n \r\n extend(smapi, { entities: {} });\r\n \r\n function AssemblyVersionModel(options) {\r\n var defaults = {\r\n AssemblyName: '',\r\n FullAssemblyName: '',\r\n CodeBase: '',\r\n VersionString: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.AssemblyName = ko.validatedObservable(settings.AssemblyName);\r\n this.FullAssemblyName = ko.validatedObservable(settings.FullAssemblyName);\r\n this.CodeBase = ko.validatedObservable(settings.CodeBase);\r\n this.VersionString = ko.validatedObservable(settings.VersionString);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Scripts = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.AssemblyName != undefined) {\r\n loaded.AssemblyName(responseData.AssemblyName);\r\n }\r\n if (responseData.FullAssemblyName != undefined) {\r\n loaded.FullAssemblyName(responseData.FullAssemblyName);\r\n }\r\n if (responseData.CodeBase != undefined) {\r\n loaded.CodeBase(responseData.CodeBase);\r\n }\r\n if (responseData.VersionString != undefined) {\r\n loaded.VersionString(responseData.VersionString);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Scripts != null && responseData.Scripts.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Scripts.length; i++) {\r\n items.push(new smapi.entities.AssemblyScriptModel().LoadFromResponse(responseData.Scripts[i]));\r\n }\r\n loaded.Scripts(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.AssemblyVersion', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.AssemblyName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.FullAssemblyName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 1024,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1024')\r\n }\r\n });\r\n this.CodeBase.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 1024,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1024')\r\n }\r\n });\r\n this.VersionString.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 30,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '30')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AssemblyScriptModel(options) {\r\n var defaults = {\r\n AssemblyName: '',\r\n ResourceName: '',\r\n SimpleResourceName: '',\r\n DDL: '',\r\n AssemblyVersionID: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.AssemblyName = ko.validatedObservable(settings.AssemblyName);\r\n this.ResourceName = ko.validatedObservable(settings.ResourceName);\r\n this.SimpleResourceName = ko.validatedObservable(settings.SimpleResourceName);\r\n this.DDL = ko.validatedObservable(settings.DDL);\r\n this.AssemblyVersionID = ko.validatedObservable(settings.AssemblyVersionID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.AssemblyName != undefined) {\r\n loaded.AssemblyName(responseData.AssemblyName);\r\n }\r\n if (responseData.ResourceName != undefined) {\r\n loaded.ResourceName(responseData.ResourceName);\r\n }\r\n if (responseData.SimpleResourceName != undefined) {\r\n loaded.SimpleResourceName(responseData.SimpleResourceName);\r\n }\r\n if (responseData.DDL != undefined) {\r\n loaded.DDL(responseData.DDL);\r\n }\r\n if (responseData.AssemblyVersionID != undefined) {\r\n loaded.AssemblyVersionID(responseData.AssemblyVersionID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.AssemblyVersionModel().LoadFromResponse(responseData.Parent));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.AssemblyScript', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.AssemblyName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ResourceName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 1024,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1024')\r\n }\r\n });\r\n this.SimpleResourceName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.DDL.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.AssemblyVersionID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function UserModel(options) {\r\n var defaults = {\r\n UserID: null,\r\n ApplicationID: 0,\r\n Name: '',\r\n LoweredName: '',\r\n IsAnonymous: false,\r\n LastActivityDate: null,\r\n AssociatedTypeID: 0,\r\n DisplayName: '',\r\n SurName: '',\r\n GivenName: '',\r\n Email: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.UserID = ko.validatedObservable(settings.UserID);\r\n this.ApplicationID = ko.validatedObservable(settings.ApplicationID);\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.LoweredName = ko.validatedObservable(settings.LoweredName);\r\n this.IsAnonymous = ko.validatedObservable(settings.IsAnonymous);\r\n this.LastActivityDate = ko.validatedObservable(settings.LastActivityDate);\r\n this.AssociatedTypeID = ko.validatedObservable(settings.AssociatedTypeID);\r\n this.DisplayName = ko.validatedObservable(settings.DisplayName);\r\n this.SurName = ko.validatedObservable(settings.SurName);\r\n this.GivenName = ko.validatedObservable(settings.GivenName);\r\n this.Email = ko.validatedObservable(settings.Email);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.UserGroups = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.UserID != undefined) {\r\n loaded.UserID(responseData.UserID);\r\n }\r\n if (responseData.ApplicationID != undefined) {\r\n loaded.ApplicationID(responseData.ApplicationID);\r\n }\r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.LoweredName != undefined) {\r\n loaded.LoweredName(responseData.LoweredName);\r\n }\r\n if (responseData.IsAnonymous != undefined) {\r\n loaded.IsAnonymous(responseData.IsAnonymous);\r\n }\r\n if (responseData.LastActivityDate != undefined) {\r\n loaded.LastActivityDate(responseData.LastActivityDate);\r\n }\r\n if (responseData.AssociatedTypeID != undefined) {\r\n loaded.AssociatedTypeID(responseData.AssociatedTypeID);\r\n }\r\n if (responseData.DisplayName != undefined) {\r\n loaded.DisplayName(responseData.DisplayName);\r\n }\r\n if (responseData.SurName != undefined) {\r\n loaded.SurName(responseData.SurName);\r\n }\r\n if (responseData.GivenName != undefined) {\r\n loaded.GivenName(responseData.GivenName);\r\n }\r\n if (responseData.Email != undefined) {\r\n loaded.Email(responseData.Email);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.UserGroups != null && responseData.UserGroups.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.UserGroups.length; i++) {\r\n items.push(new smapi.entities.GroupModel().LoadFromResponse(responseData.UserGroups[i]));\r\n }\r\n loaded.UserGroups(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.User', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.UserID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.ApplicationID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.LoweredName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.LastActivityDate.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AssociatedTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DisplayName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SurName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.GivenName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Email.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function TRSIdentityModel(options) {\r\n var defaults = {\r\n UserID: null,\r\n ApplicationID: 0,\r\n Name: '',\r\n LoweredName: '',\r\n IsAnonymous: false,\r\n LastActivityDate: null,\r\n AssociatedTypeID: 0,\r\n DisplayName: '',\r\n SurName: '',\r\n GivenName: '',\r\n Email: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.UserID = ko.validatedObservable(settings.UserID);\r\n this.ApplicationID = ko.validatedObservable(settings.ApplicationID);\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.LoweredName = ko.validatedObservable(settings.LoweredName);\r\n this.IsAnonymous = ko.validatedObservable(settings.IsAnonymous);\r\n this.LastActivityDate = ko.validatedObservable(settings.LastActivityDate);\r\n this.AssociatedTypeID = ko.validatedObservable(settings.AssociatedTypeID);\r\n this.DisplayName = ko.validatedObservable(settings.DisplayName);\r\n this.SurName = ko.validatedObservable(settings.SurName);\r\n this.GivenName = ko.validatedObservable(settings.GivenName);\r\n this.Email = ko.validatedObservable(settings.Email);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Roles = ko.observableArray([]);\r\n this.UserGroups = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.UserID != undefined) {\r\n loaded.UserID(responseData.UserID);\r\n }\r\n if (responseData.ApplicationID != undefined) {\r\n loaded.ApplicationID(responseData.ApplicationID);\r\n }\r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.LoweredName != undefined) {\r\n loaded.LoweredName(responseData.LoweredName);\r\n }\r\n if (responseData.IsAnonymous != undefined) {\r\n loaded.IsAnonymous(responseData.IsAnonymous);\r\n }\r\n if (responseData.LastActivityDate != undefined) {\r\n loaded.LastActivityDate(responseData.LastActivityDate);\r\n }\r\n if (responseData.AssociatedTypeID != undefined) {\r\n loaded.AssociatedTypeID(responseData.AssociatedTypeID);\r\n }\r\n if (responseData.DisplayName != undefined) {\r\n loaded.DisplayName(responseData.DisplayName);\r\n }\r\n if (responseData.SurName != undefined) {\r\n loaded.SurName(responseData.SurName);\r\n }\r\n if (responseData.GivenName != undefined) {\r\n loaded.GivenName(responseData.GivenName);\r\n }\r\n if (responseData.Email != undefined) {\r\n loaded.Email(responseData.Email);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Roles != null && responseData.Roles.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Roles.length; i++) {\r\n items.push(new smapi.entities.RoleModel().LoadFromResponse(responseData.Roles[i]));\r\n }\r\n loaded.Roles(items);\r\n }\r\n if (responseData.UserGroups != null && responseData.UserGroups.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.UserGroups.length; i++) {\r\n items.push(new smapi.entities.GroupModel().LoadFromResponse(responseData.UserGroups[i]));\r\n }\r\n loaded.UserGroups(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.TRSIdentity', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.UserID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.ApplicationID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.LoweredName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.LastActivityDate.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AssociatedTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DisplayName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SurName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.GivenName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Email.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function TRSGroupIdentityModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n GroupLevelID: null,\r\n ProviderID: null,\r\n ProviderKey: '',\r\n IsUnion: false,\r\n Abbreviation: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.GroupLevelID = ko.validatedObservable(settings.GroupLevelID);\r\n this.ProviderID = ko.validatedObservable(settings.ProviderID);\r\n this.ProviderKey = ko.validatedObservable(settings.ProviderKey);\r\n this.IsUnion = ko.validatedObservable(settings.IsUnion);\r\n this.Abbreviation = ko.validatedObservable(settings.Abbreviation);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Roles = ko.observableArray([]);\r\n this.GroupLevel = ko.observable();\r\n this.Groups = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.GroupLevelID != undefined) {\r\n loaded.GroupLevelID(responseData.GroupLevelID);\r\n }\r\n if (responseData.ProviderID != undefined) {\r\n loaded.ProviderID(responseData.ProviderID);\r\n }\r\n if (responseData.ProviderKey != undefined) {\r\n loaded.ProviderKey(responseData.ProviderKey);\r\n }\r\n if (responseData.IsUnion != undefined) {\r\n loaded.IsUnion(responseData.IsUnion);\r\n }\r\n if (responseData.Abbreviation != undefined) {\r\n loaded.Abbreviation(responseData.Abbreviation);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Roles != null && responseData.Roles.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Roles.length; i++) {\r\n items.push(new smapi.entities.RoleModel().LoadFromResponse(responseData.Roles[i]));\r\n }\r\n loaded.Roles(items);\r\n }\r\n if (responseData.GroupLevel != null) {\r\n loaded.GroupLevel(new smapi.entities.GroupLevelModel().LoadFromResponse(responseData.GroupLevel));\r\n }\r\n if (responseData.Groups != null && responseData.Groups.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Groups.length; i++) {\r\n items.push(new smapi.entities.GroupModel().LoadFromResponse(responseData.Groups[i]));\r\n }\r\n loaded.Groups(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.TRSGroupIdentity', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.GroupLevelID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ProviderID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.ProviderKey.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Abbreviation.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 10,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '10')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function TRSMembershipUserModel(options) {\r\n var defaults = {\r\n ID: 0,\r\n GID: null,\r\n ApplicationID: 0,\r\n UserID: 0,\r\n ProviderName: '',\r\n UserName: '',\r\n EncryptedPassword: '',\r\n PasswordSalt: '',\r\n SourceProviderID: null,\r\n SourceProviderKey: '',\r\n Email: '',\r\n LoweredEmail: '',\r\n PasswordQuestion: '',\r\n EncryptedPasswordAnswer: '',\r\n Comment: '',\r\n IsApproved: false,\r\n IsLockedOut: false,\r\n CreationDate: null,\r\n LastLoginDate: null,\r\n LastActivityDate: null,\r\n LastPasswordChangedDate: null,\r\n LastLockoutDate: null,\r\n FailedPasswordAttemptCount: 0,\r\n FailedPasswordAttemptWindowStart: null,\r\n FailedPasswordAnswerAttemptCount: 0,\r\n FailedPasswordAnswerAttemptWindowStart: null,\r\n PasswordEncryptionType: 0,\r\n AnswerEncryptionType: 0,\r\n ForceChangePassword: false,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.ApplicationID = ko.validatedObservable(settings.ApplicationID);\r\n this.UserID = ko.validatedObservable(settings.UserID);\r\n this.ProviderName = ko.validatedObservable(settings.ProviderName);\r\n this.UserName = ko.validatedObservable(settings.UserName);\r\n this.EncryptedPassword = ko.validatedObservable(settings.EncryptedPassword);\r\n this.PasswordSalt = ko.validatedObservable(settings.PasswordSalt);\r\n this.SourceProviderID = ko.validatedObservable(settings.SourceProviderID);\r\n this.SourceProviderKey = ko.validatedObservable(settings.SourceProviderKey);\r\n this.Email = ko.validatedObservable(settings.Email);\r\n this.LoweredEmail = ko.validatedObservable(settings.LoweredEmail);\r\n this.PasswordQuestion = ko.validatedObservable(settings.PasswordQuestion);\r\n this.EncryptedPasswordAnswer = ko.validatedObservable(settings.EncryptedPasswordAnswer);\r\n this.Comment = ko.validatedObservable(settings.Comment);\r\n this.IsApproved = ko.validatedObservable(settings.IsApproved);\r\n this.IsLockedOut = ko.validatedObservable(settings.IsLockedOut);\r\n this.CreationDate = ko.validatedObservable(settings.CreationDate);\r\n this.LastLoginDate = ko.validatedObservable(settings.LastLoginDate);\r\n this.LastActivityDate = ko.validatedObservable(settings.LastActivityDate);\r\n this.LastPasswordChangedDate = ko.validatedObservable(settings.LastPasswordChangedDate);\r\n this.LastLockoutDate = ko.validatedObservable(settings.LastLockoutDate);\r\n this.FailedPasswordAttemptCount = ko.validatedObservable(settings.FailedPasswordAttemptCount);\r\n this.FailedPasswordAttemptWindowStart = ko.validatedObservable(settings.FailedPasswordAttemptWindowStart);\r\n this.FailedPasswordAnswerAttemptCount = ko.validatedObservable(settings.FailedPasswordAnswerAttemptCount);\r\n this.FailedPasswordAnswerAttemptWindowStart = ko.validatedObservable(settings.FailedPasswordAnswerAttemptWindowStart);\r\n this.PasswordEncryptionType = ko.validatedObservable(settings.PasswordEncryptionType);\r\n this.AnswerEncryptionType = ko.validatedObservable(settings.AnswerEncryptionType);\r\n this.ForceChangePassword = ko.validatedObservable(settings.ForceChangePassword);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.User = ko.observable();\r\n this.LoginCertificates = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.ApplicationID != undefined) {\r\n loaded.ApplicationID(responseData.ApplicationID);\r\n }\r\n if (responseData.UserID != undefined) {\r\n loaded.UserID(responseData.UserID);\r\n }\r\n if (responseData.ProviderName != undefined) {\r\n loaded.ProviderName(responseData.ProviderName);\r\n }\r\n if (responseData.UserName != undefined) {\r\n loaded.UserName(responseData.UserName);\r\n }\r\n if (responseData.EncryptedPassword != undefined) {\r\n loaded.EncryptedPassword(responseData.EncryptedPassword);\r\n }\r\n if (responseData.PasswordSalt != undefined) {\r\n loaded.PasswordSalt(responseData.PasswordSalt);\r\n }\r\n if (responseData.SourceProviderID != undefined) {\r\n loaded.SourceProviderID(responseData.SourceProviderID);\r\n }\r\n if (responseData.SourceProviderKey != undefined) {\r\n loaded.SourceProviderKey(responseData.SourceProviderKey);\r\n }\r\n if (responseData.Email != undefined) {\r\n loaded.Email(responseData.Email);\r\n }\r\n if (responseData.LoweredEmail != undefined) {\r\n loaded.LoweredEmail(responseData.LoweredEmail);\r\n }\r\n if (responseData.PasswordQuestion != undefined) {\r\n loaded.PasswordQuestion(responseData.PasswordQuestion);\r\n }\r\n if (responseData.EncryptedPasswordAnswer != undefined) {\r\n loaded.EncryptedPasswordAnswer(responseData.EncryptedPasswordAnswer);\r\n }\r\n if (responseData.Comment != undefined) {\r\n loaded.Comment(responseData.Comment);\r\n }\r\n if (responseData.IsApproved != undefined) {\r\n loaded.IsApproved(responseData.IsApproved);\r\n }\r\n if (responseData.IsLockedOut != undefined) {\r\n loaded.IsLockedOut(responseData.IsLockedOut);\r\n }\r\n if (responseData.CreationDate != undefined) {\r\n loaded.CreationDate(responseData.CreationDate);\r\n }\r\n if (responseData.LastLoginDate != undefined) {\r\n loaded.LastLoginDate(responseData.LastLoginDate);\r\n }\r\n if (responseData.LastActivityDate != undefined) {\r\n loaded.LastActivityDate(responseData.LastActivityDate);\r\n }\r\n if (responseData.LastPasswordChangedDate != undefined) {\r\n loaded.LastPasswordChangedDate(responseData.LastPasswordChangedDate);\r\n }\r\n if (responseData.LastLockoutDate != undefined) {\r\n loaded.LastLockoutDate(responseData.LastLockoutDate);\r\n }\r\n if (responseData.FailedPasswordAttemptCount != undefined) {\r\n loaded.FailedPasswordAttemptCount(responseData.FailedPasswordAttemptCount);\r\n }\r\n if (responseData.FailedPasswordAttemptWindowStart != undefined) {\r\n loaded.FailedPasswordAttemptWindowStart(responseData.FailedPasswordAttemptWindowStart);\r\n }\r\n if (responseData.FailedPasswordAnswerAttemptCount != undefined) {\r\n loaded.FailedPasswordAnswerAttemptCount(responseData.FailedPasswordAnswerAttemptCount);\r\n }\r\n if (responseData.FailedPasswordAnswerAttemptWindowStart != undefined) {\r\n loaded.FailedPasswordAnswerAttemptWindowStart(responseData.FailedPasswordAnswerAttemptWindowStart);\r\n }\r\n if (responseData.PasswordEncryptionType != undefined) {\r\n loaded.PasswordEncryptionType(responseData.PasswordEncryptionType);\r\n }\r\n if (responseData.AnswerEncryptionType != undefined) {\r\n loaded.AnswerEncryptionType(responseData.AnswerEncryptionType);\r\n }\r\n if (responseData.ForceChangePassword != undefined) {\r\n loaded.ForceChangePassword(responseData.ForceChangePassword);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.User != null) {\r\n loaded.User(new smapi.entities.TRSIdentityModel().LoadFromResponse(responseData.User));\r\n }\r\n if (responseData.LoginCertificates != null && responseData.LoginCertificates.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.LoginCertificates.length; i++) {\r\n items.push(new smapi.entities.TRSMembershipUserCertificateModel().LoadFromResponse(responseData.LoginCertificates[i]));\r\n }\r\n loaded.LoginCertificates(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.TRSMembershipUser', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.ApplicationID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.UserID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ProviderName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 128,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '128')\r\n }\r\n });\r\n this.UserName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 128,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '128')\r\n }\r\n });\r\n this.EncryptedPassword.extend({\r\n maxLength: {\r\n params: 128,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '128')\r\n }\r\n });\r\n this.PasswordSalt.extend({\r\n maxLength: {\r\n params: 128,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '128')\r\n }\r\n });\r\n this.SourceProviderID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.SourceProviderKey.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 128,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '128')\r\n }\r\n });\r\n this.Email.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 256,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '256')\r\n }\r\n });\r\n this.LoweredEmail.extend({\r\n maxLength: {\r\n params: 256,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '256')\r\n }\r\n });\r\n this.PasswordQuestion.extend({\r\n maxLength: {\r\n params: 256,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '256')\r\n }\r\n });\r\n this.EncryptedPasswordAnswer.extend({\r\n maxLength: {\r\n params: 128,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '128')\r\n }\r\n });\r\n this.CreationDate.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.LastLoginDate.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.LastActivityDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.LastPasswordChangedDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.LastLockoutDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.FailedPasswordAttemptCount.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.FailedPasswordAttemptWindowStart.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.FailedPasswordAnswerAttemptCount.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.FailedPasswordAnswerAttemptWindowStart.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.PasswordEncryptionType.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AnswerEncryptionType.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function TRSMembershipUserCertificateModel(options) {\r\n var defaults = {\r\n TRSMembershipID: 0,\r\n UserHash: '',\r\n UserHashDisplay: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.TRSMembershipID = ko.validatedObservable(settings.TRSMembershipID);\r\n this.UserHash = ko.validatedObservable(settings.UserHash);\r\n this.UserHashDisplay = ko.validatedObservable(settings.UserHashDisplay);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.TRSMembership = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.TRSMembershipID != undefined) {\r\n loaded.TRSMembershipID(responseData.TRSMembershipID);\r\n }\r\n if (responseData.UserHash != undefined) {\r\n loaded.UserHash(responseData.UserHash);\r\n }\r\n if (responseData.UserHashDisplay != undefined) {\r\n loaded.UserHashDisplay(responseData.UserHashDisplay);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.TRSMembership != null) {\r\n loaded.TRSMembership(new smapi.entities.TRSMembershipUserModel().LoadFromResponse(responseData.TRSMembership));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.TRSMembershipUserCertificate', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.TRSMembershipID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.UserHash.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 128,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '128')\r\n }\r\n });\r\n this.UserHashDisplay.extend({\r\n maxLength: {\r\n params: 128,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '128')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function LocaleModel(options) {\r\n var defaults = {\r\n Priority: 0,\r\n InvariantDescription: '',\r\n IsTB: false,\r\n Description: '',\r\n Code: '',\r\n SystemLocale: false,\r\n IsLTR: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Priority = ko.validatedObservable(settings.Priority);\r\n this.InvariantDescription = ko.validatedObservable(settings.InvariantDescription);\r\n this.IsTB = ko.validatedObservable(settings.IsTB);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.Code = ko.validatedObservable(settings.Code);\r\n this.SystemLocale = ko.validatedObservable(settings.SystemLocale);\r\n this.IsLTR = ko.validatedObservable(settings.IsLTR);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Priority != undefined) {\r\n loaded.Priority(responseData.Priority);\r\n }\r\n if (responseData.InvariantDescription != undefined) {\r\n loaded.InvariantDescription(responseData.InvariantDescription);\r\n }\r\n if (responseData.IsTB != undefined) {\r\n loaded.IsTB(responseData.IsTB);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.Code != undefined) {\r\n loaded.Code(responseData.Code);\r\n }\r\n if (responseData.SystemLocale != undefined) {\r\n loaded.SystemLocale(responseData.SystemLocale);\r\n }\r\n if (responseData.IsLTR != undefined) {\r\n loaded.IsLTR(responseData.IsLTR);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.Locale', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Priority.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.InvariantDescription.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Code.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 6,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '6')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function WebApplicationModel(options) {\r\n var defaults = {\r\n ApplicationName: '',\r\n LoweredApplicationName: '',\r\n Description: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ApplicationName = ko.validatedObservable(settings.ApplicationName);\r\n this.LoweredApplicationName = ko.validatedObservable(settings.LoweredApplicationName);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ApplicationName != undefined) {\r\n loaded.ApplicationName(responseData.ApplicationName);\r\n }\r\n if (responseData.LoweredApplicationName != undefined) {\r\n loaded.LoweredApplicationName(responseData.LoweredApplicationName);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.WebApplication', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ApplicationName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.LoweredApplicationName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AuthenticationProviderDefModel(options) {\r\n var defaults = {\r\n ProviderID: null,\r\n ProviderName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ProviderID = ko.validatedObservable(settings.ProviderID);\r\n this.ProviderName = ko.validatedObservable(settings.ProviderName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ProviderID != undefined) {\r\n loaded.ProviderID(responseData.ProviderID);\r\n }\r\n if (responseData.ProviderName != undefined) {\r\n loaded.ProviderName(responseData.ProviderName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.AuthenticationProviderDef', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ProviderID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.ProviderName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function EntityBuilderModel(options) {\r\n var defaults = {\r\n NamespaceName: '',\r\n AssemblyNameStr: '',\r\n VersionString: '',\r\n IsUsingEncryption: false,\r\n IsChangeSession: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.NamespaceName = ko.validatedObservable(settings.NamespaceName);\r\n this.AssemblyNameStr = ko.validatedObservable(settings.AssemblyNameStr);\r\n this.VersionString = ko.validatedObservable(settings.VersionString);\r\n this.IsUsingEncryption = ko.validatedObservable(settings.IsUsingEncryption);\r\n this.IsChangeSession = ko.validatedObservable(settings.IsChangeSession);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Entities = ko.observableArray([]);\r\n this.Enumerations = ko.observableArray([]);\r\n this.Interfaces = ko.observableArray([]);\r\n this.Indexers = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.NamespaceName != undefined) {\r\n loaded.NamespaceName(responseData.NamespaceName);\r\n }\r\n if (responseData.AssemblyNameStr != undefined) {\r\n loaded.AssemblyNameStr(responseData.AssemblyNameStr);\r\n }\r\n if (responseData.VersionString != undefined) {\r\n loaded.VersionString(responseData.VersionString);\r\n }\r\n if (responseData.IsUsingEncryption != undefined) {\r\n loaded.IsUsingEncryption(responseData.IsUsingEncryption);\r\n }\r\n if (responseData.IsChangeSession != undefined) {\r\n loaded.IsChangeSession(responseData.IsChangeSession);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Entities != null && responseData.Entities.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Entities.length; i++) {\r\n items.push(new smapi.entities.BuilderEntityModel().LoadFromResponse(responseData.Entities[i]));\r\n }\r\n loaded.Entities(items);\r\n }\r\n if (responseData.Enumerations != null && responseData.Enumerations.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Enumerations.length; i++) {\r\n items.push(new smapi.entities.BuilderEnumerationModel().LoadFromResponse(responseData.Enumerations[i]));\r\n }\r\n loaded.Enumerations(items);\r\n }\r\n if (responseData.Interfaces != null && responseData.Interfaces.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Interfaces.length; i++) {\r\n items.push(new smapi.entities.BuilderInterfaceModel().LoadFromResponse(responseData.Interfaces[i]));\r\n }\r\n loaded.Interfaces(items);\r\n }\r\n if (responseData.Indexers != null && responseData.Indexers.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Indexers.length; i++) {\r\n items.push(new smapi.entities.BuilderIndexerModel().LoadFromResponse(responseData.Indexers[i]));\r\n }\r\n loaded.Indexers(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.EntityBuilder', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.NamespaceName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.AssemblyNameStr.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.VersionString.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BuilderEnumerationModel(options) {\r\n var defaults = {\r\n ParentID: 0,\r\n Value: 0,\r\n Description: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ParentID = ko.validatedObservable(settings.ParentID);\r\n this.Value = ko.validatedObservable(settings.Value);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ParentID != undefined) {\r\n loaded.ParentID(responseData.ParentID);\r\n }\r\n if (responseData.Value != undefined) {\r\n loaded.Value(responseData.Value);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.EntityBuilderModel().LoadFromResponse(responseData.Parent));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BuilderEnumeration', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ParentID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Value.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BuilderInterfaceModel(options) {\r\n var defaults = {\r\n ParentID: 0,\r\n TypeName: '',\r\n FullTypeName: '',\r\n ParentTypeName: '',\r\n IsObsolete: false,\r\n Cloneable: false,\r\n Description: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ParentID = ko.validatedObservable(settings.ParentID);\r\n this.TypeName = ko.validatedObservable(settings.TypeName);\r\n this.FullTypeName = ko.validatedObservable(settings.FullTypeName);\r\n this.ParentTypeName = ko.validatedObservable(settings.ParentTypeName);\r\n this.IsObsolete = ko.validatedObservable(settings.IsObsolete);\r\n this.Cloneable = ko.validatedObservable(settings.Cloneable);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Properties = ko.observableArray([]);\r\n this.Relationships = ko.observableArray([]);\r\n this.Parent = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ParentID != undefined) {\r\n loaded.ParentID(responseData.ParentID);\r\n }\r\n if (responseData.TypeName != undefined) {\r\n loaded.TypeName(responseData.TypeName);\r\n }\r\n if (responseData.FullTypeName != undefined) {\r\n loaded.FullTypeName(responseData.FullTypeName);\r\n }\r\n if (responseData.ParentTypeName != undefined) {\r\n loaded.ParentTypeName(responseData.ParentTypeName);\r\n }\r\n if (responseData.IsObsolete != undefined) {\r\n loaded.IsObsolete(responseData.IsObsolete);\r\n }\r\n if (responseData.Cloneable != undefined) {\r\n loaded.Cloneable(responseData.Cloneable);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Properties != null && responseData.Properties.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Properties.length; i++) {\r\n items.push(new smapi.entities.BuilderInterfacePropertyModel().LoadFromResponse(responseData.Properties[i]));\r\n }\r\n loaded.Properties(items);\r\n }\r\n if (responseData.Relationships != null && responseData.Relationships.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Relationships.length; i++) {\r\n items.push(new smapi.entities.BuilderInterfaceRelationshipModel().LoadFromResponse(responseData.Relationships[i]));\r\n }\r\n loaded.Relationships(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.EntityBuilderModel().LoadFromResponse(responseData.Parent));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BuilderInterface', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ParentID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TypeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.FullTypeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ParentTypeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BuilderInterfacePropertyModel(options) {\r\n var defaults = {\r\n BuilderInterfaceID: 0,\r\n InheritedGID: null,\r\n AttributeName: '',\r\n DataType: '',\r\n Description: '',\r\n IsPK: false,\r\n IsBK: false,\r\n IsObsolete: false,\r\n HasSetter: false,\r\n HasGetter: false,\r\n IsNullable: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.BuilderInterfaceID = ko.validatedObservable(settings.BuilderInterfaceID);\r\n this.InheritedGID = ko.validatedObservable(settings.InheritedGID);\r\n this.AttributeName = ko.validatedObservable(settings.AttributeName);\r\n this.DataType = ko.validatedObservable(settings.DataType);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.IsPK = ko.validatedObservable(settings.IsPK);\r\n this.IsBK = ko.validatedObservable(settings.IsBK);\r\n this.IsObsolete = ko.validatedObservable(settings.IsObsolete);\r\n this.HasSetter = ko.validatedObservable(settings.HasSetter);\r\n this.HasGetter = ko.validatedObservable(settings.HasGetter);\r\n this.IsNullable = ko.validatedObservable(settings.IsNullable);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.BuilderInterfaceID != undefined) {\r\n loaded.BuilderInterfaceID(responseData.BuilderInterfaceID);\r\n }\r\n if (responseData.InheritedGID != undefined) {\r\n loaded.InheritedGID(responseData.InheritedGID);\r\n }\r\n if (responseData.AttributeName != undefined) {\r\n loaded.AttributeName(responseData.AttributeName);\r\n }\r\n if (responseData.DataType != undefined) {\r\n loaded.DataType(responseData.DataType);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.IsPK != undefined) {\r\n loaded.IsPK(responseData.IsPK);\r\n }\r\n if (responseData.IsBK != undefined) {\r\n loaded.IsBK(responseData.IsBK);\r\n }\r\n if (responseData.IsObsolete != undefined) {\r\n loaded.IsObsolete(responseData.IsObsolete);\r\n }\r\n if (responseData.HasSetter != undefined) {\r\n loaded.HasSetter(responseData.HasSetter);\r\n }\r\n if (responseData.HasGetter != undefined) {\r\n loaded.HasGetter(responseData.HasGetter);\r\n }\r\n if (responseData.IsNullable != undefined) {\r\n loaded.IsNullable(responseData.IsNullable);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.BuilderInterfaceModel().LoadFromResponse(responseData.Parent));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BuilderInterfaceProperty', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.BuilderInterfaceID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.InheritedGID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.AttributeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.DataType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BuilderInterfaceRelationshipModel(options) {\r\n var defaults = {\r\n ParentID: 0,\r\n AttributeName: '',\r\n DataType: '',\r\n SimpleDataType: '',\r\n RelationShipType: '',\r\n HasGetter: false,\r\n HasSetter: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ParentID = ko.validatedObservable(settings.ParentID);\r\n this.AttributeName = ko.validatedObservable(settings.AttributeName);\r\n this.DataType = ko.validatedObservable(settings.DataType);\r\n this.SimpleDataType = ko.validatedObservable(settings.SimpleDataType);\r\n this.RelationShipType = ko.validatedObservable(settings.RelationShipType);\r\n this.HasGetter = ko.validatedObservable(settings.HasGetter);\r\n this.HasSetter = ko.validatedObservable(settings.HasSetter);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ParentID != undefined) {\r\n loaded.ParentID(responseData.ParentID);\r\n }\r\n if (responseData.AttributeName != undefined) {\r\n loaded.AttributeName(responseData.AttributeName);\r\n }\r\n if (responseData.DataType != undefined) {\r\n loaded.DataType(responseData.DataType);\r\n }\r\n if (responseData.SimpleDataType != undefined) {\r\n loaded.SimpleDataType(responseData.SimpleDataType);\r\n }\r\n if (responseData.RelationShipType != undefined) {\r\n loaded.RelationShipType(responseData.RelationShipType);\r\n }\r\n if (responseData.HasGetter != undefined) {\r\n loaded.HasGetter(responseData.HasGetter);\r\n }\r\n if (responseData.HasSetter != undefined) {\r\n loaded.HasSetter(responseData.HasSetter);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.BuilderInterfaceModel().LoadFromResponse(responseData.Parent));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BuilderInterfaceRelationship', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ParentID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AttributeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.DataType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SimpleDataType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.RelationShipType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BuilderIndexerModel(options) {\r\n var defaults = {\r\n ParentID: 0,\r\n TypeName: '',\r\n FullTypeName: '',\r\n ParentDataTypeName: '',\r\n Singleton: false,\r\n IsObsolete: false,\r\n Cloneable: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ParentID = ko.validatedObservable(settings.ParentID);\r\n this.TypeName = ko.validatedObservable(settings.TypeName);\r\n this.FullTypeName = ko.validatedObservable(settings.FullTypeName);\r\n this.ParentDataTypeName = ko.validatedObservable(settings.ParentDataTypeName);\r\n this.Singleton = ko.validatedObservable(settings.Singleton);\r\n this.IsObsolete = ko.validatedObservable(settings.IsObsolete);\r\n this.Cloneable = ko.validatedObservable(settings.Cloneable);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Indices = ko.observableArray([]);\r\n this.Parent = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ParentID != undefined) {\r\n loaded.ParentID(responseData.ParentID);\r\n }\r\n if (responseData.TypeName != undefined) {\r\n loaded.TypeName(responseData.TypeName);\r\n }\r\n if (responseData.FullTypeName != undefined) {\r\n loaded.FullTypeName(responseData.FullTypeName);\r\n }\r\n if (responseData.ParentDataTypeName != undefined) {\r\n loaded.ParentDataTypeName(responseData.ParentDataTypeName);\r\n }\r\n if (responseData.Singleton != undefined) {\r\n loaded.Singleton(responseData.Singleton);\r\n }\r\n if (responseData.IsObsolete != undefined) {\r\n loaded.IsObsolete(responseData.IsObsolete);\r\n }\r\n if (responseData.Cloneable != undefined) {\r\n loaded.Cloneable(responseData.Cloneable);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Indices != null && responseData.Indices.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Indices.length; i++) {\r\n items.push(new smapi.entities.BuilderIndexModel().LoadFromResponse(responseData.Indices[i]));\r\n }\r\n loaded.Indices(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.EntityBuilderModel().LoadFromResponse(responseData.Parent));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BuilderIndexer', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ParentID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TypeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.FullTypeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ParentDataTypeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BuilderIndexModel(options) {\r\n var defaults = {\r\n ParentID: 0,\r\n TypeName: '',\r\n ReturnOrdinal: '',\r\n IsObsolete: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ParentID = ko.validatedObservable(settings.ParentID);\r\n this.TypeName = ko.validatedObservable(settings.TypeName);\r\n this.ReturnOrdinal = ko.validatedObservable(settings.ReturnOrdinal);\r\n this.IsObsolete = ko.validatedObservable(settings.IsObsolete);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.EqualProperties = ko.observableArray([]);\r\n this.RangeProperties = ko.observableArray([]);\r\n this.Parent = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ParentID != undefined) {\r\n loaded.ParentID(responseData.ParentID);\r\n }\r\n if (responseData.TypeName != undefined) {\r\n loaded.TypeName(responseData.TypeName);\r\n }\r\n if (responseData.ReturnOrdinal != undefined) {\r\n loaded.ReturnOrdinal(responseData.ReturnOrdinal);\r\n }\r\n if (responseData.IsObsolete != undefined) {\r\n loaded.IsObsolete(responseData.IsObsolete);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.EqualProperties != null && responseData.EqualProperties.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.EqualProperties.length; i++) {\r\n items.push(new smapi.entities.BuilderIndexEqualPropertyModel().LoadFromResponse(responseData.EqualProperties[i]));\r\n }\r\n loaded.EqualProperties(items);\r\n }\r\n if (responseData.RangeProperties != null && responseData.RangeProperties.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.RangeProperties.length; i++) {\r\n items.push(new smapi.entities.BuilderIndexRangePropertyModel().LoadFromResponse(responseData.RangeProperties[i]));\r\n }\r\n loaded.RangeProperties(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.BuilderIndexerModel().LoadFromResponse(responseData.Parent));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BuilderIndex', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ParentID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TypeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ReturnOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BuilderIndexEqualPropertyModel(options) {\r\n var defaults = {\r\n BuilderIndexID: 0,\r\n BoundFieldName: '',\r\n IsNullable: false,\r\n CompareNull: false,\r\n DataType: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.BuilderIndexID = ko.validatedObservable(settings.BuilderIndexID);\r\n this.BoundFieldName = ko.validatedObservable(settings.BoundFieldName);\r\n this.IsNullable = ko.validatedObservable(settings.IsNullable);\r\n this.CompareNull = ko.validatedObservable(settings.CompareNull);\r\n this.DataType = ko.validatedObservable(settings.DataType);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.BuilderIndexID != undefined) {\r\n loaded.BuilderIndexID(responseData.BuilderIndexID);\r\n }\r\n if (responseData.BoundFieldName != undefined) {\r\n loaded.BoundFieldName(responseData.BoundFieldName);\r\n }\r\n if (responseData.IsNullable != undefined) {\r\n loaded.IsNullable(responseData.IsNullable);\r\n }\r\n if (responseData.CompareNull != undefined) {\r\n loaded.CompareNull(responseData.CompareNull);\r\n }\r\n if (responseData.DataType != undefined) {\r\n loaded.DataType(responseData.DataType);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.BuilderIndexModel().LoadFromResponse(responseData.Parent));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BuilderIndexEqualProperty', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.BuilderIndexID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BoundFieldName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.DataType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BuilderIndexRangePropertyModel(options) {\r\n var defaults = {\r\n BuilderIndexID: 0,\r\n FieldName: '',\r\n BoundMin: '',\r\n BoundMax: '',\r\n DataType: '',\r\n IncludeMin: false,\r\n IncludeMax: false,\r\n HandleNullMax: false,\r\n HandleNullableField: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.BuilderIndexID = ko.validatedObservable(settings.BuilderIndexID);\r\n this.FieldName = ko.validatedObservable(settings.FieldName);\r\n this.BoundMin = ko.validatedObservable(settings.BoundMin);\r\n this.BoundMax = ko.validatedObservable(settings.BoundMax);\r\n this.DataType = ko.validatedObservable(settings.DataType);\r\n this.IncludeMin = ko.validatedObservable(settings.IncludeMin);\r\n this.IncludeMax = ko.validatedObservable(settings.IncludeMax);\r\n this.HandleNullMax = ko.validatedObservable(settings.HandleNullMax);\r\n this.HandleNullableField = ko.validatedObservable(settings.HandleNullableField);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.BuilderIndexID != undefined) {\r\n loaded.BuilderIndexID(responseData.BuilderIndexID);\r\n }\r\n if (responseData.FieldName != undefined) {\r\n loaded.FieldName(responseData.FieldName);\r\n }\r\n if (responseData.BoundMin != undefined) {\r\n loaded.BoundMin(responseData.BoundMin);\r\n }\r\n if (responseData.BoundMax != undefined) {\r\n loaded.BoundMax(responseData.BoundMax);\r\n }\r\n if (responseData.DataType != undefined) {\r\n loaded.DataType(responseData.DataType);\r\n }\r\n if (responseData.IncludeMin != undefined) {\r\n loaded.IncludeMin(responseData.IncludeMin);\r\n }\r\n if (responseData.IncludeMax != undefined) {\r\n loaded.IncludeMax(responseData.IncludeMax);\r\n }\r\n if (responseData.HandleNullMax != undefined) {\r\n loaded.HandleNullMax(responseData.HandleNullMax);\r\n }\r\n if (responseData.HandleNullableField != undefined) {\r\n loaded.HandleNullableField(responseData.HandleNullableField);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.BuilderIndexModel().LoadFromResponse(responseData.Parent));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BuilderIndexRangeProperty', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.BuilderIndexID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.FieldName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BoundMin.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BoundMax.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.DataType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BuilderEntityModel(options) {\r\n var defaults = {\r\n ParentID: 0,\r\n TypeName: '',\r\n FullTypeName: '',\r\n PartialClass: false,\r\n ParentTypeName: '',\r\n Implements: '',\r\n TableName: '',\r\n DBSchema: '',\r\n OwnedTable: false,\r\n CachedByPK: false,\r\n IsObsolete: false,\r\n Cloneable: false,\r\n InterfaceEntity: false,\r\n EntityCode: 0,\r\n EntityCodeName: '',\r\n IsParentEntity: false,\r\n TypeField: '',\r\n TypeValue: '',\r\n ToStringMethod: '',\r\n HasClusteredIndex: false,\r\n MainPage: '',\r\n Icon: '',\r\n IsDerivedBuilderEntity: false,\r\n Description: '',\r\n Title: '',\r\n CacheName: '',\r\n EntityCharacteristics: null,\r\n DisplayMode: null,\r\n ShowSuperstructure: false,\r\n ShowObsolete: false,\r\n ShowCreatedResults: false,\r\n ShowSimpleAudit: false,\r\n DetailsColumnCnt: 0,\r\n DetailsColumnDynamic: false,\r\n ParentInTOC: false,\r\n ExcludeFromApi: false,\r\n ManagementGrouping: '',\r\n MenuModule: '',\r\n MenuGrouping: '',\r\n MenuLocation: '',\r\n NoValidation: false,\r\n ExcludeFromMVC: false,\r\n IsUserDefined: false,\r\n PackageID: null,\r\n EmittOrder: 0,\r\n PathToContact: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ParentID = ko.validatedObservable(settings.ParentID);\r\n this.TypeName = ko.validatedObservable(settings.TypeName);\r\n this.FullTypeName = ko.validatedObservable(settings.FullTypeName);\r\n this.PartialClass = ko.validatedObservable(settings.PartialClass);\r\n this.ParentTypeName = ko.validatedObservable(settings.ParentTypeName);\r\n this.Implements = ko.validatedObservable(settings.Implements);\r\n this.TableName = ko.validatedObservable(settings.TableName);\r\n this.DBSchema = ko.validatedObservable(settings.DBSchema);\r\n this.OwnedTable = ko.validatedObservable(settings.OwnedTable);\r\n this.CachedByPK = ko.validatedObservable(settings.CachedByPK);\r\n this.IsObsolete = ko.validatedObservable(settings.IsObsolete);\r\n this.Cloneable = ko.validatedObservable(settings.Cloneable);\r\n this.InterfaceEntity = ko.validatedObservable(settings.InterfaceEntity);\r\n this.EntityCode = ko.validatedObservable(settings.EntityCode);\r\n this.EntityCodeName = ko.validatedObservable(settings.EntityCodeName);\r\n this.IsParentEntity = ko.validatedObservable(settings.IsParentEntity);\r\n this.TypeField = ko.validatedObservable(settings.TypeField);\r\n this.TypeValue = ko.validatedObservable(settings.TypeValue);\r\n this.ToStringMethod = ko.validatedObservable(settings.ToStringMethod);\r\n this.HasClusteredIndex = ko.validatedObservable(settings.HasClusteredIndex);\r\n this.MainPage = ko.validatedObservable(settings.MainPage);\r\n this.Icon = ko.validatedObservable(settings.Icon);\r\n this.IsDerivedBuilderEntity = ko.validatedObservable(settings.IsDerivedBuilderEntity);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.Title = ko.validatedObservable(settings.Title);\r\n this.CacheName = ko.validatedObservable(settings.CacheName);\r\n this.EntityCharacteristics = ko.validatedObservable(settings.EntityCharacteristics);\r\n this.DisplayMode = ko.validatedObservable(settings.DisplayMode);\r\n this.ShowSuperstructure = ko.validatedObservable(settings.ShowSuperstructure);\r\n this.ShowObsolete = ko.validatedObservable(settings.ShowObsolete);\r\n this.ShowCreatedResults = ko.validatedObservable(settings.ShowCreatedResults);\r\n this.ShowSimpleAudit = ko.validatedObservable(settings.ShowSimpleAudit);\r\n this.DetailsColumnCnt = ko.validatedObservable(settings.DetailsColumnCnt);\r\n this.DetailsColumnDynamic = ko.validatedObservable(settings.DetailsColumnDynamic);\r\n this.ParentInTOC = ko.validatedObservable(settings.ParentInTOC);\r\n this.ExcludeFromApi = ko.validatedObservable(settings.ExcludeFromApi);\r\n this.ManagementGrouping = ko.validatedObservable(settings.ManagementGrouping);\r\n this.MenuModule = ko.validatedObservable(settings.MenuModule);\r\n this.MenuGrouping = ko.validatedObservable(settings.MenuGrouping);\r\n this.MenuLocation = ko.validatedObservable(settings.MenuLocation);\r\n this.NoValidation = ko.validatedObservable(settings.NoValidation);\r\n this.ExcludeFromMVC = ko.validatedObservable(settings.ExcludeFromMVC);\r\n this.IsUserDefined = ko.validatedObservable(settings.IsUserDefined);\r\n this.PackageID = ko.validatedObservable(settings.PackageID);\r\n this.EmittOrder = ko.validatedObservable(settings.EmittOrder);\r\n this.PathToContact = ko.validatedObservable(settings.PathToContact);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Fields = ko.observableArray([]);\r\n this.Relationships = ko.observableArray([]);\r\n this.Queries = ko.observableArray([]);\r\n this.DBIndices = ko.observableArray([]);\r\n this.Entities = ko.observableArray([]);\r\n this.Parent = ko.observable();\r\n this.Package = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ParentID != undefined) {\r\n loaded.ParentID(responseData.ParentID);\r\n }\r\n if (responseData.TypeName != undefined) {\r\n loaded.TypeName(responseData.TypeName);\r\n }\r\n if (responseData.FullTypeName != undefined) {\r\n loaded.FullTypeName(responseData.FullTypeName);\r\n }\r\n if (responseData.PartialClass != undefined) {\r\n loaded.PartialClass(responseData.PartialClass);\r\n }\r\n if (responseData.ParentTypeName != undefined) {\r\n loaded.ParentTypeName(responseData.ParentTypeName);\r\n }\r\n if (responseData.Implements != undefined) {\r\n loaded.Implements(responseData.Implements);\r\n }\r\n if (responseData.TableName != undefined) {\r\n loaded.TableName(responseData.TableName);\r\n }\r\n if (responseData.DBSchema != undefined) {\r\n loaded.DBSchema(responseData.DBSchema);\r\n }\r\n if (responseData.OwnedTable != undefined) {\r\n loaded.OwnedTable(responseData.OwnedTable);\r\n }\r\n if (responseData.CachedByPK != undefined) {\r\n loaded.CachedByPK(responseData.CachedByPK);\r\n }\r\n if (responseData.IsObsolete != undefined) {\r\n loaded.IsObsolete(responseData.IsObsolete);\r\n }\r\n if (responseData.Cloneable != undefined) {\r\n loaded.Cloneable(responseData.Cloneable);\r\n }\r\n if (responseData.InterfaceEntity != undefined) {\r\n loaded.InterfaceEntity(responseData.InterfaceEntity);\r\n }\r\n if (responseData.EntityCode != undefined) {\r\n loaded.EntityCode(responseData.EntityCode);\r\n }\r\n if (responseData.EntityCodeName != undefined) {\r\n loaded.EntityCodeName(responseData.EntityCodeName);\r\n }\r\n if (responseData.IsParentEntity != undefined) {\r\n loaded.IsParentEntity(responseData.IsParentEntity);\r\n }\r\n if (responseData.TypeField != undefined) {\r\n loaded.TypeField(responseData.TypeField);\r\n }\r\n if (responseData.TypeValue != undefined) {\r\n loaded.TypeValue(responseData.TypeValue);\r\n }\r\n if (responseData.ToStringMethod != undefined) {\r\n loaded.ToStringMethod(responseData.ToStringMethod);\r\n }\r\n if (responseData.HasClusteredIndex != undefined) {\r\n loaded.HasClusteredIndex(responseData.HasClusteredIndex);\r\n }\r\n if (responseData.MainPage != undefined) {\r\n loaded.MainPage(responseData.MainPage);\r\n }\r\n if (responseData.Icon != undefined) {\r\n loaded.Icon(responseData.Icon);\r\n }\r\n if (responseData.IsDerivedBuilderEntity != undefined) {\r\n loaded.IsDerivedBuilderEntity(responseData.IsDerivedBuilderEntity);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.Title != undefined) {\r\n loaded.Title(responseData.Title);\r\n }\r\n if (responseData.CacheName != undefined) {\r\n loaded.CacheName(responseData.CacheName);\r\n }\r\n if (responseData.EntityCharacteristics != undefined) {\r\n loaded.EntityCharacteristics(responseData.EntityCharacteristics);\r\n }\r\n if (responseData.DisplayMode != undefined) {\r\n loaded.DisplayMode(responseData.DisplayMode);\r\n }\r\n if (responseData.ShowSuperstructure != undefined) {\r\n loaded.ShowSuperstructure(responseData.ShowSuperstructure);\r\n }\r\n if (responseData.ShowObsolete != undefined) {\r\n loaded.ShowObsolete(responseData.ShowObsolete);\r\n }\r\n if (responseData.ShowCreatedResults != undefined) {\r\n loaded.ShowCreatedResults(responseData.ShowCreatedResults);\r\n }\r\n if (responseData.ShowSimpleAudit != undefined) {\r\n loaded.ShowSimpleAudit(responseData.ShowSimpleAudit);\r\n }\r\n if (responseData.DetailsColumnCnt != undefined) {\r\n loaded.DetailsColumnCnt(responseData.DetailsColumnCnt);\r\n }\r\n if (responseData.DetailsColumnDynamic != undefined) {\r\n loaded.DetailsColumnDynamic(responseData.DetailsColumnDynamic);\r\n }\r\n if (responseData.ParentInTOC != undefined) {\r\n loaded.ParentInTOC(responseData.ParentInTOC);\r\n }\r\n if (responseData.ExcludeFromApi != undefined) {\r\n loaded.ExcludeFromApi(responseData.ExcludeFromApi);\r\n }\r\n if (responseData.ManagementGrouping != undefined) {\r\n loaded.ManagementGrouping(responseData.ManagementGrouping);\r\n }\r\n if (responseData.MenuModule != undefined) {\r\n loaded.MenuModule(responseData.MenuModule);\r\n }\r\n if (responseData.MenuGrouping != undefined) {\r\n loaded.MenuGrouping(responseData.MenuGrouping);\r\n }\r\n if (responseData.MenuLocation != undefined) {\r\n loaded.MenuLocation(responseData.MenuLocation);\r\n }\r\n if (responseData.NoValidation != undefined) {\r\n loaded.NoValidation(responseData.NoValidation);\r\n }\r\n if (responseData.ExcludeFromMVC != undefined) {\r\n loaded.ExcludeFromMVC(responseData.ExcludeFromMVC);\r\n }\r\n if (responseData.IsUserDefined != undefined) {\r\n loaded.IsUserDefined(responseData.IsUserDefined);\r\n }\r\n if (responseData.PackageID != undefined) {\r\n loaded.PackageID(responseData.PackageID);\r\n }\r\n if (responseData.EmittOrder != undefined) {\r\n loaded.EmittOrder(responseData.EmittOrder);\r\n }\r\n if (responseData.PathToContact != undefined) {\r\n loaded.PathToContact(responseData.PathToContact);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Fields != null && responseData.Fields.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Fields.length; i++) {\r\n items.push(new smapi.entities.BuilderEntityFieldModel().LoadFromResponse(responseData.Fields[i]));\r\n }\r\n loaded.Fields(items);\r\n }\r\n if (responseData.Relationships != null && responseData.Relationships.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Relationships.length; i++) {\r\n items.push(new smapi.entities.BuilderEntityRelationshipModel().LoadFromResponse(responseData.Relationships[i]));\r\n }\r\n loaded.Relationships(items);\r\n }\r\n if (responseData.Queries != null && responseData.Queries.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Queries.length; i++) {\r\n items.push(new smapi.entities.BuilderEntityQueryModel().LoadFromResponse(responseData.Queries[i]));\r\n }\r\n loaded.Queries(items);\r\n }\r\n if (responseData.DBIndices != null && responseData.DBIndices.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.DBIndices.length; i++) {\r\n items.push(new smapi.entities.BuilderEntityDBIndexModel().LoadFromResponse(responseData.DBIndices[i]));\r\n }\r\n loaded.DBIndices(items);\r\n }\r\n if (responseData.Entities != null && responseData.Entities.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Entities.length; i++) {\r\n items.push(new smapi.entities.EntityModel().LoadFromResponse(responseData.Entities[i]));\r\n }\r\n loaded.Entities(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.EntityBuilderModel().LoadFromResponse(responseData.Parent));\r\n }\r\n if (responseData.Package != null) {\r\n loaded.Package(new smapi.entities.SDKPackageModel().LoadFromResponse(responseData.Package));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BuilderEntity', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ParentID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TypeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.FullTypeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ParentTypeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Implements.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.TableName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.DBSchema.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 30,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '30')\r\n }\r\n });\r\n this.EntityCode.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EntityCodeName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.TypeField.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.TypeValue.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.ToStringMethod.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.MainPage.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Icon.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 1000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1000')\r\n }\r\n });\r\n this.Title.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 200,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '200')\r\n }\r\n });\r\n this.CacheName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.EntityCharacteristics.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.DisplayMode.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.DetailsColumnCnt.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ManagementGrouping.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.MenuModule.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.MenuGrouping.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.MenuLocation.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.PackageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EmittOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PathToContact.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BuilderEntityFieldModel(options) {\r\n var defaults = {\r\n BuilderEntityID: 0,\r\n FieldOrdinal: 0,\r\n AttributeName: '',\r\n DisplayName: '',\r\n FieldName: '',\r\n DataType: '',\r\n DefaultValue: '',\r\n DataLength: 0,\r\n Precision: 0,\r\n Scale: 0,\r\n IsPK: false,\r\n IsBK: false,\r\n IsAvailableForWrapper: false,\r\n IsIdentity: false,\r\n IsNullable: false,\r\n Required: false,\r\n IsObsolete: false,\r\n IsInherited: false,\r\n HasSetter: false,\r\n HasGetter: false,\r\n IsFixedLength: false,\r\n IsInline: false,\r\n MinimumDataLength: 0,\r\n HintMask: '',\r\n DisplayMask: '',\r\n IsDBHashed: false,\r\n IsDBEncrypted: false,\r\n ProviderID: null,\r\n ZoneName: '',\r\n IsMasked: false,\r\n IsLocalizable: false,\r\n Transient: false,\r\n InheritedID: null,\r\n MigrationDefaultValue: '',\r\n AttributeForRelationship: '',\r\n AggregateRelationship: '',\r\n Label: '',\r\n ShortLabel: '',\r\n Tooltip: '',\r\n Prompt: '',\r\n MinimumValue: '',\r\n MaximumValue: '',\r\n ValidationRegExStr: '',\r\n InvalidMessage: '',\r\n SourceType: '',\r\n SourceDisplay: '',\r\n SourceValue: '',\r\n SourceFilter: '',\r\n SortOrdinal: 0,\r\n SortDirection: '',\r\n FieldCharacteristics: null,\r\n RelatedField: '',\r\n NaturalKey: false,\r\n SearchField: false,\r\n SearchResultField: false,\r\n PopupSearchField: false,\r\n PopupSearchResultField: false,\r\n LiveSearchResult: false,\r\n PopupJsonResult: false,\r\n SVDisplayField: false,\r\n TOCTableField: false,\r\n TOCListField: false,\r\n Hidden: false,\r\n Calculated: false,\r\n TitledDisplayGroup: '',\r\n DisplayGroup: '',\r\n IsHtml: false,\r\n HeaderField: false,\r\n ShortForm: false,\r\n LongForm: false,\r\n TitledResultsGroup: '',\r\n ResultsGroup: '',\r\n ResultsOrder: 0,\r\n InStaticPrimary: false,\r\n IsPercentage: false,\r\n IsDateSequence: false,\r\n DateSeqDownstreamOperator: '',\r\n DateSeqUpstreamOperator: '',\r\n DateSeqPathToDownstreamDate: '',\r\n DateSeqPathToUpstreamDate: '',\r\n PathToCurrency: '',\r\n ApiSummaryField: false,\r\n ApiDetailedField: false,\r\n IsUserDefined: false,\r\n PackageID: null,\r\n IsTimeSequence: false,\r\n StaticSectionView: '',\r\n PopupEditorView: '',\r\n ListTableHeaderView: '',\r\n ListTableRowView: '',\r\n StandardTableHeaderView: '',\r\n StandardTableRowView: '',\r\n StandardListView: '',\r\n StandardTableM2MView: '',\r\n SearchEditorView: '',\r\n SearchHeaderView: '',\r\n SearchRowView: '',\r\n SearchListView: '',\r\n DisplayReadOnly: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.BuilderEntityID = ko.validatedObservable(settings.BuilderEntityID);\r\n this.FieldOrdinal = ko.validatedObservable(settings.FieldOrdinal);\r\n this.AttributeName = ko.validatedObservable(settings.AttributeName);\r\n this.DisplayName = ko.validatedObservable(settings.DisplayName);\r\n this.FieldName = ko.validatedObservable(settings.FieldName);\r\n this.DataType = ko.validatedObservable(settings.DataType);\r\n this.DefaultValue = ko.validatedObservable(settings.DefaultValue);\r\n this.DataLength = ko.validatedObservable(settings.DataLength);\r\n this.Precision = ko.validatedObservable(settings.Precision);\r\n this.Scale = ko.validatedObservable(settings.Scale);\r\n this.IsPK = ko.validatedObservable(settings.IsPK);\r\n this.IsBK = ko.validatedObservable(settings.IsBK);\r\n this.IsAvailableForWrapper = ko.validatedObservable(settings.IsAvailableForWrapper);\r\n this.IsIdentity = ko.validatedObservable(settings.IsIdentity);\r\n this.IsNullable = ko.validatedObservable(settings.IsNullable);\r\n this.Required = ko.validatedObservable(settings.Required);\r\n this.IsObsolete = ko.validatedObservable(settings.IsObsolete);\r\n this.IsInherited = ko.validatedObservable(settings.IsInherited);\r\n this.HasSetter = ko.validatedObservable(settings.HasSetter);\r\n this.HasGetter = ko.validatedObservable(settings.HasGetter);\r\n this.IsFixedLength = ko.validatedObservable(settings.IsFixedLength);\r\n this.IsInline = ko.validatedObservable(settings.IsInline);\r\n this.MinimumDataLength = ko.validatedObservable(settings.MinimumDataLength);\r\n this.HintMask = ko.validatedObservable(settings.HintMask);\r\n this.DisplayMask = ko.validatedObservable(settings.DisplayMask);\r\n this.IsDBHashed = ko.validatedObservable(settings.IsDBHashed);\r\n this.IsDBEncrypted = ko.validatedObservable(settings.IsDBEncrypted);\r\n this.ProviderID = ko.validatedObservable(settings.ProviderID);\r\n this.ZoneName = ko.validatedObservable(settings.ZoneName);\r\n this.IsMasked = ko.validatedObservable(settings.IsMasked);\r\n this.IsLocalizable = ko.validatedObservable(settings.IsLocalizable);\r\n this.Transient = ko.validatedObservable(settings.Transient);\r\n this.InheritedID = ko.validatedObservable(settings.InheritedID);\r\n this.MigrationDefaultValue = ko.validatedObservable(settings.MigrationDefaultValue);\r\n this.AttributeForRelationship = ko.validatedObservable(settings.AttributeForRelationship);\r\n this.AggregateRelationship = ko.validatedObservable(settings.AggregateRelationship);\r\n this.Label = ko.validatedObservable(settings.Label);\r\n this.ShortLabel = ko.validatedObservable(settings.ShortLabel);\r\n this.Tooltip = ko.validatedObservable(settings.Tooltip);\r\n this.Prompt = ko.validatedObservable(settings.Prompt);\r\n this.MinimumValue = ko.validatedObservable(settings.MinimumValue);\r\n this.MaximumValue = ko.validatedObservable(settings.MaximumValue);\r\n this.ValidationRegExStr = ko.validatedObservable(settings.ValidationRegExStr);\r\n this.InvalidMessage = ko.validatedObservable(settings.InvalidMessage);\r\n this.SourceType = ko.validatedObservable(settings.SourceType);\r\n this.SourceDisplay = ko.validatedObservable(settings.SourceDisplay);\r\n this.SourceValue = ko.validatedObservable(settings.SourceValue);\r\n this.SourceFilter = ko.validatedObservable(settings.SourceFilter);\r\n this.SortOrdinal = ko.validatedObservable(settings.SortOrdinal);\r\n this.SortDirection = ko.validatedObservable(settings.SortDirection);\r\n this.FieldCharacteristics = ko.validatedObservable(settings.FieldCharacteristics);\r\n this.RelatedField = ko.validatedObservable(settings.RelatedField);\r\n this.NaturalKey = ko.validatedObservable(settings.NaturalKey);\r\n this.SearchField = ko.validatedObservable(settings.SearchField);\r\n this.SearchResultField = ko.validatedObservable(settings.SearchResultField);\r\n this.PopupSearchField = ko.validatedObservable(settings.PopupSearchField);\r\n this.PopupSearchResultField = ko.validatedObservable(settings.PopupSearchResultField);\r\n this.LiveSearchResult = ko.validatedObservable(settings.LiveSearchResult);\r\n this.PopupJsonResult = ko.validatedObservable(settings.PopupJsonResult);\r\n this.SVDisplayField = ko.validatedObservable(settings.SVDisplayField);\r\n this.TOCTableField = ko.validatedObservable(settings.TOCTableField);\r\n this.TOCListField = ko.validatedObservable(settings.TOCListField);\r\n this.Hidden = ko.validatedObservable(settings.Hidden);\r\n this.Calculated = ko.validatedObservable(settings.Calculated);\r\n this.TitledDisplayGroup = ko.validatedObservable(settings.TitledDisplayGroup);\r\n this.DisplayGroup = ko.validatedObservable(settings.DisplayGroup);\r\n this.IsHtml = ko.validatedObservable(settings.IsHtml);\r\n this.HeaderField = ko.validatedObservable(settings.HeaderField);\r\n this.ShortForm = ko.validatedObservable(settings.ShortForm);\r\n this.LongForm = ko.validatedObservable(settings.LongForm);\r\n this.TitledResultsGroup = ko.validatedObservable(settings.TitledResultsGroup);\r\n this.ResultsGroup = ko.validatedObservable(settings.ResultsGroup);\r\n this.ResultsOrder = ko.validatedObservable(settings.ResultsOrder);\r\n this.InStaticPrimary = ko.validatedObservable(settings.InStaticPrimary);\r\n this.IsPercentage = ko.validatedObservable(settings.IsPercentage);\r\n this.IsDateSequence = ko.validatedObservable(settings.IsDateSequence);\r\n this.DateSeqDownstreamOperator = ko.validatedObservable(settings.DateSeqDownstreamOperator);\r\n this.DateSeqUpstreamOperator = ko.validatedObservable(settings.DateSeqUpstreamOperator);\r\n this.DateSeqPathToDownstreamDate = ko.validatedObservable(settings.DateSeqPathToDownstreamDate);\r\n this.DateSeqPathToUpstreamDate = ko.validatedObservable(settings.DateSeqPathToUpstreamDate);\r\n this.PathToCurrency = ko.validatedObservable(settings.PathToCurrency);\r\n this.ApiSummaryField = ko.validatedObservable(settings.ApiSummaryField);\r\n this.ApiDetailedField = ko.validatedObservable(settings.ApiDetailedField);\r\n this.IsUserDefined = ko.validatedObservable(settings.IsUserDefined);\r\n this.PackageID = ko.validatedObservable(settings.PackageID);\r\n this.IsTimeSequence = ko.validatedObservable(settings.IsTimeSequence);\r\n this.StaticSectionView = ko.validatedObservable(settings.StaticSectionView);\r\n this.PopupEditorView = ko.validatedObservable(settings.PopupEditorView);\r\n this.ListTableHeaderView = ko.validatedObservable(settings.ListTableHeaderView);\r\n this.ListTableRowView = ko.validatedObservable(settings.ListTableRowView);\r\n this.StandardTableHeaderView = ko.validatedObservable(settings.StandardTableHeaderView);\r\n this.StandardTableRowView = ko.validatedObservable(settings.StandardTableRowView);\r\n this.StandardListView = ko.validatedObservable(settings.StandardListView);\r\n this.StandardTableM2MView = ko.validatedObservable(settings.StandardTableM2MView);\r\n this.SearchEditorView = ko.validatedObservable(settings.SearchEditorView);\r\n this.SearchHeaderView = ko.validatedObservable(settings.SearchHeaderView);\r\n this.SearchRowView = ko.validatedObservable(settings.SearchRowView);\r\n this.SearchListView = ko.validatedObservable(settings.SearchListView);\r\n this.DisplayReadOnly = ko.validatedObservable(settings.DisplayReadOnly);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n this.Package = ko.observable();\r\n this.MVCAttributes = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.BuilderEntityID != undefined) {\r\n loaded.BuilderEntityID(responseData.BuilderEntityID);\r\n }\r\n if (responseData.FieldOrdinal != undefined) {\r\n loaded.FieldOrdinal(responseData.FieldOrdinal);\r\n }\r\n if (responseData.AttributeName != undefined) {\r\n loaded.AttributeName(responseData.AttributeName);\r\n }\r\n if (responseData.DisplayName != undefined) {\r\n loaded.DisplayName(responseData.DisplayName);\r\n }\r\n if (responseData.FieldName != undefined) {\r\n loaded.FieldName(responseData.FieldName);\r\n }\r\n if (responseData.DataType != undefined) {\r\n loaded.DataType(responseData.DataType);\r\n }\r\n if (responseData.DefaultValue != undefined) {\r\n loaded.DefaultValue(responseData.DefaultValue);\r\n }\r\n if (responseData.DataLength != undefined) {\r\n loaded.DataLength(responseData.DataLength);\r\n }\r\n if (responseData.Precision != undefined) {\r\n loaded.Precision(responseData.Precision);\r\n }\r\n if (responseData.Scale != undefined) {\r\n loaded.Scale(responseData.Scale);\r\n }\r\n if (responseData.IsPK != undefined) {\r\n loaded.IsPK(responseData.IsPK);\r\n }\r\n if (responseData.IsBK != undefined) {\r\n loaded.IsBK(responseData.IsBK);\r\n }\r\n if (responseData.IsAvailableForWrapper != undefined) {\r\n loaded.IsAvailableForWrapper(responseData.IsAvailableForWrapper);\r\n }\r\n if (responseData.IsIdentity != undefined) {\r\n loaded.IsIdentity(responseData.IsIdentity);\r\n }\r\n if (responseData.IsNullable != undefined) {\r\n loaded.IsNullable(responseData.IsNullable);\r\n }\r\n if (responseData.Required != undefined) {\r\n loaded.Required(responseData.Required);\r\n }\r\n if (responseData.IsObsolete != undefined) {\r\n loaded.IsObsolete(responseData.IsObsolete);\r\n }\r\n if (responseData.IsInherited != undefined) {\r\n loaded.IsInherited(responseData.IsInherited);\r\n }\r\n if (responseData.HasSetter != undefined) {\r\n loaded.HasSetter(responseData.HasSetter);\r\n }\r\n if (responseData.HasGetter != undefined) {\r\n loaded.HasGetter(responseData.HasGetter);\r\n }\r\n if (responseData.IsFixedLength != undefined) {\r\n loaded.IsFixedLength(responseData.IsFixedLength);\r\n }\r\n if (responseData.IsInline != undefined) {\r\n loaded.IsInline(responseData.IsInline);\r\n }\r\n if (responseData.MinimumDataLength != undefined) {\r\n loaded.MinimumDataLength(responseData.MinimumDataLength);\r\n }\r\n if (responseData.HintMask != undefined) {\r\n loaded.HintMask(responseData.HintMask);\r\n }\r\n if (responseData.DisplayMask != undefined) {\r\n loaded.DisplayMask(responseData.DisplayMask);\r\n }\r\n if (responseData.IsDBHashed != undefined) {\r\n loaded.IsDBHashed(responseData.IsDBHashed);\r\n }\r\n if (responseData.IsDBEncrypted != undefined) {\r\n loaded.IsDBEncrypted(responseData.IsDBEncrypted);\r\n }\r\n if (responseData.ProviderID != undefined) {\r\n loaded.ProviderID(responseData.ProviderID);\r\n }\r\n if (responseData.ZoneName != undefined) {\r\n loaded.ZoneName(responseData.ZoneName);\r\n }\r\n if (responseData.IsMasked != undefined) {\r\n loaded.IsMasked(responseData.IsMasked);\r\n }\r\n if (responseData.IsLocalizable != undefined) {\r\n loaded.IsLocalizable(responseData.IsLocalizable);\r\n }\r\n if (responseData.Transient != undefined) {\r\n loaded.Transient(responseData.Transient);\r\n }\r\n if (responseData.InheritedID != undefined) {\r\n loaded.InheritedID(responseData.InheritedID);\r\n }\r\n if (responseData.MigrationDefaultValue != undefined) {\r\n loaded.MigrationDefaultValue(responseData.MigrationDefaultValue);\r\n }\r\n if (responseData.AttributeForRelationship != undefined) {\r\n loaded.AttributeForRelationship(responseData.AttributeForRelationship);\r\n }\r\n if (responseData.AggregateRelationship != undefined) {\r\n loaded.AggregateRelationship(responseData.AggregateRelationship);\r\n }\r\n if (responseData.Label != undefined) {\r\n loaded.Label(responseData.Label);\r\n }\r\n if (responseData.ShortLabel != undefined) {\r\n loaded.ShortLabel(responseData.ShortLabel);\r\n }\r\n if (responseData.Tooltip != undefined) {\r\n loaded.Tooltip(responseData.Tooltip);\r\n }\r\n if (responseData.Prompt != undefined) {\r\n loaded.Prompt(responseData.Prompt);\r\n }\r\n if (responseData.MinimumValue != undefined) {\r\n loaded.MinimumValue(responseData.MinimumValue);\r\n }\r\n if (responseData.MaximumValue != undefined) {\r\n loaded.MaximumValue(responseData.MaximumValue);\r\n }\r\n if (responseData.ValidationRegExStr != undefined) {\r\n loaded.ValidationRegExStr(responseData.ValidationRegExStr);\r\n }\r\n if (responseData.InvalidMessage != undefined) {\r\n loaded.InvalidMessage(responseData.InvalidMessage);\r\n }\r\n if (responseData.SourceType != undefined) {\r\n loaded.SourceType(responseData.SourceType);\r\n }\r\n if (responseData.SourceDisplay != undefined) {\r\n loaded.SourceDisplay(responseData.SourceDisplay);\r\n }\r\n if (responseData.SourceValue != undefined) {\r\n loaded.SourceValue(responseData.SourceValue);\r\n }\r\n if (responseData.SourceFilter != undefined) {\r\n loaded.SourceFilter(responseData.SourceFilter);\r\n }\r\n if (responseData.SortOrdinal != undefined) {\r\n loaded.SortOrdinal(responseData.SortOrdinal);\r\n }\r\n if (responseData.SortDirection != undefined) {\r\n loaded.SortDirection(responseData.SortDirection);\r\n }\r\n if (responseData.FieldCharacteristics != undefined) {\r\n loaded.FieldCharacteristics(responseData.FieldCharacteristics);\r\n }\r\n if (responseData.RelatedField != undefined) {\r\n loaded.RelatedField(responseData.RelatedField);\r\n }\r\n if (responseData.NaturalKey != undefined) {\r\n loaded.NaturalKey(responseData.NaturalKey);\r\n }\r\n if (responseData.SearchField != undefined) {\r\n loaded.SearchField(responseData.SearchField);\r\n }\r\n if (responseData.SearchResultField != undefined) {\r\n loaded.SearchResultField(responseData.SearchResultField);\r\n }\r\n if (responseData.PopupSearchField != undefined) {\r\n loaded.PopupSearchField(responseData.PopupSearchField);\r\n }\r\n if (responseData.PopupSearchResultField != undefined) {\r\n loaded.PopupSearchResultField(responseData.PopupSearchResultField);\r\n }\r\n if (responseData.LiveSearchResult != undefined) {\r\n loaded.LiveSearchResult(responseData.LiveSearchResult);\r\n }\r\n if (responseData.PopupJsonResult != undefined) {\r\n loaded.PopupJsonResult(responseData.PopupJsonResult);\r\n }\r\n if (responseData.SVDisplayField != undefined) {\r\n loaded.SVDisplayField(responseData.SVDisplayField);\r\n }\r\n if (responseData.TOCTableField != undefined) {\r\n loaded.TOCTableField(responseData.TOCTableField);\r\n }\r\n if (responseData.TOCListField != undefined) {\r\n loaded.TOCListField(responseData.TOCListField);\r\n }\r\n if (responseData.Hidden != undefined) {\r\n loaded.Hidden(responseData.Hidden);\r\n }\r\n if (responseData.Calculated != undefined) {\r\n loaded.Calculated(responseData.Calculated);\r\n }\r\n if (responseData.TitledDisplayGroup != undefined) {\r\n loaded.TitledDisplayGroup(responseData.TitledDisplayGroup);\r\n }\r\n if (responseData.DisplayGroup != undefined) {\r\n loaded.DisplayGroup(responseData.DisplayGroup);\r\n }\r\n if (responseData.IsHtml != undefined) {\r\n loaded.IsHtml(responseData.IsHtml);\r\n }\r\n if (responseData.HeaderField != undefined) {\r\n loaded.HeaderField(responseData.HeaderField);\r\n }\r\n if (responseData.ShortForm != undefined) {\r\n loaded.ShortForm(responseData.ShortForm);\r\n }\r\n if (responseData.LongForm != undefined) {\r\n loaded.LongForm(responseData.LongForm);\r\n }\r\n if (responseData.TitledResultsGroup != undefined) {\r\n loaded.TitledResultsGroup(responseData.TitledResultsGroup);\r\n }\r\n if (responseData.ResultsGroup != undefined) {\r\n loaded.ResultsGroup(responseData.ResultsGroup);\r\n }\r\n if (responseData.ResultsOrder != undefined) {\r\n loaded.ResultsOrder(responseData.ResultsOrder);\r\n }\r\n if (responseData.InStaticPrimary != undefined) {\r\n loaded.InStaticPrimary(responseData.InStaticPrimary);\r\n }\r\n if (responseData.IsPercentage != undefined) {\r\n loaded.IsPercentage(responseData.IsPercentage);\r\n }\r\n if (responseData.IsDateSequence != undefined) {\r\n loaded.IsDateSequence(responseData.IsDateSequence);\r\n }\r\n if (responseData.DateSeqDownstreamOperator != undefined) {\r\n loaded.DateSeqDownstreamOperator(responseData.DateSeqDownstreamOperator);\r\n }\r\n if (responseData.DateSeqUpstreamOperator != undefined) {\r\n loaded.DateSeqUpstreamOperator(responseData.DateSeqUpstreamOperator);\r\n }\r\n if (responseData.DateSeqPathToDownstreamDate != undefined) {\r\n loaded.DateSeqPathToDownstreamDate(responseData.DateSeqPathToDownstreamDate);\r\n }\r\n if (responseData.DateSeqPathToUpstreamDate != undefined) {\r\n loaded.DateSeqPathToUpstreamDate(responseData.DateSeqPathToUpstreamDate);\r\n }\r\n if (responseData.PathToCurrency != undefined) {\r\n loaded.PathToCurrency(responseData.PathToCurrency);\r\n }\r\n if (responseData.ApiSummaryField != undefined) {\r\n loaded.ApiSummaryField(responseData.ApiSummaryField);\r\n }\r\n if (responseData.ApiDetailedField != undefined) {\r\n loaded.ApiDetailedField(responseData.ApiDetailedField);\r\n }\r\n if (responseData.IsUserDefined != undefined) {\r\n loaded.IsUserDefined(responseData.IsUserDefined);\r\n }\r\n if (responseData.PackageID != undefined) {\r\n loaded.PackageID(responseData.PackageID);\r\n }\r\n if (responseData.IsTimeSequence != undefined) {\r\n loaded.IsTimeSequence(responseData.IsTimeSequence);\r\n }\r\n if (responseData.StaticSectionView != undefined) {\r\n loaded.StaticSectionView(responseData.StaticSectionView);\r\n }\r\n if (responseData.PopupEditorView != undefined) {\r\n loaded.PopupEditorView(responseData.PopupEditorView);\r\n }\r\n if (responseData.ListTableHeaderView != undefined) {\r\n loaded.ListTableHeaderView(responseData.ListTableHeaderView);\r\n }\r\n if (responseData.ListTableRowView != undefined) {\r\n loaded.ListTableRowView(responseData.ListTableRowView);\r\n }\r\n if (responseData.StandardTableHeaderView != undefined) {\r\n loaded.StandardTableHeaderView(responseData.StandardTableHeaderView);\r\n }\r\n if (responseData.StandardTableRowView != undefined) {\r\n loaded.StandardTableRowView(responseData.StandardTableRowView);\r\n }\r\n if (responseData.StandardListView != undefined) {\r\n loaded.StandardListView(responseData.StandardListView);\r\n }\r\n if (responseData.StandardTableM2MView != undefined) {\r\n loaded.StandardTableM2MView(responseData.StandardTableM2MView);\r\n }\r\n if (responseData.SearchEditorView != undefined) {\r\n loaded.SearchEditorView(responseData.SearchEditorView);\r\n }\r\n if (responseData.SearchHeaderView != undefined) {\r\n loaded.SearchHeaderView(responseData.SearchHeaderView);\r\n }\r\n if (responseData.SearchRowView != undefined) {\r\n loaded.SearchRowView(responseData.SearchRowView);\r\n }\r\n if (responseData.SearchListView != undefined) {\r\n loaded.SearchListView(responseData.SearchListView);\r\n }\r\n if (responseData.DisplayReadOnly != undefined) {\r\n loaded.DisplayReadOnly(responseData.DisplayReadOnly);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.BuilderEntityModel().LoadFromResponse(responseData.Parent));\r\n }\r\n if (responseData.Package != null) {\r\n loaded.Package(new smapi.entities.SDKPackageModel().LoadFromResponse(responseData.Package));\r\n }\r\n if (responseData.MVCAttributes != null && responseData.MVCAttributes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.MVCAttributes.length; i++) {\r\n items.push(new smapi.entities.BuilderEntityFieldMVCAttributeModel().LoadFromResponse(responseData.MVCAttributes[i]));\r\n }\r\n loaded.MVCAttributes(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BuilderEntityField', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.BuilderEntityID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.FieldOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AttributeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.DisplayName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.FieldName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.DataType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.DefaultValue.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.DataLength.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Precision.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Scale.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MinimumDataLength.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.HintMask.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.DisplayMask.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ProviderID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.ZoneName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.InheritedID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.MigrationDefaultValue.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.AttributeForRelationship.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.AggregateRelationship.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Label.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ShortLabel.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Tooltip.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n this.Prompt.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.MinimumValue.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.MaximumValue.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ValidationRegExStr.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 500,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '500')\r\n }\r\n });\r\n this.InvalidMessage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SourceType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SourceDisplay.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SourceValue.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SourceFilter.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortDirection.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.FieldCharacteristics.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.RelatedField.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.TitledDisplayGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.DisplayGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.TitledResultsGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.ResultsGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.ResultsOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DateSeqDownstreamOperator.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.DateSeqUpstreamOperator.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.DateSeqPathToDownstreamDate.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.DateSeqPathToUpstreamDate.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.PathToCurrency.extend({\r\n maxLength: {\r\n params: 1024,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1024')\r\n }\r\n });\r\n this.PackageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StaticSectionView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.PopupEditorView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ListTableHeaderView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ListTableRowView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.StandardTableHeaderView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.StandardTableRowView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.StandardListView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.StandardTableM2MView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SearchEditorView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SearchHeaderView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SearchRowView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SearchListView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BuilderEntityRelationshipModel(options) {\r\n var defaults = {\r\n BuilderEntityID: 0,\r\n ClassType: 0,\r\n AttributeName: '',\r\n FieldOrdinal: 0,\r\n DataType: '',\r\n SimpleDataType: '',\r\n RelationShipType: '',\r\n DefaultValue: '',\r\n Label: '',\r\n Description: '',\r\n ShortLabel: '',\r\n Prompt: '',\r\n HasGetter: false,\r\n HasSetter: false,\r\n IsFK: false,\r\n IsRequired: false,\r\n IsInherited: false,\r\n IsAnchor: false,\r\n InPartial: false,\r\n Aggregated: false,\r\n InheritedID: null,\r\n CascadeAction: '',\r\n CsvDictionaryKeys: '',\r\n Transient: false,\r\n AggregateRelationship: '',\r\n ParentAttribute: '',\r\n BackpointedAttribute: '',\r\n TableName: '',\r\n IndexerType: '',\r\n IsObsolete: false,\r\n ForeignKeyName: '',\r\n HierarchyPart: null,\r\n InitializerPart: null,\r\n Characteristics: null,\r\n SearchField: false,\r\n SearchResultField: false,\r\n PopupSearchField: false,\r\n PopupSearchResultField: false,\r\n LiveSearchResult: false,\r\n PopupJsonResult: false,\r\n SVDisplayField: false,\r\n TOCTableField: false,\r\n TOCListField: false,\r\n Hidden: false,\r\n IsParent: false,\r\n Context: false,\r\n SearchFieldDepth: 0,\r\n TitledDisplayGroup: '',\r\n DisplayGroup: '',\r\n EditorMode: null,\r\n SearchMode: null,\r\n TOCItemMode: null,\r\n HeaderField: false,\r\n ShortForm: false,\r\n LongForm: false,\r\n TitledResultsGroup: '',\r\n ResultsGroup: '',\r\n ResultsOrder: 0,\r\n InStaticPrimary: false,\r\n SortOrdinal: 0,\r\n ApiSummaryRelationship: false,\r\n ApiDetailedRelationship: false,\r\n IsUserDefined: false,\r\n LockParentOnChildEdit: false,\r\n PackageID: null,\r\n TOCOrdinal: 0,\r\n SaveOrdinal: 0,\r\n NoRecursionForATO: false,\r\n NoRecursionForDTO: false,\r\n DisplayReadOnly: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.BuilderEntityID = ko.validatedObservable(settings.BuilderEntityID);\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.AttributeName = ko.validatedObservable(settings.AttributeName);\r\n this.FieldOrdinal = ko.validatedObservable(settings.FieldOrdinal);\r\n this.DataType = ko.validatedObservable(settings.DataType);\r\n this.SimpleDataType = ko.validatedObservable(settings.SimpleDataType);\r\n this.RelationShipType = ko.validatedObservable(settings.RelationShipType);\r\n this.DefaultValue = ko.validatedObservable(settings.DefaultValue);\r\n this.Label = ko.validatedObservable(settings.Label);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.ShortLabel = ko.validatedObservable(settings.ShortLabel);\r\n this.Prompt = ko.validatedObservable(settings.Prompt);\r\n this.HasGetter = ko.validatedObservable(settings.HasGetter);\r\n this.HasSetter = ko.validatedObservable(settings.HasSetter);\r\n this.IsFK = ko.validatedObservable(settings.IsFK);\r\n this.IsRequired = ko.validatedObservable(settings.IsRequired);\r\n this.IsInherited = ko.validatedObservable(settings.IsInherited);\r\n this.IsAnchor = ko.validatedObservable(settings.IsAnchor);\r\n this.InPartial = ko.validatedObservable(settings.InPartial);\r\n this.Aggregated = ko.validatedObservable(settings.Aggregated);\r\n this.InheritedID = ko.validatedObservable(settings.InheritedID);\r\n this.CascadeAction = ko.validatedObservable(settings.CascadeAction);\r\n this.CsvDictionaryKeys = ko.validatedObservable(settings.CsvDictionaryKeys);\r\n this.Transient = ko.validatedObservable(settings.Transient);\r\n this.AggregateRelationship = ko.validatedObservable(settings.AggregateRelationship);\r\n this.ParentAttribute = ko.validatedObservable(settings.ParentAttribute);\r\n this.BackpointedAttribute = ko.validatedObservable(settings.BackpointedAttribute);\r\n this.TableName = ko.validatedObservable(settings.TableName);\r\n this.IndexerType = ko.validatedObservable(settings.IndexerType);\r\n this.IsObsolete = ko.validatedObservable(settings.IsObsolete);\r\n this.ForeignKeyName = ko.validatedObservable(settings.ForeignKeyName);\r\n this.HierarchyPart = ko.validatedObservable(settings.HierarchyPart);\r\n this.InitializerPart = ko.validatedObservable(settings.InitializerPart);\r\n this.Characteristics = ko.validatedObservable(settings.Characteristics);\r\n this.SearchField = ko.validatedObservable(settings.SearchField);\r\n this.SearchResultField = ko.validatedObservable(settings.SearchResultField);\r\n this.PopupSearchField = ko.validatedObservable(settings.PopupSearchField);\r\n this.PopupSearchResultField = ko.validatedObservable(settings.PopupSearchResultField);\r\n this.LiveSearchResult = ko.validatedObservable(settings.LiveSearchResult);\r\n this.PopupJsonResult = ko.validatedObservable(settings.PopupJsonResult);\r\n this.SVDisplayField = ko.validatedObservable(settings.SVDisplayField);\r\n this.TOCTableField = ko.validatedObservable(settings.TOCTableField);\r\n this.TOCListField = ko.validatedObservable(settings.TOCListField);\r\n this.Hidden = ko.validatedObservable(settings.Hidden);\r\n this.IsParent = ko.validatedObservable(settings.IsParent);\r\n this.Context = ko.validatedObservable(settings.Context);\r\n this.SearchFieldDepth = ko.validatedObservable(settings.SearchFieldDepth);\r\n this.TitledDisplayGroup = ko.validatedObservable(settings.TitledDisplayGroup);\r\n this.DisplayGroup = ko.validatedObservable(settings.DisplayGroup);\r\n this.EditorMode = ko.validatedObservable(settings.EditorMode);\r\n this.SearchMode = ko.validatedObservable(settings.SearchMode);\r\n this.TOCItemMode = ko.validatedObservable(settings.TOCItemMode);\r\n this.HeaderField = ko.validatedObservable(settings.HeaderField);\r\n this.ShortForm = ko.validatedObservable(settings.ShortForm);\r\n this.LongForm = ko.validatedObservable(settings.LongForm);\r\n this.TitledResultsGroup = ko.validatedObservable(settings.TitledResultsGroup);\r\n this.ResultsGroup = ko.validatedObservable(settings.ResultsGroup);\r\n this.ResultsOrder = ko.validatedObservable(settings.ResultsOrder);\r\n this.InStaticPrimary = ko.validatedObservable(settings.InStaticPrimary);\r\n this.SortOrdinal = ko.validatedObservable(settings.SortOrdinal);\r\n this.ApiSummaryRelationship = ko.validatedObservable(settings.ApiSummaryRelationship);\r\n this.ApiDetailedRelationship = ko.validatedObservable(settings.ApiDetailedRelationship);\r\n this.IsUserDefined = ko.validatedObservable(settings.IsUserDefined);\r\n this.LockParentOnChildEdit = ko.validatedObservable(settings.LockParentOnChildEdit);\r\n this.PackageID = ko.validatedObservable(settings.PackageID);\r\n this.TOCOrdinal = ko.validatedObservable(settings.TOCOrdinal);\r\n this.SaveOrdinal = ko.validatedObservable(settings.SaveOrdinal);\r\n this.NoRecursionForATO = ko.validatedObservable(settings.NoRecursionForATO);\r\n this.NoRecursionForDTO = ko.validatedObservable(settings.NoRecursionForDTO);\r\n this.DisplayReadOnly = ko.validatedObservable(settings.DisplayReadOnly);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n this.RelationshipLinks = ko.observableArray([]);\r\n this.Package = ko.observable();\r\n this.MVCAttributes = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.BuilderEntityID != undefined) {\r\n loaded.BuilderEntityID(responseData.BuilderEntityID);\r\n }\r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.AttributeName != undefined) {\r\n loaded.AttributeName(responseData.AttributeName);\r\n }\r\n if (responseData.FieldOrdinal != undefined) {\r\n loaded.FieldOrdinal(responseData.FieldOrdinal);\r\n }\r\n if (responseData.DataType != undefined) {\r\n loaded.DataType(responseData.DataType);\r\n }\r\n if (responseData.SimpleDataType != undefined) {\r\n loaded.SimpleDataType(responseData.SimpleDataType);\r\n }\r\n if (responseData.RelationShipType != undefined) {\r\n loaded.RelationShipType(responseData.RelationShipType);\r\n }\r\n if (responseData.DefaultValue != undefined) {\r\n loaded.DefaultValue(responseData.DefaultValue);\r\n }\r\n if (responseData.Label != undefined) {\r\n loaded.Label(responseData.Label);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.ShortLabel != undefined) {\r\n loaded.ShortLabel(responseData.ShortLabel);\r\n }\r\n if (responseData.Prompt != undefined) {\r\n loaded.Prompt(responseData.Prompt);\r\n }\r\n if (responseData.HasGetter != undefined) {\r\n loaded.HasGetter(responseData.HasGetter);\r\n }\r\n if (responseData.HasSetter != undefined) {\r\n loaded.HasSetter(responseData.HasSetter);\r\n }\r\n if (responseData.IsFK != undefined) {\r\n loaded.IsFK(responseData.IsFK);\r\n }\r\n if (responseData.IsRequired != undefined) {\r\n loaded.IsRequired(responseData.IsRequired);\r\n }\r\n if (responseData.IsInherited != undefined) {\r\n loaded.IsInherited(responseData.IsInherited);\r\n }\r\n if (responseData.IsAnchor != undefined) {\r\n loaded.IsAnchor(responseData.IsAnchor);\r\n }\r\n if (responseData.InPartial != undefined) {\r\n loaded.InPartial(responseData.InPartial);\r\n }\r\n if (responseData.Aggregated != undefined) {\r\n loaded.Aggregated(responseData.Aggregated);\r\n }\r\n if (responseData.InheritedID != undefined) {\r\n loaded.InheritedID(responseData.InheritedID);\r\n }\r\n if (responseData.CascadeAction != undefined) {\r\n loaded.CascadeAction(responseData.CascadeAction);\r\n }\r\n if (responseData.CsvDictionaryKeys != undefined) {\r\n loaded.CsvDictionaryKeys(responseData.CsvDictionaryKeys);\r\n }\r\n if (responseData.Transient != undefined) {\r\n loaded.Transient(responseData.Transient);\r\n }\r\n if (responseData.AggregateRelationship != undefined) {\r\n loaded.AggregateRelationship(responseData.AggregateRelationship);\r\n }\r\n if (responseData.ParentAttribute != undefined) {\r\n loaded.ParentAttribute(responseData.ParentAttribute);\r\n }\r\n if (responseData.BackpointedAttribute != undefined) {\r\n loaded.BackpointedAttribute(responseData.BackpointedAttribute);\r\n }\r\n if (responseData.TableName != undefined) {\r\n loaded.TableName(responseData.TableName);\r\n }\r\n if (responseData.IndexerType != undefined) {\r\n loaded.IndexerType(responseData.IndexerType);\r\n }\r\n if (responseData.IsObsolete != undefined) {\r\n loaded.IsObsolete(responseData.IsObsolete);\r\n }\r\n if (responseData.ForeignKeyName != undefined) {\r\n loaded.ForeignKeyName(responseData.ForeignKeyName);\r\n }\r\n if (responseData.HierarchyPart != undefined) {\r\n loaded.HierarchyPart(responseData.HierarchyPart);\r\n }\r\n if (responseData.InitializerPart != undefined) {\r\n loaded.InitializerPart(responseData.InitializerPart);\r\n }\r\n if (responseData.Characteristics != undefined) {\r\n loaded.Characteristics(responseData.Characteristics);\r\n }\r\n if (responseData.SearchField != undefined) {\r\n loaded.SearchField(responseData.SearchField);\r\n }\r\n if (responseData.SearchResultField != undefined) {\r\n loaded.SearchResultField(responseData.SearchResultField);\r\n }\r\n if (responseData.PopupSearchField != undefined) {\r\n loaded.PopupSearchField(responseData.PopupSearchField);\r\n }\r\n if (responseData.PopupSearchResultField != undefined) {\r\n loaded.PopupSearchResultField(responseData.PopupSearchResultField);\r\n }\r\n if (responseData.LiveSearchResult != undefined) {\r\n loaded.LiveSearchResult(responseData.LiveSearchResult);\r\n }\r\n if (responseData.PopupJsonResult != undefined) {\r\n loaded.PopupJsonResult(responseData.PopupJsonResult);\r\n }\r\n if (responseData.SVDisplayField != undefined) {\r\n loaded.SVDisplayField(responseData.SVDisplayField);\r\n }\r\n if (responseData.TOCTableField != undefined) {\r\n loaded.TOCTableField(responseData.TOCTableField);\r\n }\r\n if (responseData.TOCListField != undefined) {\r\n loaded.TOCListField(responseData.TOCListField);\r\n }\r\n if (responseData.Hidden != undefined) {\r\n loaded.Hidden(responseData.Hidden);\r\n }\r\n if (responseData.IsParent != undefined) {\r\n loaded.IsParent(responseData.IsParent);\r\n }\r\n if (responseData.Context != undefined) {\r\n loaded.Context(responseData.Context);\r\n }\r\n if (responseData.SearchFieldDepth != undefined) {\r\n loaded.SearchFieldDepth(responseData.SearchFieldDepth);\r\n }\r\n if (responseData.TitledDisplayGroup != undefined) {\r\n loaded.TitledDisplayGroup(responseData.TitledDisplayGroup);\r\n }\r\n if (responseData.DisplayGroup != undefined) {\r\n loaded.DisplayGroup(responseData.DisplayGroup);\r\n }\r\n if (responseData.EditorMode != undefined) {\r\n loaded.EditorMode(responseData.EditorMode);\r\n }\r\n if (responseData.SearchMode != undefined) {\r\n loaded.SearchMode(responseData.SearchMode);\r\n }\r\n if (responseData.TOCItemMode != undefined) {\r\n loaded.TOCItemMode(responseData.TOCItemMode);\r\n }\r\n if (responseData.HeaderField != undefined) {\r\n loaded.HeaderField(responseData.HeaderField);\r\n }\r\n if (responseData.ShortForm != undefined) {\r\n loaded.ShortForm(responseData.ShortForm);\r\n }\r\n if (responseData.LongForm != undefined) {\r\n loaded.LongForm(responseData.LongForm);\r\n }\r\n if (responseData.TitledResultsGroup != undefined) {\r\n loaded.TitledResultsGroup(responseData.TitledResultsGroup);\r\n }\r\n if (responseData.ResultsGroup != undefined) {\r\n loaded.ResultsGroup(responseData.ResultsGroup);\r\n }\r\n if (responseData.ResultsOrder != undefined) {\r\n loaded.ResultsOrder(responseData.ResultsOrder);\r\n }\r\n if (responseData.InStaticPrimary != undefined) {\r\n loaded.InStaticPrimary(responseData.InStaticPrimary);\r\n }\r\n if (responseData.SortOrdinal != undefined) {\r\n loaded.SortOrdinal(responseData.SortOrdinal);\r\n }\r\n if (responseData.ApiSummaryRelationship != undefined) {\r\n loaded.ApiSummaryRelationship(responseData.ApiSummaryRelationship);\r\n }\r\n if (responseData.ApiDetailedRelationship != undefined) {\r\n loaded.ApiDetailedRelationship(responseData.ApiDetailedRelationship);\r\n }\r\n if (responseData.IsUserDefined != undefined) {\r\n loaded.IsUserDefined(responseData.IsUserDefined);\r\n }\r\n if (responseData.LockParentOnChildEdit != undefined) {\r\n loaded.LockParentOnChildEdit(responseData.LockParentOnChildEdit);\r\n }\r\n if (responseData.PackageID != undefined) {\r\n loaded.PackageID(responseData.PackageID);\r\n }\r\n if (responseData.TOCOrdinal != undefined) {\r\n loaded.TOCOrdinal(responseData.TOCOrdinal);\r\n }\r\n if (responseData.SaveOrdinal != undefined) {\r\n loaded.SaveOrdinal(responseData.SaveOrdinal);\r\n }\r\n if (responseData.NoRecursionForATO != undefined) {\r\n loaded.NoRecursionForATO(responseData.NoRecursionForATO);\r\n }\r\n if (responseData.NoRecursionForDTO != undefined) {\r\n loaded.NoRecursionForDTO(responseData.NoRecursionForDTO);\r\n }\r\n if (responseData.DisplayReadOnly != undefined) {\r\n loaded.DisplayReadOnly(responseData.DisplayReadOnly);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.BuilderEntityModel().LoadFromResponse(responseData.Parent));\r\n }\r\n if (responseData.RelationshipLinks != null && responseData.RelationshipLinks.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.RelationshipLinks.length; i++) {\r\n items.push(new smapi.entities.BuilderEntityRelationshipLinkModel().LoadFromResponse(responseData.RelationshipLinks[i]));\r\n }\r\n loaded.RelationshipLinks(items);\r\n }\r\n if (responseData.Package != null) {\r\n loaded.Package(new smapi.entities.SDKPackageModel().LoadFromResponse(responseData.Package));\r\n }\r\n if (responseData.MVCAttributes != null && responseData.MVCAttributes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.MVCAttributes.length; i++) {\r\n items.push(new smapi.entities.BuilderEntityRelationshipMVCAttributeModel().LoadFromResponse(responseData.MVCAttributes[i]));\r\n }\r\n loaded.MVCAttributes(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BuilderEntityRelationship', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.BuilderEntityID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AttributeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.FieldOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SimpleDataType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.RelationShipType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.DefaultValue.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Label.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n this.ShortLabel.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Prompt.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.InheritedID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.CascadeAction.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.CsvDictionaryKeys.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.AggregateRelationship.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ParentAttribute.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.BackpointedAttribute.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.TableName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.IndexerType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ForeignKeyName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.HierarchyPart.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.InitializerPart.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.Characteristics.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.SearchFieldDepth.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TitledDisplayGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.DisplayGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.EditorMode.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.SearchMode.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.TOCItemMode.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.TitledResultsGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.ResultsGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.ResultsOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PackageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TOCOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SaveOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BuilderEntityLookupRelationshipModel(options) {\r\n var defaults = {\r\n GroupIdentifierField: '',\r\n GroupIdentifierValue: '',\r\n GroupParentLookup: '',\r\n GroupBinding: '',\r\n QueryToParentLookup: '',\r\n BuilderEntityID: 0,\r\n ClassType: 0,\r\n AttributeName: '',\r\n FieldOrdinal: 0,\r\n DataType: '',\r\n SimpleDataType: '',\r\n RelationShipType: '',\r\n DefaultValue: '',\r\n Label: '',\r\n Description: '',\r\n ShortLabel: '',\r\n Prompt: '',\r\n HasGetter: false,\r\n HasSetter: false,\r\n IsFK: false,\r\n IsRequired: false,\r\n IsInherited: false,\r\n IsAnchor: false,\r\n InPartial: false,\r\n Aggregated: false,\r\n InheritedID: null,\r\n CascadeAction: '',\r\n CsvDictionaryKeys: '',\r\n Transient: false,\r\n AggregateRelationship: '',\r\n ParentAttribute: '',\r\n BackpointedAttribute: '',\r\n TableName: '',\r\n IndexerType: '',\r\n IsObsolete: false,\r\n ForeignKeyName: '',\r\n HierarchyPart: null,\r\n InitializerPart: null,\r\n Characteristics: null,\r\n SearchField: false,\r\n SearchResultField: false,\r\n PopupSearchField: false,\r\n PopupSearchResultField: false,\r\n LiveSearchResult: false,\r\n PopupJsonResult: false,\r\n SVDisplayField: false,\r\n TOCTableField: false,\r\n TOCListField: false,\r\n Hidden: false,\r\n IsParent: false,\r\n Context: false,\r\n SearchFieldDepth: 0,\r\n TitledDisplayGroup: '',\r\n DisplayGroup: '',\r\n EditorMode: null,\r\n SearchMode: null,\r\n TOCItemMode: null,\r\n HeaderField: false,\r\n ShortForm: false,\r\n LongForm: false,\r\n TitledResultsGroup: '',\r\n ResultsGroup: '',\r\n ResultsOrder: 0,\r\n InStaticPrimary: false,\r\n SortOrdinal: 0,\r\n ApiSummaryRelationship: false,\r\n ApiDetailedRelationship: false,\r\n IsUserDefined: false,\r\n LockParentOnChildEdit: false,\r\n PackageID: null,\r\n TOCOrdinal: 0,\r\n SaveOrdinal: 0,\r\n NoRecursionForATO: false,\r\n NoRecursionForDTO: false,\r\n DisplayReadOnly: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.GroupIdentifierField = ko.validatedObservable(settings.GroupIdentifierField);\r\n this.GroupIdentifierValue = ko.validatedObservable(settings.GroupIdentifierValue);\r\n this.GroupParentLookup = ko.validatedObservable(settings.GroupParentLookup);\r\n this.GroupBinding = ko.validatedObservable(settings.GroupBinding);\r\n this.QueryToParentLookup = ko.validatedObservable(settings.QueryToParentLookup);\r\n this.BuilderEntityID = ko.validatedObservable(settings.BuilderEntityID);\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.AttributeName = ko.validatedObservable(settings.AttributeName);\r\n this.FieldOrdinal = ko.validatedObservable(settings.FieldOrdinal);\r\n this.DataType = ko.validatedObservable(settings.DataType);\r\n this.SimpleDataType = ko.validatedObservable(settings.SimpleDataType);\r\n this.RelationShipType = ko.validatedObservable(settings.RelationShipType);\r\n this.DefaultValue = ko.validatedObservable(settings.DefaultValue);\r\n this.Label = ko.validatedObservable(settings.Label);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.ShortLabel = ko.validatedObservable(settings.ShortLabel);\r\n this.Prompt = ko.validatedObservable(settings.Prompt);\r\n this.HasGetter = ko.validatedObservable(settings.HasGetter);\r\n this.HasSetter = ko.validatedObservable(settings.HasSetter);\r\n this.IsFK = ko.validatedObservable(settings.IsFK);\r\n this.IsRequired = ko.validatedObservable(settings.IsRequired);\r\n this.IsInherited = ko.validatedObservable(settings.IsInherited);\r\n this.IsAnchor = ko.validatedObservable(settings.IsAnchor);\r\n this.InPartial = ko.validatedObservable(settings.InPartial);\r\n this.Aggregated = ko.validatedObservable(settings.Aggregated);\r\n this.InheritedID = ko.validatedObservable(settings.InheritedID);\r\n this.CascadeAction = ko.validatedObservable(settings.CascadeAction);\r\n this.CsvDictionaryKeys = ko.validatedObservable(settings.CsvDictionaryKeys);\r\n this.Transient = ko.validatedObservable(settings.Transient);\r\n this.AggregateRelationship = ko.validatedObservable(settings.AggregateRelationship);\r\n this.ParentAttribute = ko.validatedObservable(settings.ParentAttribute);\r\n this.BackpointedAttribute = ko.validatedObservable(settings.BackpointedAttribute);\r\n this.TableName = ko.validatedObservable(settings.TableName);\r\n this.IndexerType = ko.validatedObservable(settings.IndexerType);\r\n this.IsObsolete = ko.validatedObservable(settings.IsObsolete);\r\n this.ForeignKeyName = ko.validatedObservable(settings.ForeignKeyName);\r\n this.HierarchyPart = ko.validatedObservable(settings.HierarchyPart);\r\n this.InitializerPart = ko.validatedObservable(settings.InitializerPart);\r\n this.Characteristics = ko.validatedObservable(settings.Characteristics);\r\n this.SearchField = ko.validatedObservable(settings.SearchField);\r\n this.SearchResultField = ko.validatedObservable(settings.SearchResultField);\r\n this.PopupSearchField = ko.validatedObservable(settings.PopupSearchField);\r\n this.PopupSearchResultField = ko.validatedObservable(settings.PopupSearchResultField);\r\n this.LiveSearchResult = ko.validatedObservable(settings.LiveSearchResult);\r\n this.PopupJsonResult = ko.validatedObservable(settings.PopupJsonResult);\r\n this.SVDisplayField = ko.validatedObservable(settings.SVDisplayField);\r\n this.TOCTableField = ko.validatedObservable(settings.TOCTableField);\r\n this.TOCListField = ko.validatedObservable(settings.TOCListField);\r\n this.Hidden = ko.validatedObservable(settings.Hidden);\r\n this.IsParent = ko.validatedObservable(settings.IsParent);\r\n this.Context = ko.validatedObservable(settings.Context);\r\n this.SearchFieldDepth = ko.validatedObservable(settings.SearchFieldDepth);\r\n this.TitledDisplayGroup = ko.validatedObservable(settings.TitledDisplayGroup);\r\n this.DisplayGroup = ko.validatedObservable(settings.DisplayGroup);\r\n this.EditorMode = ko.validatedObservable(settings.EditorMode);\r\n this.SearchMode = ko.validatedObservable(settings.SearchMode);\r\n this.TOCItemMode = ko.validatedObservable(settings.TOCItemMode);\r\n this.HeaderField = ko.validatedObservable(settings.HeaderField);\r\n this.ShortForm = ko.validatedObservable(settings.ShortForm);\r\n this.LongForm = ko.validatedObservable(settings.LongForm);\r\n this.TitledResultsGroup = ko.validatedObservable(settings.TitledResultsGroup);\r\n this.ResultsGroup = ko.validatedObservable(settings.ResultsGroup);\r\n this.ResultsOrder = ko.validatedObservable(settings.ResultsOrder);\r\n this.InStaticPrimary = ko.validatedObservable(settings.InStaticPrimary);\r\n this.SortOrdinal = ko.validatedObservable(settings.SortOrdinal);\r\n this.ApiSummaryRelationship = ko.validatedObservable(settings.ApiSummaryRelationship);\r\n this.ApiDetailedRelationship = ko.validatedObservable(settings.ApiDetailedRelationship);\r\n this.IsUserDefined = ko.validatedObservable(settings.IsUserDefined);\r\n this.LockParentOnChildEdit = ko.validatedObservable(settings.LockParentOnChildEdit);\r\n this.PackageID = ko.validatedObservable(settings.PackageID);\r\n this.TOCOrdinal = ko.validatedObservable(settings.TOCOrdinal);\r\n this.SaveOrdinal = ko.validatedObservable(settings.SaveOrdinal);\r\n this.NoRecursionForATO = ko.validatedObservable(settings.NoRecursionForATO);\r\n this.NoRecursionForDTO = ko.validatedObservable(settings.NoRecursionForDTO);\r\n this.DisplayReadOnly = ko.validatedObservable(settings.DisplayReadOnly);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n this.RelationshipLinks = ko.observableArray([]);\r\n this.Package = ko.observable();\r\n this.MVCAttributes = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.GroupIdentifierField != undefined) {\r\n loaded.GroupIdentifierField(responseData.GroupIdentifierField);\r\n }\r\n if (responseData.GroupIdentifierValue != undefined) {\r\n loaded.GroupIdentifierValue(responseData.GroupIdentifierValue);\r\n }\r\n if (responseData.GroupParentLookup != undefined) {\r\n loaded.GroupParentLookup(responseData.GroupParentLookup);\r\n }\r\n if (responseData.GroupBinding != undefined) {\r\n loaded.GroupBinding(responseData.GroupBinding);\r\n }\r\n if (responseData.QueryToParentLookup != undefined) {\r\n loaded.QueryToParentLookup(responseData.QueryToParentLookup);\r\n }\r\n if (responseData.BuilderEntityID != undefined) {\r\n loaded.BuilderEntityID(responseData.BuilderEntityID);\r\n }\r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.AttributeName != undefined) {\r\n loaded.AttributeName(responseData.AttributeName);\r\n }\r\n if (responseData.FieldOrdinal != undefined) {\r\n loaded.FieldOrdinal(responseData.FieldOrdinal);\r\n }\r\n if (responseData.DataType != undefined) {\r\n loaded.DataType(responseData.DataType);\r\n }\r\n if (responseData.SimpleDataType != undefined) {\r\n loaded.SimpleDataType(responseData.SimpleDataType);\r\n }\r\n if (responseData.RelationShipType != undefined) {\r\n loaded.RelationShipType(responseData.RelationShipType);\r\n }\r\n if (responseData.DefaultValue != undefined) {\r\n loaded.DefaultValue(responseData.DefaultValue);\r\n }\r\n if (responseData.Label != undefined) {\r\n loaded.Label(responseData.Label);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.ShortLabel != undefined) {\r\n loaded.ShortLabel(responseData.ShortLabel);\r\n }\r\n if (responseData.Prompt != undefined) {\r\n loaded.Prompt(responseData.Prompt);\r\n }\r\n if (responseData.HasGetter != undefined) {\r\n loaded.HasGetter(responseData.HasGetter);\r\n }\r\n if (responseData.HasSetter != undefined) {\r\n loaded.HasSetter(responseData.HasSetter);\r\n }\r\n if (responseData.IsFK != undefined) {\r\n loaded.IsFK(responseData.IsFK);\r\n }\r\n if (responseData.IsRequired != undefined) {\r\n loaded.IsRequired(responseData.IsRequired);\r\n }\r\n if (responseData.IsInherited != undefined) {\r\n loaded.IsInherited(responseData.IsInherited);\r\n }\r\n if (responseData.IsAnchor != undefined) {\r\n loaded.IsAnchor(responseData.IsAnchor);\r\n }\r\n if (responseData.InPartial != undefined) {\r\n loaded.InPartial(responseData.InPartial);\r\n }\r\n if (responseData.Aggregated != undefined) {\r\n loaded.Aggregated(responseData.Aggregated);\r\n }\r\n if (responseData.InheritedID != undefined) {\r\n loaded.InheritedID(responseData.InheritedID);\r\n }\r\n if (responseData.CascadeAction != undefined) {\r\n loaded.CascadeAction(responseData.CascadeAction);\r\n }\r\n if (responseData.CsvDictionaryKeys != undefined) {\r\n loaded.CsvDictionaryKeys(responseData.CsvDictionaryKeys);\r\n }\r\n if (responseData.Transient != undefined) {\r\n loaded.Transient(responseData.Transient);\r\n }\r\n if (responseData.AggregateRelationship != undefined) {\r\n loaded.AggregateRelationship(responseData.AggregateRelationship);\r\n }\r\n if (responseData.ParentAttribute != undefined) {\r\n loaded.ParentAttribute(responseData.ParentAttribute);\r\n }\r\n if (responseData.BackpointedAttribute != undefined) {\r\n loaded.BackpointedAttribute(responseData.BackpointedAttribute);\r\n }\r\n if (responseData.TableName != undefined) {\r\n loaded.TableName(responseData.TableName);\r\n }\r\n if (responseData.IndexerType != undefined) {\r\n loaded.IndexerType(responseData.IndexerType);\r\n }\r\n if (responseData.IsObsolete != undefined) {\r\n loaded.IsObsolete(responseData.IsObsolete);\r\n }\r\n if (responseData.ForeignKeyName != undefined) {\r\n loaded.ForeignKeyName(responseData.ForeignKeyName);\r\n }\r\n if (responseData.HierarchyPart != undefined) {\r\n loaded.HierarchyPart(responseData.HierarchyPart);\r\n }\r\n if (responseData.InitializerPart != undefined) {\r\n loaded.InitializerPart(responseData.InitializerPart);\r\n }\r\n if (responseData.Characteristics != undefined) {\r\n loaded.Characteristics(responseData.Characteristics);\r\n }\r\n if (responseData.SearchField != undefined) {\r\n loaded.SearchField(responseData.SearchField);\r\n }\r\n if (responseData.SearchResultField != undefined) {\r\n loaded.SearchResultField(responseData.SearchResultField);\r\n }\r\n if (responseData.PopupSearchField != undefined) {\r\n loaded.PopupSearchField(responseData.PopupSearchField);\r\n }\r\n if (responseData.PopupSearchResultField != undefined) {\r\n loaded.PopupSearchResultField(responseData.PopupSearchResultField);\r\n }\r\n if (responseData.LiveSearchResult != undefined) {\r\n loaded.LiveSearchResult(responseData.LiveSearchResult);\r\n }\r\n if (responseData.PopupJsonResult != undefined) {\r\n loaded.PopupJsonResult(responseData.PopupJsonResult);\r\n }\r\n if (responseData.SVDisplayField != undefined) {\r\n loaded.SVDisplayField(responseData.SVDisplayField);\r\n }\r\n if (responseData.TOCTableField != undefined) {\r\n loaded.TOCTableField(responseData.TOCTableField);\r\n }\r\n if (responseData.TOCListField != undefined) {\r\n loaded.TOCListField(responseData.TOCListField);\r\n }\r\n if (responseData.Hidden != undefined) {\r\n loaded.Hidden(responseData.Hidden);\r\n }\r\n if (responseData.IsParent != undefined) {\r\n loaded.IsParent(responseData.IsParent);\r\n }\r\n if (responseData.Context != undefined) {\r\n loaded.Context(responseData.Context);\r\n }\r\n if (responseData.SearchFieldDepth != undefined) {\r\n loaded.SearchFieldDepth(responseData.SearchFieldDepth);\r\n }\r\n if (responseData.TitledDisplayGroup != undefined) {\r\n loaded.TitledDisplayGroup(responseData.TitledDisplayGroup);\r\n }\r\n if (responseData.DisplayGroup != undefined) {\r\n loaded.DisplayGroup(responseData.DisplayGroup);\r\n }\r\n if (responseData.EditorMode != undefined) {\r\n loaded.EditorMode(responseData.EditorMode);\r\n }\r\n if (responseData.SearchMode != undefined) {\r\n loaded.SearchMode(responseData.SearchMode);\r\n }\r\n if (responseData.TOCItemMode != undefined) {\r\n loaded.TOCItemMode(responseData.TOCItemMode);\r\n }\r\n if (responseData.HeaderField != undefined) {\r\n loaded.HeaderField(responseData.HeaderField);\r\n }\r\n if (responseData.ShortForm != undefined) {\r\n loaded.ShortForm(responseData.ShortForm);\r\n }\r\n if (responseData.LongForm != undefined) {\r\n loaded.LongForm(responseData.LongForm);\r\n }\r\n if (responseData.TitledResultsGroup != undefined) {\r\n loaded.TitledResultsGroup(responseData.TitledResultsGroup);\r\n }\r\n if (responseData.ResultsGroup != undefined) {\r\n loaded.ResultsGroup(responseData.ResultsGroup);\r\n }\r\n if (responseData.ResultsOrder != undefined) {\r\n loaded.ResultsOrder(responseData.ResultsOrder);\r\n }\r\n if (responseData.InStaticPrimary != undefined) {\r\n loaded.InStaticPrimary(responseData.InStaticPrimary);\r\n }\r\n if (responseData.SortOrdinal != undefined) {\r\n loaded.SortOrdinal(responseData.SortOrdinal);\r\n }\r\n if (responseData.ApiSummaryRelationship != undefined) {\r\n loaded.ApiSummaryRelationship(responseData.ApiSummaryRelationship);\r\n }\r\n if (responseData.ApiDetailedRelationship != undefined) {\r\n loaded.ApiDetailedRelationship(responseData.ApiDetailedRelationship);\r\n }\r\n if (responseData.IsUserDefined != undefined) {\r\n loaded.IsUserDefined(responseData.IsUserDefined);\r\n }\r\n if (responseData.LockParentOnChildEdit != undefined) {\r\n loaded.LockParentOnChildEdit(responseData.LockParentOnChildEdit);\r\n }\r\n if (responseData.PackageID != undefined) {\r\n loaded.PackageID(responseData.PackageID);\r\n }\r\n if (responseData.TOCOrdinal != undefined) {\r\n loaded.TOCOrdinal(responseData.TOCOrdinal);\r\n }\r\n if (responseData.SaveOrdinal != undefined) {\r\n loaded.SaveOrdinal(responseData.SaveOrdinal);\r\n }\r\n if (responseData.NoRecursionForATO != undefined) {\r\n loaded.NoRecursionForATO(responseData.NoRecursionForATO);\r\n }\r\n if (responseData.NoRecursionForDTO != undefined) {\r\n loaded.NoRecursionForDTO(responseData.NoRecursionForDTO);\r\n }\r\n if (responseData.DisplayReadOnly != undefined) {\r\n loaded.DisplayReadOnly(responseData.DisplayReadOnly);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.BuilderEntityModel().LoadFromResponse(responseData.Parent));\r\n }\r\n if (responseData.RelationshipLinks != null && responseData.RelationshipLinks.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.RelationshipLinks.length; i++) {\r\n items.push(new smapi.entities.BuilderEntityRelationshipLinkModel().LoadFromResponse(responseData.RelationshipLinks[i]));\r\n }\r\n loaded.RelationshipLinks(items);\r\n }\r\n if (responseData.Package != null) {\r\n loaded.Package(new smapi.entities.SDKPackageModel().LoadFromResponse(responseData.Package));\r\n }\r\n if (responseData.MVCAttributes != null && responseData.MVCAttributes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.MVCAttributes.length; i++) {\r\n items.push(new smapi.entities.BuilderEntityRelationshipMVCAttributeModel().LoadFromResponse(responseData.MVCAttributes[i]));\r\n }\r\n loaded.MVCAttributes(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BuilderEntityLookupRelationship', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.GroupIdentifierField.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.GroupIdentifierValue.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.GroupParentLookup.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.GroupBinding.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.QueryToParentLookup.extend({\r\n maxLength: {\r\n params: 1024,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1024')\r\n }\r\n });\r\n this.BuilderEntityID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AttributeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.FieldOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SimpleDataType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.RelationShipType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.DefaultValue.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Label.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n this.ShortLabel.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Prompt.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.InheritedID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.CascadeAction.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.CsvDictionaryKeys.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.AggregateRelationship.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ParentAttribute.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.BackpointedAttribute.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.TableName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.IndexerType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ForeignKeyName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.HierarchyPart.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.InitializerPart.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.Characteristics.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.SearchFieldDepth.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TitledDisplayGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.DisplayGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.EditorMode.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.SearchMode.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.TOCItemMode.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.TitledResultsGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.ResultsGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.ResultsOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PackageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TOCOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SaveOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BulderEntityBusinessMeaningRelationshipModel(options) {\r\n var defaults = {\r\n BuilderEntityID: 0,\r\n ClassType: 0,\r\n AttributeName: '',\r\n FieldOrdinal: 0,\r\n DataType: '',\r\n SimpleDataType: '',\r\n RelationShipType: '',\r\n DefaultValue: '',\r\n Label: '',\r\n Description: '',\r\n ShortLabel: '',\r\n Prompt: '',\r\n HasGetter: false,\r\n HasSetter: false,\r\n IsFK: false,\r\n IsRequired: false,\r\n IsInherited: false,\r\n IsAnchor: false,\r\n InPartial: false,\r\n Aggregated: false,\r\n InheritedID: null,\r\n CascadeAction: '',\r\n CsvDictionaryKeys: '',\r\n Transient: false,\r\n AggregateRelationship: '',\r\n ParentAttribute: '',\r\n BackpointedAttribute: '',\r\n TableName: '',\r\n IndexerType: '',\r\n IsObsolete: false,\r\n ForeignKeyName: '',\r\n HierarchyPart: null,\r\n InitializerPart: null,\r\n Characteristics: null,\r\n SearchField: false,\r\n SearchResultField: false,\r\n PopupSearchField: false,\r\n PopupSearchResultField: false,\r\n LiveSearchResult: false,\r\n PopupJsonResult: false,\r\n SVDisplayField: false,\r\n TOCTableField: false,\r\n TOCListField: false,\r\n Hidden: false,\r\n IsParent: false,\r\n Context: false,\r\n SearchFieldDepth: 0,\r\n TitledDisplayGroup: '',\r\n DisplayGroup: '',\r\n EditorMode: null,\r\n SearchMode: null,\r\n TOCItemMode: null,\r\n HeaderField: false,\r\n ShortForm: false,\r\n LongForm: false,\r\n TitledResultsGroup: '',\r\n ResultsGroup: '',\r\n ResultsOrder: 0,\r\n InStaticPrimary: false,\r\n SortOrdinal: 0,\r\n ApiSummaryRelationship: false,\r\n ApiDetailedRelationship: false,\r\n IsUserDefined: false,\r\n LockParentOnChildEdit: false,\r\n PackageID: null,\r\n TOCOrdinal: 0,\r\n SaveOrdinal: 0,\r\n NoRecursionForATO: false,\r\n NoRecursionForDTO: false,\r\n DisplayReadOnly: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.BuilderEntityID = ko.validatedObservable(settings.BuilderEntityID);\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.AttributeName = ko.validatedObservable(settings.AttributeName);\r\n this.FieldOrdinal = ko.validatedObservable(settings.FieldOrdinal);\r\n this.DataType = ko.validatedObservable(settings.DataType);\r\n this.SimpleDataType = ko.validatedObservable(settings.SimpleDataType);\r\n this.RelationShipType = ko.validatedObservable(settings.RelationShipType);\r\n this.DefaultValue = ko.validatedObservable(settings.DefaultValue);\r\n this.Label = ko.validatedObservable(settings.Label);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.ShortLabel = ko.validatedObservable(settings.ShortLabel);\r\n this.Prompt = ko.validatedObservable(settings.Prompt);\r\n this.HasGetter = ko.validatedObservable(settings.HasGetter);\r\n this.HasSetter = ko.validatedObservable(settings.HasSetter);\r\n this.IsFK = ko.validatedObservable(settings.IsFK);\r\n this.IsRequired = ko.validatedObservable(settings.IsRequired);\r\n this.IsInherited = ko.validatedObservable(settings.IsInherited);\r\n this.IsAnchor = ko.validatedObservable(settings.IsAnchor);\r\n this.InPartial = ko.validatedObservable(settings.InPartial);\r\n this.Aggregated = ko.validatedObservable(settings.Aggregated);\r\n this.InheritedID = ko.validatedObservable(settings.InheritedID);\r\n this.CascadeAction = ko.validatedObservable(settings.CascadeAction);\r\n this.CsvDictionaryKeys = ko.validatedObservable(settings.CsvDictionaryKeys);\r\n this.Transient = ko.validatedObservable(settings.Transient);\r\n this.AggregateRelationship = ko.validatedObservable(settings.AggregateRelationship);\r\n this.ParentAttribute = ko.validatedObservable(settings.ParentAttribute);\r\n this.BackpointedAttribute = ko.validatedObservable(settings.BackpointedAttribute);\r\n this.TableName = ko.validatedObservable(settings.TableName);\r\n this.IndexerType = ko.validatedObservable(settings.IndexerType);\r\n this.IsObsolete = ko.validatedObservable(settings.IsObsolete);\r\n this.ForeignKeyName = ko.validatedObservable(settings.ForeignKeyName);\r\n this.HierarchyPart = ko.validatedObservable(settings.HierarchyPart);\r\n this.InitializerPart = ko.validatedObservable(settings.InitializerPart);\r\n this.Characteristics = ko.validatedObservable(settings.Characteristics);\r\n this.SearchField = ko.validatedObservable(settings.SearchField);\r\n this.SearchResultField = ko.validatedObservable(settings.SearchResultField);\r\n this.PopupSearchField = ko.validatedObservable(settings.PopupSearchField);\r\n this.PopupSearchResultField = ko.validatedObservable(settings.PopupSearchResultField);\r\n this.LiveSearchResult = ko.validatedObservable(settings.LiveSearchResult);\r\n this.PopupJsonResult = ko.validatedObservable(settings.PopupJsonResult);\r\n this.SVDisplayField = ko.validatedObservable(settings.SVDisplayField);\r\n this.TOCTableField = ko.validatedObservable(settings.TOCTableField);\r\n this.TOCListField = ko.validatedObservable(settings.TOCListField);\r\n this.Hidden = ko.validatedObservable(settings.Hidden);\r\n this.IsParent = ko.validatedObservable(settings.IsParent);\r\n this.Context = ko.validatedObservable(settings.Context);\r\n this.SearchFieldDepth = ko.validatedObservable(settings.SearchFieldDepth);\r\n this.TitledDisplayGroup = ko.validatedObservable(settings.TitledDisplayGroup);\r\n this.DisplayGroup = ko.validatedObservable(settings.DisplayGroup);\r\n this.EditorMode = ko.validatedObservable(settings.EditorMode);\r\n this.SearchMode = ko.validatedObservable(settings.SearchMode);\r\n this.TOCItemMode = ko.validatedObservable(settings.TOCItemMode);\r\n this.HeaderField = ko.validatedObservable(settings.HeaderField);\r\n this.ShortForm = ko.validatedObservable(settings.ShortForm);\r\n this.LongForm = ko.validatedObservable(settings.LongForm);\r\n this.TitledResultsGroup = ko.validatedObservable(settings.TitledResultsGroup);\r\n this.ResultsGroup = ko.validatedObservable(settings.ResultsGroup);\r\n this.ResultsOrder = ko.validatedObservable(settings.ResultsOrder);\r\n this.InStaticPrimary = ko.validatedObservable(settings.InStaticPrimary);\r\n this.SortOrdinal = ko.validatedObservable(settings.SortOrdinal);\r\n this.ApiSummaryRelationship = ko.validatedObservable(settings.ApiSummaryRelationship);\r\n this.ApiDetailedRelationship = ko.validatedObservable(settings.ApiDetailedRelationship);\r\n this.IsUserDefined = ko.validatedObservable(settings.IsUserDefined);\r\n this.LockParentOnChildEdit = ko.validatedObservable(settings.LockParentOnChildEdit);\r\n this.PackageID = ko.validatedObservable(settings.PackageID);\r\n this.TOCOrdinal = ko.validatedObservable(settings.TOCOrdinal);\r\n this.SaveOrdinal = ko.validatedObservable(settings.SaveOrdinal);\r\n this.NoRecursionForATO = ko.validatedObservable(settings.NoRecursionForATO);\r\n this.NoRecursionForDTO = ko.validatedObservable(settings.NoRecursionForDTO);\r\n this.DisplayReadOnly = ko.validatedObservable(settings.DisplayReadOnly);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n this.RelationshipLinks = ko.observableArray([]);\r\n this.Package = ko.observable();\r\n this.MVCAttributes = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.BuilderEntityID != undefined) {\r\n loaded.BuilderEntityID(responseData.BuilderEntityID);\r\n }\r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.AttributeName != undefined) {\r\n loaded.AttributeName(responseData.AttributeName);\r\n }\r\n if (responseData.FieldOrdinal != undefined) {\r\n loaded.FieldOrdinal(responseData.FieldOrdinal);\r\n }\r\n if (responseData.DataType != undefined) {\r\n loaded.DataType(responseData.DataType);\r\n }\r\n if (responseData.SimpleDataType != undefined) {\r\n loaded.SimpleDataType(responseData.SimpleDataType);\r\n }\r\n if (responseData.RelationShipType != undefined) {\r\n loaded.RelationShipType(responseData.RelationShipType);\r\n }\r\n if (responseData.DefaultValue != undefined) {\r\n loaded.DefaultValue(responseData.DefaultValue);\r\n }\r\n if (responseData.Label != undefined) {\r\n loaded.Label(responseData.Label);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.ShortLabel != undefined) {\r\n loaded.ShortLabel(responseData.ShortLabel);\r\n }\r\n if (responseData.Prompt != undefined) {\r\n loaded.Prompt(responseData.Prompt);\r\n }\r\n if (responseData.HasGetter != undefined) {\r\n loaded.HasGetter(responseData.HasGetter);\r\n }\r\n if (responseData.HasSetter != undefined) {\r\n loaded.HasSetter(responseData.HasSetter);\r\n }\r\n if (responseData.IsFK != undefined) {\r\n loaded.IsFK(responseData.IsFK);\r\n }\r\n if (responseData.IsRequired != undefined) {\r\n loaded.IsRequired(responseData.IsRequired);\r\n }\r\n if (responseData.IsInherited != undefined) {\r\n loaded.IsInherited(responseData.IsInherited);\r\n }\r\n if (responseData.IsAnchor != undefined) {\r\n loaded.IsAnchor(responseData.IsAnchor);\r\n }\r\n if (responseData.InPartial != undefined) {\r\n loaded.InPartial(responseData.InPartial);\r\n }\r\n if (responseData.Aggregated != undefined) {\r\n loaded.Aggregated(responseData.Aggregated);\r\n }\r\n if (responseData.InheritedID != undefined) {\r\n loaded.InheritedID(responseData.InheritedID);\r\n }\r\n if (responseData.CascadeAction != undefined) {\r\n loaded.CascadeAction(responseData.CascadeAction);\r\n }\r\n if (responseData.CsvDictionaryKeys != undefined) {\r\n loaded.CsvDictionaryKeys(responseData.CsvDictionaryKeys);\r\n }\r\n if (responseData.Transient != undefined) {\r\n loaded.Transient(responseData.Transient);\r\n }\r\n if (responseData.AggregateRelationship != undefined) {\r\n loaded.AggregateRelationship(responseData.AggregateRelationship);\r\n }\r\n if (responseData.ParentAttribute != undefined) {\r\n loaded.ParentAttribute(responseData.ParentAttribute);\r\n }\r\n if (responseData.BackpointedAttribute != undefined) {\r\n loaded.BackpointedAttribute(responseData.BackpointedAttribute);\r\n }\r\n if (responseData.TableName != undefined) {\r\n loaded.TableName(responseData.TableName);\r\n }\r\n if (responseData.IndexerType != undefined) {\r\n loaded.IndexerType(responseData.IndexerType);\r\n }\r\n if (responseData.IsObsolete != undefined) {\r\n loaded.IsObsolete(responseData.IsObsolete);\r\n }\r\n if (responseData.ForeignKeyName != undefined) {\r\n loaded.ForeignKeyName(responseData.ForeignKeyName);\r\n }\r\n if (responseData.HierarchyPart != undefined) {\r\n loaded.HierarchyPart(responseData.HierarchyPart);\r\n }\r\n if (responseData.InitializerPart != undefined) {\r\n loaded.InitializerPart(responseData.InitializerPart);\r\n }\r\n if (responseData.Characteristics != undefined) {\r\n loaded.Characteristics(responseData.Characteristics);\r\n }\r\n if (responseData.SearchField != undefined) {\r\n loaded.SearchField(responseData.SearchField);\r\n }\r\n if (responseData.SearchResultField != undefined) {\r\n loaded.SearchResultField(responseData.SearchResultField);\r\n }\r\n if (responseData.PopupSearchField != undefined) {\r\n loaded.PopupSearchField(responseData.PopupSearchField);\r\n }\r\n if (responseData.PopupSearchResultField != undefined) {\r\n loaded.PopupSearchResultField(responseData.PopupSearchResultField);\r\n }\r\n if (responseData.LiveSearchResult != undefined) {\r\n loaded.LiveSearchResult(responseData.LiveSearchResult);\r\n }\r\n if (responseData.PopupJsonResult != undefined) {\r\n loaded.PopupJsonResult(responseData.PopupJsonResult);\r\n }\r\n if (responseData.SVDisplayField != undefined) {\r\n loaded.SVDisplayField(responseData.SVDisplayField);\r\n }\r\n if (responseData.TOCTableField != undefined) {\r\n loaded.TOCTableField(responseData.TOCTableField);\r\n }\r\n if (responseData.TOCListField != undefined) {\r\n loaded.TOCListField(responseData.TOCListField);\r\n }\r\n if (responseData.Hidden != undefined) {\r\n loaded.Hidden(responseData.Hidden);\r\n }\r\n if (responseData.IsParent != undefined) {\r\n loaded.IsParent(responseData.IsParent);\r\n }\r\n if (responseData.Context != undefined) {\r\n loaded.Context(responseData.Context);\r\n }\r\n if (responseData.SearchFieldDepth != undefined) {\r\n loaded.SearchFieldDepth(responseData.SearchFieldDepth);\r\n }\r\n if (responseData.TitledDisplayGroup != undefined) {\r\n loaded.TitledDisplayGroup(responseData.TitledDisplayGroup);\r\n }\r\n if (responseData.DisplayGroup != undefined) {\r\n loaded.DisplayGroup(responseData.DisplayGroup);\r\n }\r\n if (responseData.EditorMode != undefined) {\r\n loaded.EditorMode(responseData.EditorMode);\r\n }\r\n if (responseData.SearchMode != undefined) {\r\n loaded.SearchMode(responseData.SearchMode);\r\n }\r\n if (responseData.TOCItemMode != undefined) {\r\n loaded.TOCItemMode(responseData.TOCItemMode);\r\n }\r\n if (responseData.HeaderField != undefined) {\r\n loaded.HeaderField(responseData.HeaderField);\r\n }\r\n if (responseData.ShortForm != undefined) {\r\n loaded.ShortForm(responseData.ShortForm);\r\n }\r\n if (responseData.LongForm != undefined) {\r\n loaded.LongForm(responseData.LongForm);\r\n }\r\n if (responseData.TitledResultsGroup != undefined) {\r\n loaded.TitledResultsGroup(responseData.TitledResultsGroup);\r\n }\r\n if (responseData.ResultsGroup != undefined) {\r\n loaded.ResultsGroup(responseData.ResultsGroup);\r\n }\r\n if (responseData.ResultsOrder != undefined) {\r\n loaded.ResultsOrder(responseData.ResultsOrder);\r\n }\r\n if (responseData.InStaticPrimary != undefined) {\r\n loaded.InStaticPrimary(responseData.InStaticPrimary);\r\n }\r\n if (responseData.SortOrdinal != undefined) {\r\n loaded.SortOrdinal(responseData.SortOrdinal);\r\n }\r\n if (responseData.ApiSummaryRelationship != undefined) {\r\n loaded.ApiSummaryRelationship(responseData.ApiSummaryRelationship);\r\n }\r\n if (responseData.ApiDetailedRelationship != undefined) {\r\n loaded.ApiDetailedRelationship(responseData.ApiDetailedRelationship);\r\n }\r\n if (responseData.IsUserDefined != undefined) {\r\n loaded.IsUserDefined(responseData.IsUserDefined);\r\n }\r\n if (responseData.LockParentOnChildEdit != undefined) {\r\n loaded.LockParentOnChildEdit(responseData.LockParentOnChildEdit);\r\n }\r\n if (responseData.PackageID != undefined) {\r\n loaded.PackageID(responseData.PackageID);\r\n }\r\n if (responseData.TOCOrdinal != undefined) {\r\n loaded.TOCOrdinal(responseData.TOCOrdinal);\r\n }\r\n if (responseData.SaveOrdinal != undefined) {\r\n loaded.SaveOrdinal(responseData.SaveOrdinal);\r\n }\r\n if (responseData.NoRecursionForATO != undefined) {\r\n loaded.NoRecursionForATO(responseData.NoRecursionForATO);\r\n }\r\n if (responseData.NoRecursionForDTO != undefined) {\r\n loaded.NoRecursionForDTO(responseData.NoRecursionForDTO);\r\n }\r\n if (responseData.DisplayReadOnly != undefined) {\r\n loaded.DisplayReadOnly(responseData.DisplayReadOnly);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.BuilderEntityModel().LoadFromResponse(responseData.Parent));\r\n }\r\n if (responseData.RelationshipLinks != null && responseData.RelationshipLinks.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.RelationshipLinks.length; i++) {\r\n items.push(new smapi.entities.BuilderEntityRelationshipLinkModel().LoadFromResponse(responseData.RelationshipLinks[i]));\r\n }\r\n loaded.RelationshipLinks(items);\r\n }\r\n if (responseData.Package != null) {\r\n loaded.Package(new smapi.entities.SDKPackageModel().LoadFromResponse(responseData.Package));\r\n }\r\n if (responseData.MVCAttributes != null && responseData.MVCAttributes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.MVCAttributes.length; i++) {\r\n items.push(new smapi.entities.BuilderEntityRelationshipMVCAttributeModel().LoadFromResponse(responseData.MVCAttributes[i]));\r\n }\r\n loaded.MVCAttributes(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BulderEntityBusinessMeaningRelationship', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.BuilderEntityID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AttributeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.FieldOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SimpleDataType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.RelationShipType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.DefaultValue.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Label.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n this.ShortLabel.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Prompt.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.InheritedID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.CascadeAction.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.CsvDictionaryKeys.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.AggregateRelationship.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ParentAttribute.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.BackpointedAttribute.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.TableName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.IndexerType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ForeignKeyName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.HierarchyPart.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.InitializerPart.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.Characteristics.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.SearchFieldDepth.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TitledDisplayGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.DisplayGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.EditorMode.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.SearchMode.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.TOCItemMode.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.TitledResultsGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.ResultsGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.ResultsOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PackageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TOCOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SaveOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BuilderEntityRelationshipLinkModel(options) {\r\n var defaults = {\r\n ParentID: 0,\r\n RelationshipLinkType: '',\r\n MyLink: '',\r\n OtherLink: '',\r\n MyLinkProperty: '',\r\n OtherProperty: '',\r\n DefaultValue: '',\r\n LiteralValue: '',\r\n LinkOrder: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ParentID = ko.validatedObservable(settings.ParentID);\r\n this.RelationshipLinkType = ko.validatedObservable(settings.RelationshipLinkType);\r\n this.MyLink = ko.validatedObservable(settings.MyLink);\r\n this.OtherLink = ko.validatedObservable(settings.OtherLink);\r\n this.MyLinkProperty = ko.validatedObservable(settings.MyLinkProperty);\r\n this.OtherProperty = ko.validatedObservable(settings.OtherProperty);\r\n this.DefaultValue = ko.validatedObservable(settings.DefaultValue);\r\n this.LiteralValue = ko.validatedObservable(settings.LiteralValue);\r\n this.LinkOrder = ko.validatedObservable(settings.LinkOrder);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ParentID != undefined) {\r\n loaded.ParentID(responseData.ParentID);\r\n }\r\n if (responseData.RelationshipLinkType != undefined) {\r\n loaded.RelationshipLinkType(responseData.RelationshipLinkType);\r\n }\r\n if (responseData.MyLink != undefined) {\r\n loaded.MyLink(responseData.MyLink);\r\n }\r\n if (responseData.OtherLink != undefined) {\r\n loaded.OtherLink(responseData.OtherLink);\r\n }\r\n if (responseData.MyLinkProperty != undefined) {\r\n loaded.MyLinkProperty(responseData.MyLinkProperty);\r\n }\r\n if (responseData.OtherProperty != undefined) {\r\n loaded.OtherProperty(responseData.OtherProperty);\r\n }\r\n if (responseData.DefaultValue != undefined) {\r\n loaded.DefaultValue(responseData.DefaultValue);\r\n }\r\n if (responseData.LiteralValue != undefined) {\r\n loaded.LiteralValue(responseData.LiteralValue);\r\n }\r\n if (responseData.LinkOrder != undefined) {\r\n loaded.LinkOrder(responseData.LinkOrder);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.BuilderEntityRelationshipModel().LoadFromResponse(responseData.Parent));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BuilderEntityRelationshipLink', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ParentID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RelationshipLinkType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.MyLink.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.OtherLink.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.MyLinkProperty.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.OtherProperty.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.DefaultValue.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.LiteralValue.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.LinkOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BuilderEntityQueryModel(options) {\r\n var defaults = {\r\n BuilderEntityID: 0,\r\n QueryName: '',\r\n ReturnOrdinal: '',\r\n Logical: '',\r\n IsUserDefined: false,\r\n PackageID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.BuilderEntityID = ko.validatedObservable(settings.BuilderEntityID);\r\n this.QueryName = ko.validatedObservable(settings.QueryName);\r\n this.ReturnOrdinal = ko.validatedObservable(settings.ReturnOrdinal);\r\n this.Logical = ko.validatedObservable(settings.Logical);\r\n this.IsUserDefined = ko.validatedObservable(settings.IsUserDefined);\r\n this.PackageID = ko.validatedObservable(settings.PackageID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n this.QueryParts = ko.observableArray([]);\r\n this.Package = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.BuilderEntityID != undefined) {\r\n loaded.BuilderEntityID(responseData.BuilderEntityID);\r\n }\r\n if (responseData.QueryName != undefined) {\r\n loaded.QueryName(responseData.QueryName);\r\n }\r\n if (responseData.ReturnOrdinal != undefined) {\r\n loaded.ReturnOrdinal(responseData.ReturnOrdinal);\r\n }\r\n if (responseData.Logical != undefined) {\r\n loaded.Logical(responseData.Logical);\r\n }\r\n if (responseData.IsUserDefined != undefined) {\r\n loaded.IsUserDefined(responseData.IsUserDefined);\r\n }\r\n if (responseData.PackageID != undefined) {\r\n loaded.PackageID(responseData.PackageID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.BuilderEntityModel().LoadFromResponse(responseData.Parent));\r\n }\r\n if (responseData.QueryParts != null && responseData.QueryParts.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.QueryParts.length; i++) {\r\n items.push(new smapi.entities.QueryPartModel().LoadFromResponse(responseData.QueryParts[i]));\r\n }\r\n loaded.QueryParts(items);\r\n }\r\n if (responseData.Package != null) {\r\n loaded.Package(new smapi.entities.SDKPackageModel().LoadFromResponse(responseData.Package));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BuilderEntityQuery', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.BuilderEntityID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.QueryName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ReturnOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Logical.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 6,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '6')\r\n }\r\n });\r\n this.PackageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function QueryPartModel(options) {\r\n var defaults = {\r\n BuilderEntityQueryID: null,\r\n QueryPartType: '',\r\n ObjectState: null,\r\n ParentID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.BuilderEntityQueryID = ko.validatedObservable(settings.BuilderEntityQueryID);\r\n this.QueryPartType = ko.validatedObservable(settings.QueryPartType);\r\n this.ObjectState = ko.validatedObservable(settings.ObjectState);\r\n this.ParentID = ko.validatedObservable(settings.ParentID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n this.QueryParts = ko.observableArray([]);\r\n this.BuilderEntityQuery = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.BuilderEntityQueryID != undefined) {\r\n loaded.BuilderEntityQueryID(responseData.BuilderEntityQueryID);\r\n }\r\n if (responseData.QueryPartType != undefined) {\r\n loaded.QueryPartType(responseData.QueryPartType);\r\n }\r\n if (responseData.ObjectState != undefined) {\r\n loaded.ObjectState(responseData.ObjectState);\r\n }\r\n if (responseData.ParentID != undefined) {\r\n loaded.ParentID(responseData.ParentID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.QueryPartModel().LoadFromResponse(responseData.Parent));\r\n }\r\n if (responseData.QueryParts != null && responseData.QueryParts.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.QueryParts.length; i++) {\r\n items.push(new smapi.entities.QueryPartModel().LoadFromResponse(responseData.QueryParts[i]));\r\n }\r\n loaded.QueryParts(items);\r\n }\r\n if (responseData.BuilderEntityQuery != null) {\r\n loaded.BuilderEntityQuery(new smapi.entities.BuilderEntityQueryModel().LoadFromResponse(responseData.BuilderEntityQuery));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.QueryPart', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.BuilderEntityQueryID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.QueryPartType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 10,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '10')\r\n }\r\n });\r\n this.ObjectState.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ParentID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function QueryPartGroupModel(options) {\r\n var defaults = {\r\n Logical: '',\r\n BuilderEntityQueryID: null,\r\n QueryPartType: '',\r\n ObjectState: null,\r\n ParentID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Logical = ko.validatedObservable(settings.Logical);\r\n this.BuilderEntityQueryID = ko.validatedObservable(settings.BuilderEntityQueryID);\r\n this.QueryPartType = ko.validatedObservable(settings.QueryPartType);\r\n this.ObjectState = ko.validatedObservable(settings.ObjectState);\r\n this.ParentID = ko.validatedObservable(settings.ParentID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n this.QueryParts = ko.observableArray([]);\r\n this.BuilderEntityQuery = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Logical != undefined) {\r\n loaded.Logical(responseData.Logical);\r\n }\r\n if (responseData.BuilderEntityQueryID != undefined) {\r\n loaded.BuilderEntityQueryID(responseData.BuilderEntityQueryID);\r\n }\r\n if (responseData.QueryPartType != undefined) {\r\n loaded.QueryPartType(responseData.QueryPartType);\r\n }\r\n if (responseData.ObjectState != undefined) {\r\n loaded.ObjectState(responseData.ObjectState);\r\n }\r\n if (responseData.ParentID != undefined) {\r\n loaded.ParentID(responseData.ParentID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.QueryPartModel().LoadFromResponse(responseData.Parent));\r\n }\r\n if (responseData.QueryParts != null && responseData.QueryParts.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.QueryParts.length; i++) {\r\n items.push(new smapi.entities.QueryPartModel().LoadFromResponse(responseData.QueryParts[i]));\r\n }\r\n loaded.QueryParts(items);\r\n }\r\n if (responseData.BuilderEntityQuery != null) {\r\n loaded.BuilderEntityQuery(new smapi.entities.BuilderEntityQueryModel().LoadFromResponse(responseData.BuilderEntityQuery));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.QueryPartGroup', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Logical.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 6,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '6')\r\n }\r\n });\r\n this.BuilderEntityQueryID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.QueryPartType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 10,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '10')\r\n }\r\n });\r\n this.ObjectState.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ParentID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function QueryPartBindingModel(options) {\r\n var defaults = {\r\n AttributeName: '',\r\n StaticValue: '',\r\n BuilderEntityQueryID: null,\r\n QueryPartType: '',\r\n ObjectState: null,\r\n ParentID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.AttributeName = ko.validatedObservable(settings.AttributeName);\r\n this.StaticValue = ko.validatedObservable(settings.StaticValue);\r\n this.BuilderEntityQueryID = ko.validatedObservable(settings.BuilderEntityQueryID);\r\n this.QueryPartType = ko.validatedObservable(settings.QueryPartType);\r\n this.ObjectState = ko.validatedObservable(settings.ObjectState);\r\n this.ParentID = ko.validatedObservable(settings.ParentID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n this.QueryParts = ko.observableArray([]);\r\n this.BuilderEntityQuery = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.AttributeName != undefined) {\r\n loaded.AttributeName(responseData.AttributeName);\r\n }\r\n if (responseData.StaticValue != undefined) {\r\n loaded.StaticValue(responseData.StaticValue);\r\n }\r\n if (responseData.BuilderEntityQueryID != undefined) {\r\n loaded.BuilderEntityQueryID(responseData.BuilderEntityQueryID);\r\n }\r\n if (responseData.QueryPartType != undefined) {\r\n loaded.QueryPartType(responseData.QueryPartType);\r\n }\r\n if (responseData.ObjectState != undefined) {\r\n loaded.ObjectState(responseData.ObjectState);\r\n }\r\n if (responseData.ParentID != undefined) {\r\n loaded.ParentID(responseData.ParentID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.QueryPartModel().LoadFromResponse(responseData.Parent));\r\n }\r\n if (responseData.QueryParts != null && responseData.QueryParts.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.QueryParts.length; i++) {\r\n items.push(new smapi.entities.QueryPartModel().LoadFromResponse(responseData.QueryParts[i]));\r\n }\r\n loaded.QueryParts(items);\r\n }\r\n if (responseData.BuilderEntityQuery != null) {\r\n loaded.BuilderEntityQuery(new smapi.entities.BuilderEntityQueryModel().LoadFromResponse(responseData.BuilderEntityQuery));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.QueryPartBinding', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.AttributeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.StaticValue.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BuilderEntityQueryID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.QueryPartType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 10,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '10')\r\n }\r\n });\r\n this.ObjectState.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ParentID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function QueryPartLiteralModel(options) {\r\n var defaults = {\r\n LiteralString: '',\r\n BuilderEntityQueryID: null,\r\n QueryPartType: '',\r\n ObjectState: null,\r\n ParentID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.LiteralString = ko.validatedObservable(settings.LiteralString);\r\n this.BuilderEntityQueryID = ko.validatedObservable(settings.BuilderEntityQueryID);\r\n this.QueryPartType = ko.validatedObservable(settings.QueryPartType);\r\n this.ObjectState = ko.validatedObservable(settings.ObjectState);\r\n this.ParentID = ko.validatedObservable(settings.ParentID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n this.QueryParts = ko.observableArray([]);\r\n this.BuilderEntityQuery = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.LiteralString != undefined) {\r\n loaded.LiteralString(responseData.LiteralString);\r\n }\r\n if (responseData.BuilderEntityQueryID != undefined) {\r\n loaded.BuilderEntityQueryID(responseData.BuilderEntityQueryID);\r\n }\r\n if (responseData.QueryPartType != undefined) {\r\n loaded.QueryPartType(responseData.QueryPartType);\r\n }\r\n if (responseData.ObjectState != undefined) {\r\n loaded.ObjectState(responseData.ObjectState);\r\n }\r\n if (responseData.ParentID != undefined) {\r\n loaded.ParentID(responseData.ParentID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.QueryPartModel().LoadFromResponse(responseData.Parent));\r\n }\r\n if (responseData.QueryParts != null && responseData.QueryParts.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.QueryParts.length; i++) {\r\n items.push(new smapi.entities.QueryPartModel().LoadFromResponse(responseData.QueryParts[i]));\r\n }\r\n loaded.QueryParts(items);\r\n }\r\n if (responseData.BuilderEntityQuery != null) {\r\n loaded.BuilderEntityQuery(new smapi.entities.BuilderEntityQueryModel().LoadFromResponse(responseData.BuilderEntityQuery));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.QueryPartLiteral', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.LiteralString.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BuilderEntityQueryID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.QueryPartType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 10,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '10')\r\n }\r\n });\r\n this.ObjectState.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ParentID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BuilderEntityDBIndexModel(options) {\r\n var defaults = {\r\n Name: '',\r\n DBClustered: false,\r\n DBUnique: false,\r\n BuilderEntityID: 0,\r\n IsUserDefined: false,\r\n PackageID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.DBClustered = ko.validatedObservable(settings.DBClustered);\r\n this.DBUnique = ko.validatedObservable(settings.DBUnique);\r\n this.BuilderEntityID = ko.validatedObservable(settings.BuilderEntityID);\r\n this.IsUserDefined = ko.validatedObservable(settings.IsUserDefined);\r\n this.PackageID = ko.validatedObservable(settings.PackageID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n this.Fields = ko.observableArray([]);\r\n this.Package = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.DBClustered != undefined) {\r\n loaded.DBClustered(responseData.DBClustered);\r\n }\r\n if (responseData.DBUnique != undefined) {\r\n loaded.DBUnique(responseData.DBUnique);\r\n }\r\n if (responseData.BuilderEntityID != undefined) {\r\n loaded.BuilderEntityID(responseData.BuilderEntityID);\r\n }\r\n if (responseData.IsUserDefined != undefined) {\r\n loaded.IsUserDefined(responseData.IsUserDefined);\r\n }\r\n if (responseData.PackageID != undefined) {\r\n loaded.PackageID(responseData.PackageID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.BuilderEntityModel().LoadFromResponse(responseData.Parent));\r\n }\r\n if (responseData.Fields != null && responseData.Fields.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Fields.length; i++) {\r\n items.push(new smapi.entities.BuilderEntityDBIndexFieldModel().LoadFromResponse(responseData.Fields[i]));\r\n }\r\n loaded.Fields(items);\r\n }\r\n if (responseData.Package != null) {\r\n loaded.Package(new smapi.entities.SDKPackageModel().LoadFromResponse(responseData.Package));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BuilderEntityDBIndex', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BuilderEntityID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PackageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BuilderEntityDBIndexFieldModel(options) {\r\n var defaults = {\r\n Name: '',\r\n SortOrder: '',\r\n BuilderEntityDBIndexID: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BuilderEntityDBIndexID = ko.validatedObservable(settings.BuilderEntityDBIndexID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BuilderEntityDBIndexID != undefined) {\r\n loaded.BuilderEntityDBIndexID(responseData.BuilderEntityDBIndexID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.BuilderEntityDBIndexModel().LoadFromResponse(responseData.Parent));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BuilderEntityDBIndexField', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BuilderEntityDBIndexID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BuilderEntityFieldMVCAttributeModel(options) {\r\n var defaults = {\r\n ParentID: 0,\r\n Name: '',\r\n Value: '',\r\n SystemProtected: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ParentID = ko.validatedObservable(settings.ParentID);\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Value = ko.validatedObservable(settings.Value);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ParentID != undefined) {\r\n loaded.ParentID(responseData.ParentID);\r\n }\r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Value != undefined) {\r\n loaded.Value(responseData.Value);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.BuilderEntityFieldModel().LoadFromResponse(responseData.Parent));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BuilderEntityFieldMVCAttribute', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ParentID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Value.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BuilderEntityRelationshipMVCAttributeModel(options) {\r\n var defaults = {\r\n ParentID: 0,\r\n Name: '',\r\n Value: '',\r\n SystemProtected: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ParentID = ko.validatedObservable(settings.ParentID);\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Value = ko.validatedObservable(settings.Value);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ParentID != undefined) {\r\n loaded.ParentID(responseData.ParentID);\r\n }\r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Value != undefined) {\r\n loaded.Value(responseData.Value);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.BuilderEntityRelationshipModel().LoadFromResponse(responseData.Parent));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BuilderEntityRelationshipMVCAttribute', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ParentID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Value.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function LookupGroupModel(options) {\r\n var defaults = {\r\n Name: '',\r\n LinkedEntityType: '',\r\n UseGroupIdentifier: false,\r\n GroupIdentifier: '',\r\n GroupIdentifierField: '',\r\n GroupParentLookup: '',\r\n GroupBinding: '',\r\n QueryToParentLookup: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.LinkedEntityType = ko.validatedObservable(settings.LinkedEntityType);\r\n this.UseGroupIdentifier = ko.validatedObservable(settings.UseGroupIdentifier);\r\n this.GroupIdentifier = ko.validatedObservable(settings.GroupIdentifier);\r\n this.GroupIdentifierField = ko.validatedObservable(settings.GroupIdentifierField);\r\n this.GroupParentLookup = ko.validatedObservable(settings.GroupParentLookup);\r\n this.GroupBinding = ko.validatedObservable(settings.GroupBinding);\r\n this.QueryToParentLookup = ko.validatedObservable(settings.QueryToParentLookup);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.LinkedEntityType != undefined) {\r\n loaded.LinkedEntityType(responseData.LinkedEntityType);\r\n }\r\n if (responseData.UseGroupIdentifier != undefined) {\r\n loaded.UseGroupIdentifier(responseData.UseGroupIdentifier);\r\n }\r\n if (responseData.GroupIdentifier != undefined) {\r\n loaded.GroupIdentifier(responseData.GroupIdentifier);\r\n }\r\n if (responseData.GroupIdentifierField != undefined) {\r\n loaded.GroupIdentifierField(responseData.GroupIdentifierField);\r\n }\r\n if (responseData.GroupParentLookup != undefined) {\r\n loaded.GroupParentLookup(responseData.GroupParentLookup);\r\n }\r\n if (responseData.GroupBinding != undefined) {\r\n loaded.GroupBinding(responseData.GroupBinding);\r\n }\r\n if (responseData.QueryToParentLookup != undefined) {\r\n loaded.QueryToParentLookup(responseData.QueryToParentLookup);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.LookupGroup', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.LinkedEntityType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.GroupIdentifier.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.GroupIdentifierField.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.GroupParentLookup.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.GroupBinding.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.QueryToParentLookup.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function GlossaryModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n ParentID: null,\r\n IconID: null,\r\n BusinessMeaningName: '',\r\n CategoryBusinessMeaningName: '',\r\n MenuModule: '',\r\n MenuGrouping: '',\r\n MenuLocation: '',\r\n SystemProtected: false,\r\n RequireCodeField: false,\r\n Code: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.ParentID = ko.validatedObservable(settings.ParentID);\r\n this.IconID = ko.validatedObservable(settings.IconID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.CategoryBusinessMeaningName = ko.validatedObservable(settings.CategoryBusinessMeaningName);\r\n this.MenuModule = ko.validatedObservable(settings.MenuModule);\r\n this.MenuGrouping = ko.validatedObservable(settings.MenuGrouping);\r\n this.MenuLocation = ko.validatedObservable(settings.MenuLocation);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.RequireCodeField = ko.validatedObservable(settings.RequireCodeField);\r\n this.Code = ko.validatedObservable(settings.Code);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n this.Children = ko.observableArray([]);\r\n this.Icon = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.ParentID != undefined) {\r\n loaded.ParentID(responseData.ParentID);\r\n }\r\n if (responseData.IconID != undefined) {\r\n loaded.IconID(responseData.IconID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.CategoryBusinessMeaningName != undefined) {\r\n loaded.CategoryBusinessMeaningName(responseData.CategoryBusinessMeaningName);\r\n }\r\n if (responseData.MenuModule != undefined) {\r\n loaded.MenuModule(responseData.MenuModule);\r\n }\r\n if (responseData.MenuGrouping != undefined) {\r\n loaded.MenuGrouping(responseData.MenuGrouping);\r\n }\r\n if (responseData.MenuLocation != undefined) {\r\n loaded.MenuLocation(responseData.MenuLocation);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.RequireCodeField != undefined) {\r\n loaded.RequireCodeField(responseData.RequireCodeField);\r\n }\r\n if (responseData.Code != undefined) {\r\n loaded.Code(responseData.Code);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Parent));\r\n }\r\n if (responseData.Children != null && responseData.Children.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Children.length; i++) {\r\n items.push(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Children[i]));\r\n }\r\n loaded.Children(items);\r\n }\r\n if (responseData.Icon != null) {\r\n loaded.Icon(new smapi.entities.IconModel().LoadFromResponse(responseData.Icon));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.Glossary', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ParentID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.IconID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.CategoryBusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.MenuModule.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.MenuGrouping.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.MenuLocation.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Code.extend({\r\n maxLength: {\r\n params: 10,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '10')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ModuleAssemblyModel(options) {\r\n var defaults = {\r\n AssemblyName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.AssemblyName = ko.validatedObservable(settings.AssemblyName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.AssemblyName != undefined) {\r\n loaded.AssemblyName(responseData.AssemblyName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.ModuleAssembly', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.AssemblyName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function SiteModel(options) {\r\n var defaults = {\r\n Name: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Modules = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Modules != null && responseData.Modules.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Modules.length; i++) {\r\n items.push(new smapi.entities.ModuleModel().LoadFromResponse(responseData.Modules[i]));\r\n }\r\n loaded.Modules(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.Site', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ModuleModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n EntityAssembly: '',\r\n HasScripts: false,\r\n ParentModuleID: null,\r\n Searchable: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.EntityAssembly = ko.validatedObservable(settings.EntityAssembly);\r\n this.HasScripts = ko.validatedObservable(settings.HasScripts);\r\n this.ParentModuleID = ko.validatedObservable(settings.ParentModuleID);\r\n this.Searchable = ko.validatedObservable(settings.Searchable);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.DataAssemblyList = ko.observableArray([]);\r\n this.UtilityAssemblyList = ko.observableArray([]);\r\n this.UnitTestAssemblyList = ko.observableArray([]);\r\n this.ParentModule = ko.observable();\r\n this.ChildModules = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.EntityAssembly != undefined) {\r\n loaded.EntityAssembly(responseData.EntityAssembly);\r\n }\r\n if (responseData.HasScripts != undefined) {\r\n loaded.HasScripts(responseData.HasScripts);\r\n }\r\n if (responseData.ParentModuleID != undefined) {\r\n loaded.ParentModuleID(responseData.ParentModuleID);\r\n }\r\n if (responseData.Searchable != undefined) {\r\n loaded.Searchable(responseData.Searchable);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.DataAssemblyList != null && responseData.DataAssemblyList.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.DataAssemblyList.length; i++) {\r\n items.push(new smapi.entities.ModuleAssemblyModel().LoadFromResponse(responseData.DataAssemblyList[i]));\r\n }\r\n loaded.DataAssemblyList(items);\r\n }\r\n if (responseData.UtilityAssemblyList != null && responseData.UtilityAssemblyList.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.UtilityAssemblyList.length; i++) {\r\n items.push(new smapi.entities.ModuleAssemblyModel().LoadFromResponse(responseData.UtilityAssemblyList[i]));\r\n }\r\n loaded.UtilityAssemblyList(items);\r\n }\r\n if (responseData.UnitTestAssemblyList != null && responseData.UnitTestAssemblyList.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.UnitTestAssemblyList.length; i++) {\r\n items.push(new smapi.entities.ModuleAssemblyModel().LoadFromResponse(responseData.UnitTestAssemblyList[i]));\r\n }\r\n loaded.UnitTestAssemblyList(items);\r\n }\r\n if (responseData.ParentModule != null) {\r\n loaded.ParentModule(new smapi.entities.ModuleModel().LoadFromResponse(responseData.ParentModule));\r\n }\r\n if (responseData.ChildModules != null && responseData.ChildModules.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ChildModules.length; i++) {\r\n items.push(new smapi.entities.ModuleModel().LoadFromResponse(responseData.ChildModules[i]));\r\n }\r\n loaded.ChildModules(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.Module', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.EntityAssembly.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ParentModuleID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function LookupGroupingModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n AnchorEntityID: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.AnchorEntityID = ko.validatedObservable(settings.AnchorEntityID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AnchorEntity = ko.observable();\r\n this.LookupGroupings = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.AnchorEntityID != undefined) {\r\n loaded.AnchorEntityID(responseData.AnchorEntityID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AnchorEntity != null) {\r\n loaded.AnchorEntity(new smapi.entities.EntityModel().LoadFromResponse(responseData.AnchorEntity));\r\n }\r\n if (responseData.LookupGroupings != null && responseData.LookupGroupings.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.LookupGroupings.length; i++) {\r\n items.push(new smapi.entities.LookupGroupingAssociationModel().LoadFromResponse(responseData.LookupGroupings[i]));\r\n }\r\n loaded.LookupGroupings(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.LookupGrouping', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.AnchorEntityID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function LookupGroupingAssociationModel(options) {\r\n var defaults = {\r\n Binding: '',\r\n LookupGroupingID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Binding = ko.validatedObservable(settings.Binding);\r\n this.LookupGroupingID = ko.validatedObservable(settings.LookupGroupingID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.LookupGrouping = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Binding != undefined) {\r\n loaded.Binding(responseData.Binding);\r\n }\r\n if (responseData.LookupGroupingID != undefined) {\r\n loaded.LookupGroupingID(responseData.LookupGroupingID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.LookupGrouping != null) {\r\n loaded.LookupGrouping(new smapi.entities.LookupGroupingModel().LoadFromResponse(responseData.LookupGrouping));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.LookupGroupingAssociation', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Binding.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.LookupGroupingID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function EntityModel(options) {\r\n var defaults = {\r\n BuilderEntityGID: null,\r\n EntityType: null,\r\n TypeName: '',\r\n FullTypeName: '',\r\n ParentsNames: '',\r\n IsPartialClass: false,\r\n CachedByPK: false,\r\n IsObsolete: false,\r\n TableName: '',\r\n EntityCode: 0,\r\n MainPage: '',\r\n Icon: '',\r\n Title: '',\r\n Description: '',\r\n Version: '',\r\n ToStringMethod: '',\r\n DBSchema: '',\r\n VersionAdded: '',\r\n VersionRemoved: '',\r\n CacheName: '',\r\n EntityCharacteristics: null,\r\n DisplayMode: null,\r\n ShowSuperstructure: false,\r\n SuperstructureEnabled: false,\r\n ShowObsolete: false,\r\n ShowCreatedResults: false,\r\n ShowSimpleAudit: false,\r\n DetailsColumnCnt: 0,\r\n DetailsColumnDynamic: false,\r\n ParentInTOC: false,\r\n ExcludeFromApi: false,\r\n ManagementGrouping: '',\r\n MenuModule: '',\r\n MenuGrouping: '',\r\n MenuLocation: '',\r\n NoValidation: false,\r\n ExcludeFromMVC: false,\r\n IsUserDefined: false,\r\n PackageID: null,\r\n EmittOrder: 0,\r\n PathToContact: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.BuilderEntityGID = ko.validatedObservable(settings.BuilderEntityGID);\r\n this.EntityType = ko.validatedObservable(settings.EntityType);\r\n this.TypeName = ko.validatedObservable(settings.TypeName);\r\n this.FullTypeName = ko.validatedObservable(settings.FullTypeName);\r\n this.ParentsNames = ko.validatedObservable(settings.ParentsNames);\r\n this.IsPartialClass = ko.validatedObservable(settings.IsPartialClass);\r\n this.CachedByPK = ko.validatedObservable(settings.CachedByPK);\r\n this.IsObsolete = ko.validatedObservable(settings.IsObsolete);\r\n this.TableName = ko.validatedObservable(settings.TableName);\r\n this.EntityCode = ko.validatedObservable(settings.EntityCode);\r\n this.MainPage = ko.validatedObservable(settings.MainPage);\r\n this.Icon = ko.validatedObservable(settings.Icon);\r\n this.Title = ko.validatedObservable(settings.Title);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.Version = ko.validatedObservable(settings.Version);\r\n this.ToStringMethod = ko.validatedObservable(settings.ToStringMethod);\r\n this.DBSchema = ko.validatedObservable(settings.DBSchema);\r\n this.VersionAdded = ko.validatedObservable(settings.VersionAdded);\r\n this.VersionRemoved = ko.validatedObservable(settings.VersionRemoved);\r\n this.CacheName = ko.validatedObservable(settings.CacheName);\r\n this.EntityCharacteristics = ko.validatedObservable(settings.EntityCharacteristics);\r\n this.DisplayMode = ko.validatedObservable(settings.DisplayMode);\r\n this.ShowSuperstructure = ko.validatedObservable(settings.ShowSuperstructure);\r\n this.SuperstructureEnabled = ko.validatedObservable(settings.SuperstructureEnabled);\r\n this.ShowObsolete = ko.validatedObservable(settings.ShowObsolete);\r\n this.ShowCreatedResults = ko.validatedObservable(settings.ShowCreatedResults);\r\n this.ShowSimpleAudit = ko.validatedObservable(settings.ShowSimpleAudit);\r\n this.DetailsColumnCnt = ko.validatedObservable(settings.DetailsColumnCnt);\r\n this.DetailsColumnDynamic = ko.validatedObservable(settings.DetailsColumnDynamic);\r\n this.ParentInTOC = ko.validatedObservable(settings.ParentInTOC);\r\n this.ExcludeFromApi = ko.validatedObservable(settings.ExcludeFromApi);\r\n this.ManagementGrouping = ko.validatedObservable(settings.ManagementGrouping);\r\n this.MenuModule = ko.validatedObservable(settings.MenuModule);\r\n this.MenuGrouping = ko.validatedObservable(settings.MenuGrouping);\r\n this.MenuLocation = ko.validatedObservable(settings.MenuLocation);\r\n this.NoValidation = ko.validatedObservable(settings.NoValidation);\r\n this.ExcludeFromMVC = ko.validatedObservable(settings.ExcludeFromMVC);\r\n this.IsUserDefined = ko.validatedObservable(settings.IsUserDefined);\r\n this.PackageID = ko.validatedObservable(settings.PackageID);\r\n this.EmittOrder = ko.validatedObservable(settings.EmittOrder);\r\n this.PathToContact = ko.validatedObservable(settings.PathToContact);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Fields = ko.observableArray([]);\r\n this.Relationships = ko.observableArray([]);\r\n this.Indices = ko.observableArray([]);\r\n this.Package = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.BuilderEntityGID != undefined) {\r\n loaded.BuilderEntityGID(responseData.BuilderEntityGID);\r\n }\r\n if (responseData.EntityType != undefined) {\r\n loaded.EntityType(responseData.EntityType);\r\n }\r\n if (responseData.TypeName != undefined) {\r\n loaded.TypeName(responseData.TypeName);\r\n }\r\n if (responseData.FullTypeName != undefined) {\r\n loaded.FullTypeName(responseData.FullTypeName);\r\n }\r\n if (responseData.ParentsNames != undefined) {\r\n loaded.ParentsNames(responseData.ParentsNames);\r\n }\r\n if (responseData.IsPartialClass != undefined) {\r\n loaded.IsPartialClass(responseData.IsPartialClass);\r\n }\r\n if (responseData.CachedByPK != undefined) {\r\n loaded.CachedByPK(responseData.CachedByPK);\r\n }\r\n if (responseData.IsObsolete != undefined) {\r\n loaded.IsObsolete(responseData.IsObsolete);\r\n }\r\n if (responseData.TableName != undefined) {\r\n loaded.TableName(responseData.TableName);\r\n }\r\n if (responseData.EntityCode != undefined) {\r\n loaded.EntityCode(responseData.EntityCode);\r\n }\r\n if (responseData.MainPage != undefined) {\r\n loaded.MainPage(responseData.MainPage);\r\n }\r\n if (responseData.Icon != undefined) {\r\n loaded.Icon(responseData.Icon);\r\n }\r\n if (responseData.Title != undefined) {\r\n loaded.Title(responseData.Title);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.Version != undefined) {\r\n loaded.Version(responseData.Version);\r\n }\r\n if (responseData.ToStringMethod != undefined) {\r\n loaded.ToStringMethod(responseData.ToStringMethod);\r\n }\r\n if (responseData.DBSchema != undefined) {\r\n loaded.DBSchema(responseData.DBSchema);\r\n }\r\n if (responseData.VersionAdded != undefined) {\r\n loaded.VersionAdded(responseData.VersionAdded);\r\n }\r\n if (responseData.VersionRemoved != undefined) {\r\n loaded.VersionRemoved(responseData.VersionRemoved);\r\n }\r\n if (responseData.CacheName != undefined) {\r\n loaded.CacheName(responseData.CacheName);\r\n }\r\n if (responseData.EntityCharacteristics != undefined) {\r\n loaded.EntityCharacteristics(responseData.EntityCharacteristics);\r\n }\r\n if (responseData.DisplayMode != undefined) {\r\n loaded.DisplayMode(responseData.DisplayMode);\r\n }\r\n if (responseData.ShowSuperstructure != undefined) {\r\n loaded.ShowSuperstructure(responseData.ShowSuperstructure);\r\n }\r\n if (responseData.SuperstructureEnabled != undefined) {\r\n loaded.SuperstructureEnabled(responseData.SuperstructureEnabled);\r\n }\r\n if (responseData.ShowObsolete != undefined) {\r\n loaded.ShowObsolete(responseData.ShowObsolete);\r\n }\r\n if (responseData.ShowCreatedResults != undefined) {\r\n loaded.ShowCreatedResults(responseData.ShowCreatedResults);\r\n }\r\n if (responseData.ShowSimpleAudit != undefined) {\r\n loaded.ShowSimpleAudit(responseData.ShowSimpleAudit);\r\n }\r\n if (responseData.DetailsColumnCnt != undefined) {\r\n loaded.DetailsColumnCnt(responseData.DetailsColumnCnt);\r\n }\r\n if (responseData.DetailsColumnDynamic != undefined) {\r\n loaded.DetailsColumnDynamic(responseData.DetailsColumnDynamic);\r\n }\r\n if (responseData.ParentInTOC != undefined) {\r\n loaded.ParentInTOC(responseData.ParentInTOC);\r\n }\r\n if (responseData.ExcludeFromApi != undefined) {\r\n loaded.ExcludeFromApi(responseData.ExcludeFromApi);\r\n }\r\n if (responseData.ManagementGrouping != undefined) {\r\n loaded.ManagementGrouping(responseData.ManagementGrouping);\r\n }\r\n if (responseData.MenuModule != undefined) {\r\n loaded.MenuModule(responseData.MenuModule);\r\n }\r\n if (responseData.MenuGrouping != undefined) {\r\n loaded.MenuGrouping(responseData.MenuGrouping);\r\n }\r\n if (responseData.MenuLocation != undefined) {\r\n loaded.MenuLocation(responseData.MenuLocation);\r\n }\r\n if (responseData.NoValidation != undefined) {\r\n loaded.NoValidation(responseData.NoValidation);\r\n }\r\n if (responseData.ExcludeFromMVC != undefined) {\r\n loaded.ExcludeFromMVC(responseData.ExcludeFromMVC);\r\n }\r\n if (responseData.IsUserDefined != undefined) {\r\n loaded.IsUserDefined(responseData.IsUserDefined);\r\n }\r\n if (responseData.PackageID != undefined) {\r\n loaded.PackageID(responseData.PackageID);\r\n }\r\n if (responseData.EmittOrder != undefined) {\r\n loaded.EmittOrder(responseData.EmittOrder);\r\n }\r\n if (responseData.PathToContact != undefined) {\r\n loaded.PathToContact(responseData.PathToContact);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Fields != null && responseData.Fields.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Fields.length; i++) {\r\n items.push(new smapi.entities.EntityFieldModel().LoadFromResponse(responseData.Fields[i]));\r\n }\r\n loaded.Fields(items);\r\n }\r\n if (responseData.Relationships != null && responseData.Relationships.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Relationships.length; i++) {\r\n items.push(new smapi.entities.EntityRelationshipModel().LoadFromResponse(responseData.Relationships[i]));\r\n }\r\n loaded.Relationships(items);\r\n }\r\n if (responseData.Indices != null && responseData.Indices.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Indices.length; i++) {\r\n items.push(new smapi.entities.EntityDBIndexModel().LoadFromResponse(responseData.Indices[i]));\r\n }\r\n loaded.Indices(items);\r\n }\r\n if (responseData.Package != null) {\r\n loaded.Package(new smapi.entities.SDKPackageModel().LoadFromResponse(responseData.Package));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.Entity', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.BuilderEntityGID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.EntityType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.TypeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.FullTypeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ParentsNames.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.TableName.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.EntityCode.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MainPage.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Icon.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Title.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n this.Version.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 30,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '30')\r\n }\r\n });\r\n this.ToStringMethod.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.DBSchema.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 30,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '30')\r\n }\r\n });\r\n this.VersionAdded.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 30,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '30')\r\n }\r\n });\r\n this.VersionRemoved.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 30,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '30')\r\n }\r\n });\r\n this.CacheName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.EntityCharacteristics.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.DisplayMode.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.DetailsColumnCnt.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ManagementGrouping.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.MenuModule.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.MenuGrouping.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.MenuLocation.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.PackageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EmittOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PathToContact.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function EntityFieldModel(options) {\r\n var defaults = {\r\n BuilderEntityFieldGID: null,\r\n EntityID: 0,\r\n InheritedID: null,\r\n AttributeName: '',\r\n FieldName: '',\r\n DBFieldName: '',\r\n DefaultValue: '',\r\n Transient: false,\r\n IsPK: false,\r\n IsBK: false,\r\n IsAvailableForWrapper: false,\r\n IsInherited: false,\r\n IsIdentity: false,\r\n HasGetter: false,\r\n HasSetter: false,\r\n FieldOrdinal: 0,\r\n DataLength: 0,\r\n Precision: 0,\r\n Scale: 0,\r\n Label: '',\r\n ShortLabel: '',\r\n Tooltip: '',\r\n Prompt: '',\r\n DataType: '',\r\n MinimumValue: '',\r\n MaximumValue: '',\r\n IsNullable: false,\r\n Required: false,\r\n IsFixedLength: false,\r\n IsInline: false,\r\n ValidationExpression: '',\r\n InvalidMessage: '',\r\n SourceType: '',\r\n SourceDisplay: '',\r\n SourceValue: '',\r\n Filter: '',\r\n Used: false,\r\n MinimumDataLength: 0,\r\n HintMask: '',\r\n DisplayMask: '',\r\n IsLocalizable: false,\r\n IsDBHashed: false,\r\n HashName: '',\r\n IsDBEncrypted: false,\r\n ProviderID: null,\r\n ZoneName: '',\r\n EncryptionName: '',\r\n IsMasked: false,\r\n MigrationDefaultValue: '',\r\n AttributeForRelationship: '',\r\n Value: '',\r\n AggregateRelationship: '',\r\n SortOrdinal: 0,\r\n SortDirection: '',\r\n VersionAdded: '',\r\n VersionRemoved: '',\r\n FieldCharacteristics: null,\r\n RelatedField: '',\r\n NaturalKey: false,\r\n SearchField: false,\r\n SearchResultField: false,\r\n PopupSearchField: false,\r\n PopupSearchResultField: false,\r\n LiveSearchResult: false,\r\n PopupJsonResult: false,\r\n SVDisplayField: false,\r\n TOCTableField: false,\r\n TOCListField: false,\r\n Hidden: false,\r\n Calculated: false,\r\n TitledDisplayGroup: '',\r\n DisplayGroup: '',\r\n IsHtml: false,\r\n HeaderField: false,\r\n ShortForm: false,\r\n LongForm: false,\r\n TitledResultsGroup: '',\r\n ResultsGroup: '',\r\n ResultsOrder: 0,\r\n InStaticPrimary: false,\r\n IsPercentage: false,\r\n IsDateSequence: false,\r\n DateSeqDownstreamOperator: '',\r\n DateSeqUpstreamOperator: '',\r\n DateSeqPathToDownstreamDate: '',\r\n DateSeqPathToUpstreamDate: '',\r\n PathToCurrency: '',\r\n ApiSummaryField: false,\r\n ApiDetailedField: false,\r\n IsUserDefined: false,\r\n PackageID: null,\r\n IsTimeSequence: false,\r\n StaticSectionView: '',\r\n PopupEditorView: '',\r\n ListTableHeaderView: '',\r\n ListTableRowView: '',\r\n StandardTableHeaderView: '',\r\n StandardTableRowView: '',\r\n StandardListView: '',\r\n StandardTableM2MView: '',\r\n SearchEditorView: '',\r\n SearchHeaderView: '',\r\n SearchRowView: '',\r\n SearchListView: '',\r\n DisplayReadOnly: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.BuilderEntityFieldGID = ko.validatedObservable(settings.BuilderEntityFieldGID);\r\n this.EntityID = ko.validatedObservable(settings.EntityID);\r\n this.InheritedID = ko.validatedObservable(settings.InheritedID);\r\n this.AttributeName = ko.validatedObservable(settings.AttributeName);\r\n this.FieldName = ko.validatedObservable(settings.FieldName);\r\n this.DBFieldName = ko.validatedObservable(settings.DBFieldName);\r\n this.DefaultValue = ko.validatedObservable(settings.DefaultValue);\r\n this.Transient = ko.validatedObservable(settings.Transient);\r\n this.IsPK = ko.validatedObservable(settings.IsPK);\r\n this.IsBK = ko.validatedObservable(settings.IsBK);\r\n this.IsAvailableForWrapper = ko.validatedObservable(settings.IsAvailableForWrapper);\r\n this.IsInherited = ko.validatedObservable(settings.IsInherited);\r\n this.IsIdentity = ko.validatedObservable(settings.IsIdentity);\r\n this.HasGetter = ko.validatedObservable(settings.HasGetter);\r\n this.HasSetter = ko.validatedObservable(settings.HasSetter);\r\n this.FieldOrdinal = ko.validatedObservable(settings.FieldOrdinal);\r\n this.DataLength = ko.validatedObservable(settings.DataLength);\r\n this.Precision = ko.validatedObservable(settings.Precision);\r\n this.Scale = ko.validatedObservable(settings.Scale);\r\n this.Label = ko.validatedObservable(settings.Label);\r\n this.ShortLabel = ko.validatedObservable(settings.ShortLabel);\r\n this.Tooltip = ko.validatedObservable(settings.Tooltip);\r\n this.Prompt = ko.validatedObservable(settings.Prompt);\r\n this.DataType = ko.validatedObservable(settings.DataType);\r\n this.MinimumValue = ko.validatedObservable(settings.MinimumValue);\r\n this.MaximumValue = ko.validatedObservable(settings.MaximumValue);\r\n this.IsNullable = ko.validatedObservable(settings.IsNullable);\r\n this.Required = ko.validatedObservable(settings.Required);\r\n this.IsFixedLength = ko.validatedObservable(settings.IsFixedLength);\r\n this.IsInline = ko.validatedObservable(settings.IsInline);\r\n this.ValidationExpression = ko.validatedObservable(settings.ValidationExpression);\r\n this.InvalidMessage = ko.validatedObservable(settings.InvalidMessage);\r\n this.SourceType = ko.validatedObservable(settings.SourceType);\r\n this.SourceDisplay = ko.validatedObservable(settings.SourceDisplay);\r\n this.SourceValue = ko.validatedObservable(settings.SourceValue);\r\n this.Filter = ko.validatedObservable(settings.Filter);\r\n this.Used = ko.validatedObservable(settings.Used);\r\n this.MinimumDataLength = ko.validatedObservable(settings.MinimumDataLength);\r\n this.HintMask = ko.validatedObservable(settings.HintMask);\r\n this.DisplayMask = ko.validatedObservable(settings.DisplayMask);\r\n this.IsLocalizable = ko.validatedObservable(settings.IsLocalizable);\r\n this.IsDBHashed = ko.validatedObservable(settings.IsDBHashed);\r\n this.HashName = ko.validatedObservable(settings.HashName);\r\n this.IsDBEncrypted = ko.validatedObservable(settings.IsDBEncrypted);\r\n this.ProviderID = ko.validatedObservable(settings.ProviderID);\r\n this.ZoneName = ko.validatedObservable(settings.ZoneName);\r\n this.EncryptionName = ko.validatedObservable(settings.EncryptionName);\r\n this.IsMasked = ko.validatedObservable(settings.IsMasked);\r\n this.MigrationDefaultValue = ko.validatedObservable(settings.MigrationDefaultValue);\r\n this.AttributeForRelationship = ko.validatedObservable(settings.AttributeForRelationship);\r\n this.Value = ko.validatedObservable(settings.Value);\r\n this.AggregateRelationship = ko.validatedObservable(settings.AggregateRelationship);\r\n this.SortOrdinal = ko.validatedObservable(settings.SortOrdinal);\r\n this.SortDirection = ko.validatedObservable(settings.SortDirection);\r\n this.VersionAdded = ko.validatedObservable(settings.VersionAdded);\r\n this.VersionRemoved = ko.validatedObservable(settings.VersionRemoved);\r\n this.FieldCharacteristics = ko.validatedObservable(settings.FieldCharacteristics);\r\n this.RelatedField = ko.validatedObservable(settings.RelatedField);\r\n this.NaturalKey = ko.validatedObservable(settings.NaturalKey);\r\n this.SearchField = ko.validatedObservable(settings.SearchField);\r\n this.SearchResultField = ko.validatedObservable(settings.SearchResultField);\r\n this.PopupSearchField = ko.validatedObservable(settings.PopupSearchField);\r\n this.PopupSearchResultField = ko.validatedObservable(settings.PopupSearchResultField);\r\n this.LiveSearchResult = ko.validatedObservable(settings.LiveSearchResult);\r\n this.PopupJsonResult = ko.validatedObservable(settings.PopupJsonResult);\r\n this.SVDisplayField = ko.validatedObservable(settings.SVDisplayField);\r\n this.TOCTableField = ko.validatedObservable(settings.TOCTableField);\r\n this.TOCListField = ko.validatedObservable(settings.TOCListField);\r\n this.Hidden = ko.validatedObservable(settings.Hidden);\r\n this.Calculated = ko.validatedObservable(settings.Calculated);\r\n this.TitledDisplayGroup = ko.validatedObservable(settings.TitledDisplayGroup);\r\n this.DisplayGroup = ko.validatedObservable(settings.DisplayGroup);\r\n this.IsHtml = ko.validatedObservable(settings.IsHtml);\r\n this.HeaderField = ko.validatedObservable(settings.HeaderField);\r\n this.ShortForm = ko.validatedObservable(settings.ShortForm);\r\n this.LongForm = ko.validatedObservable(settings.LongForm);\r\n this.TitledResultsGroup = ko.validatedObservable(settings.TitledResultsGroup);\r\n this.ResultsGroup = ko.validatedObservable(settings.ResultsGroup);\r\n this.ResultsOrder = ko.validatedObservable(settings.ResultsOrder);\r\n this.InStaticPrimary = ko.validatedObservable(settings.InStaticPrimary);\r\n this.IsPercentage = ko.validatedObservable(settings.IsPercentage);\r\n this.IsDateSequence = ko.validatedObservable(settings.IsDateSequence);\r\n this.DateSeqDownstreamOperator = ko.validatedObservable(settings.DateSeqDownstreamOperator);\r\n this.DateSeqUpstreamOperator = ko.validatedObservable(settings.DateSeqUpstreamOperator);\r\n this.DateSeqPathToDownstreamDate = ko.validatedObservable(settings.DateSeqPathToDownstreamDate);\r\n this.DateSeqPathToUpstreamDate = ko.validatedObservable(settings.DateSeqPathToUpstreamDate);\r\n this.PathToCurrency = ko.validatedObservable(settings.PathToCurrency);\r\n this.ApiSummaryField = ko.validatedObservable(settings.ApiSummaryField);\r\n this.ApiDetailedField = ko.validatedObservable(settings.ApiDetailedField);\r\n this.IsUserDefined = ko.validatedObservable(settings.IsUserDefined);\r\n this.PackageID = ko.validatedObservable(settings.PackageID);\r\n this.IsTimeSequence = ko.validatedObservable(settings.IsTimeSequence);\r\n this.StaticSectionView = ko.validatedObservable(settings.StaticSectionView);\r\n this.PopupEditorView = ko.validatedObservable(settings.PopupEditorView);\r\n this.ListTableHeaderView = ko.validatedObservable(settings.ListTableHeaderView);\r\n this.ListTableRowView = ko.validatedObservable(settings.ListTableRowView);\r\n this.StandardTableHeaderView = ko.validatedObservable(settings.StandardTableHeaderView);\r\n this.StandardTableRowView = ko.validatedObservable(settings.StandardTableRowView);\r\n this.StandardListView = ko.validatedObservable(settings.StandardListView);\r\n this.StandardTableM2MView = ko.validatedObservable(settings.StandardTableM2MView);\r\n this.SearchEditorView = ko.validatedObservable(settings.SearchEditorView);\r\n this.SearchHeaderView = ko.validatedObservable(settings.SearchHeaderView);\r\n this.SearchRowView = ko.validatedObservable(settings.SearchRowView);\r\n this.SearchListView = ko.validatedObservable(settings.SearchListView);\r\n this.DisplayReadOnly = ko.validatedObservable(settings.DisplayReadOnly);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Entity = ko.observable();\r\n this.Package = ko.observable();\r\n this.MVCAttributes = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.BuilderEntityFieldGID != undefined) {\r\n loaded.BuilderEntityFieldGID(responseData.BuilderEntityFieldGID);\r\n }\r\n if (responseData.EntityID != undefined) {\r\n loaded.EntityID(responseData.EntityID);\r\n }\r\n if (responseData.InheritedID != undefined) {\r\n loaded.InheritedID(responseData.InheritedID);\r\n }\r\n if (responseData.AttributeName != undefined) {\r\n loaded.AttributeName(responseData.AttributeName);\r\n }\r\n if (responseData.FieldName != undefined) {\r\n loaded.FieldName(responseData.FieldName);\r\n }\r\n if (responseData.DBFieldName != undefined) {\r\n loaded.DBFieldName(responseData.DBFieldName);\r\n }\r\n if (responseData.DefaultValue != undefined) {\r\n loaded.DefaultValue(responseData.DefaultValue);\r\n }\r\n if (responseData.Transient != undefined) {\r\n loaded.Transient(responseData.Transient);\r\n }\r\n if (responseData.IsPK != undefined) {\r\n loaded.IsPK(responseData.IsPK);\r\n }\r\n if (responseData.IsBK != undefined) {\r\n loaded.IsBK(responseData.IsBK);\r\n }\r\n if (responseData.IsAvailableForWrapper != undefined) {\r\n loaded.IsAvailableForWrapper(responseData.IsAvailableForWrapper);\r\n }\r\n if (responseData.IsInherited != undefined) {\r\n loaded.IsInherited(responseData.IsInherited);\r\n }\r\n if (responseData.IsIdentity != undefined) {\r\n loaded.IsIdentity(responseData.IsIdentity);\r\n }\r\n if (responseData.HasGetter != undefined) {\r\n loaded.HasGetter(responseData.HasGetter);\r\n }\r\n if (responseData.HasSetter != undefined) {\r\n loaded.HasSetter(responseData.HasSetter);\r\n }\r\n if (responseData.FieldOrdinal != undefined) {\r\n loaded.FieldOrdinal(responseData.FieldOrdinal);\r\n }\r\n if (responseData.DataLength != undefined) {\r\n loaded.DataLength(responseData.DataLength);\r\n }\r\n if (responseData.Precision != undefined) {\r\n loaded.Precision(responseData.Precision);\r\n }\r\n if (responseData.Scale != undefined) {\r\n loaded.Scale(responseData.Scale);\r\n }\r\n if (responseData.Label != undefined) {\r\n loaded.Label(responseData.Label);\r\n }\r\n if (responseData.ShortLabel != undefined) {\r\n loaded.ShortLabel(responseData.ShortLabel);\r\n }\r\n if (responseData.Tooltip != undefined) {\r\n loaded.Tooltip(responseData.Tooltip);\r\n }\r\n if (responseData.Prompt != undefined) {\r\n loaded.Prompt(responseData.Prompt);\r\n }\r\n if (responseData.DataType != undefined) {\r\n loaded.DataType(responseData.DataType);\r\n }\r\n if (responseData.MinimumValue != undefined) {\r\n loaded.MinimumValue(responseData.MinimumValue);\r\n }\r\n if (responseData.MaximumValue != undefined) {\r\n loaded.MaximumValue(responseData.MaximumValue);\r\n }\r\n if (responseData.IsNullable != undefined) {\r\n loaded.IsNullable(responseData.IsNullable);\r\n }\r\n if (responseData.Required != undefined) {\r\n loaded.Required(responseData.Required);\r\n }\r\n if (responseData.IsFixedLength != undefined) {\r\n loaded.IsFixedLength(responseData.IsFixedLength);\r\n }\r\n if (responseData.IsInline != undefined) {\r\n loaded.IsInline(responseData.IsInline);\r\n }\r\n if (responseData.ValidationExpression != undefined) {\r\n loaded.ValidationExpression(responseData.ValidationExpression);\r\n }\r\n if (responseData.InvalidMessage != undefined) {\r\n loaded.InvalidMessage(responseData.InvalidMessage);\r\n }\r\n if (responseData.SourceType != undefined) {\r\n loaded.SourceType(responseData.SourceType);\r\n }\r\n if (responseData.SourceDisplay != undefined) {\r\n loaded.SourceDisplay(responseData.SourceDisplay);\r\n }\r\n if (responseData.SourceValue != undefined) {\r\n loaded.SourceValue(responseData.SourceValue);\r\n }\r\n if (responseData.Filter != undefined) {\r\n loaded.Filter(responseData.Filter);\r\n }\r\n if (responseData.Used != undefined) {\r\n loaded.Used(responseData.Used);\r\n }\r\n if (responseData.MinimumDataLength != undefined) {\r\n loaded.MinimumDataLength(responseData.MinimumDataLength);\r\n }\r\n if (responseData.HintMask != undefined) {\r\n loaded.HintMask(responseData.HintMask);\r\n }\r\n if (responseData.DisplayMask != undefined) {\r\n loaded.DisplayMask(responseData.DisplayMask);\r\n }\r\n if (responseData.IsLocalizable != undefined) {\r\n loaded.IsLocalizable(responseData.IsLocalizable);\r\n }\r\n if (responseData.IsDBHashed != undefined) {\r\n loaded.IsDBHashed(responseData.IsDBHashed);\r\n }\r\n if (responseData.HashName != undefined) {\r\n loaded.HashName(responseData.HashName);\r\n }\r\n if (responseData.IsDBEncrypted != undefined) {\r\n loaded.IsDBEncrypted(responseData.IsDBEncrypted);\r\n }\r\n if (responseData.ProviderID != undefined) {\r\n loaded.ProviderID(responseData.ProviderID);\r\n }\r\n if (responseData.ZoneName != undefined) {\r\n loaded.ZoneName(responseData.ZoneName);\r\n }\r\n if (responseData.EncryptionName != undefined) {\r\n loaded.EncryptionName(responseData.EncryptionName);\r\n }\r\n if (responseData.IsMasked != undefined) {\r\n loaded.IsMasked(responseData.IsMasked);\r\n }\r\n if (responseData.MigrationDefaultValue != undefined) {\r\n loaded.MigrationDefaultValue(responseData.MigrationDefaultValue);\r\n }\r\n if (responseData.AttributeForRelationship != undefined) {\r\n loaded.AttributeForRelationship(responseData.AttributeForRelationship);\r\n }\r\n if (responseData.Value != undefined) {\r\n loaded.Value(responseData.Value);\r\n }\r\n if (responseData.AggregateRelationship != undefined) {\r\n loaded.AggregateRelationship(responseData.AggregateRelationship);\r\n }\r\n if (responseData.SortOrdinal != undefined) {\r\n loaded.SortOrdinal(responseData.SortOrdinal);\r\n }\r\n if (responseData.SortDirection != undefined) {\r\n loaded.SortDirection(responseData.SortDirection);\r\n }\r\n if (responseData.VersionAdded != undefined) {\r\n loaded.VersionAdded(responseData.VersionAdded);\r\n }\r\n if (responseData.VersionRemoved != undefined) {\r\n loaded.VersionRemoved(responseData.VersionRemoved);\r\n }\r\n if (responseData.FieldCharacteristics != undefined) {\r\n loaded.FieldCharacteristics(responseData.FieldCharacteristics);\r\n }\r\n if (responseData.RelatedField != undefined) {\r\n loaded.RelatedField(responseData.RelatedField);\r\n }\r\n if (responseData.NaturalKey != undefined) {\r\n loaded.NaturalKey(responseData.NaturalKey);\r\n }\r\n if (responseData.SearchField != undefined) {\r\n loaded.SearchField(responseData.SearchField);\r\n }\r\n if (responseData.SearchResultField != undefined) {\r\n loaded.SearchResultField(responseData.SearchResultField);\r\n }\r\n if (responseData.PopupSearchField != undefined) {\r\n loaded.PopupSearchField(responseData.PopupSearchField);\r\n }\r\n if (responseData.PopupSearchResultField != undefined) {\r\n loaded.PopupSearchResultField(responseData.PopupSearchResultField);\r\n }\r\n if (responseData.LiveSearchResult != undefined) {\r\n loaded.LiveSearchResult(responseData.LiveSearchResult);\r\n }\r\n if (responseData.PopupJsonResult != undefined) {\r\n loaded.PopupJsonResult(responseData.PopupJsonResult);\r\n }\r\n if (responseData.SVDisplayField != undefined) {\r\n loaded.SVDisplayField(responseData.SVDisplayField);\r\n }\r\n if (responseData.TOCTableField != undefined) {\r\n loaded.TOCTableField(responseData.TOCTableField);\r\n }\r\n if (responseData.TOCListField != undefined) {\r\n loaded.TOCListField(responseData.TOCListField);\r\n }\r\n if (responseData.Hidden != undefined) {\r\n loaded.Hidden(responseData.Hidden);\r\n }\r\n if (responseData.Calculated != undefined) {\r\n loaded.Calculated(responseData.Calculated);\r\n }\r\n if (responseData.TitledDisplayGroup != undefined) {\r\n loaded.TitledDisplayGroup(responseData.TitledDisplayGroup);\r\n }\r\n if (responseData.DisplayGroup != undefined) {\r\n loaded.DisplayGroup(responseData.DisplayGroup);\r\n }\r\n if (responseData.IsHtml != undefined) {\r\n loaded.IsHtml(responseData.IsHtml);\r\n }\r\n if (responseData.HeaderField != undefined) {\r\n loaded.HeaderField(responseData.HeaderField);\r\n }\r\n if (responseData.ShortForm != undefined) {\r\n loaded.ShortForm(responseData.ShortForm);\r\n }\r\n if (responseData.LongForm != undefined) {\r\n loaded.LongForm(responseData.LongForm);\r\n }\r\n if (responseData.TitledResultsGroup != undefined) {\r\n loaded.TitledResultsGroup(responseData.TitledResultsGroup);\r\n }\r\n if (responseData.ResultsGroup != undefined) {\r\n loaded.ResultsGroup(responseData.ResultsGroup);\r\n }\r\n if (responseData.ResultsOrder != undefined) {\r\n loaded.ResultsOrder(responseData.ResultsOrder);\r\n }\r\n if (responseData.InStaticPrimary != undefined) {\r\n loaded.InStaticPrimary(responseData.InStaticPrimary);\r\n }\r\n if (responseData.IsPercentage != undefined) {\r\n loaded.IsPercentage(responseData.IsPercentage);\r\n }\r\n if (responseData.IsDateSequence != undefined) {\r\n loaded.IsDateSequence(responseData.IsDateSequence);\r\n }\r\n if (responseData.DateSeqDownstreamOperator != undefined) {\r\n loaded.DateSeqDownstreamOperator(responseData.DateSeqDownstreamOperator);\r\n }\r\n if (responseData.DateSeqUpstreamOperator != undefined) {\r\n loaded.DateSeqUpstreamOperator(responseData.DateSeqUpstreamOperator);\r\n }\r\n if (responseData.DateSeqPathToDownstreamDate != undefined) {\r\n loaded.DateSeqPathToDownstreamDate(responseData.DateSeqPathToDownstreamDate);\r\n }\r\n if (responseData.DateSeqPathToUpstreamDate != undefined) {\r\n loaded.DateSeqPathToUpstreamDate(responseData.DateSeqPathToUpstreamDate);\r\n }\r\n if (responseData.PathToCurrency != undefined) {\r\n loaded.PathToCurrency(responseData.PathToCurrency);\r\n }\r\n if (responseData.ApiSummaryField != undefined) {\r\n loaded.ApiSummaryField(responseData.ApiSummaryField);\r\n }\r\n if (responseData.ApiDetailedField != undefined) {\r\n loaded.ApiDetailedField(responseData.ApiDetailedField);\r\n }\r\n if (responseData.IsUserDefined != undefined) {\r\n loaded.IsUserDefined(responseData.IsUserDefined);\r\n }\r\n if (responseData.PackageID != undefined) {\r\n loaded.PackageID(responseData.PackageID);\r\n }\r\n if (responseData.IsTimeSequence != undefined) {\r\n loaded.IsTimeSequence(responseData.IsTimeSequence);\r\n }\r\n if (responseData.StaticSectionView != undefined) {\r\n loaded.StaticSectionView(responseData.StaticSectionView);\r\n }\r\n if (responseData.PopupEditorView != undefined) {\r\n loaded.PopupEditorView(responseData.PopupEditorView);\r\n }\r\n if (responseData.ListTableHeaderView != undefined) {\r\n loaded.ListTableHeaderView(responseData.ListTableHeaderView);\r\n }\r\n if (responseData.ListTableRowView != undefined) {\r\n loaded.ListTableRowView(responseData.ListTableRowView);\r\n }\r\n if (responseData.StandardTableHeaderView != undefined) {\r\n loaded.StandardTableHeaderView(responseData.StandardTableHeaderView);\r\n }\r\n if (responseData.StandardTableRowView != undefined) {\r\n loaded.StandardTableRowView(responseData.StandardTableRowView);\r\n }\r\n if (responseData.StandardListView != undefined) {\r\n loaded.StandardListView(responseData.StandardListView);\r\n }\r\n if (responseData.StandardTableM2MView != undefined) {\r\n loaded.StandardTableM2MView(responseData.StandardTableM2MView);\r\n }\r\n if (responseData.SearchEditorView != undefined) {\r\n loaded.SearchEditorView(responseData.SearchEditorView);\r\n }\r\n if (responseData.SearchHeaderView != undefined) {\r\n loaded.SearchHeaderView(responseData.SearchHeaderView);\r\n }\r\n if (responseData.SearchRowView != undefined) {\r\n loaded.SearchRowView(responseData.SearchRowView);\r\n }\r\n if (responseData.SearchListView != undefined) {\r\n loaded.SearchListView(responseData.SearchListView);\r\n }\r\n if (responseData.DisplayReadOnly != undefined) {\r\n loaded.DisplayReadOnly(responseData.DisplayReadOnly);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Entity != null) {\r\n loaded.Entity(new smapi.entities.EntityModel().LoadFromResponse(responseData.Entity));\r\n }\r\n if (responseData.Package != null) {\r\n loaded.Package(new smapi.entities.SDKPackageModel().LoadFromResponse(responseData.Package));\r\n }\r\n if (responseData.MVCAttributes != null && responseData.MVCAttributes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.MVCAttributes.length; i++) {\r\n items.push(new smapi.entities.EntityFieldMVCAttributeModel().LoadFromResponse(responseData.MVCAttributes[i]));\r\n }\r\n loaded.MVCAttributes(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.EntityField', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.BuilderEntityFieldGID.extend({\r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.EntityID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.InheritedID.extend({\r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.AttributeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.FieldName.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.DBFieldName.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.DefaultValue.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.FieldOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataLength.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Precision.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Scale.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Label.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ShortLabel.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Tooltip.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n this.Prompt.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.DataType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.MinimumValue.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.MaximumValue.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ValidationExpression.extend({\r\n maxLength: {\r\n params: 500,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '500')\r\n }\r\n });\r\n this.InvalidMessage.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SourceType.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SourceDisplay.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SourceValue.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Filter.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.MinimumDataLength.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.HintMask.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.DisplayMask.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.HashName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ProviderID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.ZoneName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.EncryptionName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.MigrationDefaultValue.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.AttributeForRelationship.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.Value.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.AggregateRelationship.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortDirection.extend({\r\n maxLength: {\r\n params: 10,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '10')\r\n }\r\n });\r\n this.VersionAdded.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 30,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '30')\r\n }\r\n });\r\n this.VersionRemoved.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 30,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '30')\r\n }\r\n });\r\n this.FieldCharacteristics.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.RelatedField.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.TitledDisplayGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.DisplayGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.TitledResultsGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.ResultsGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.ResultsOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DateSeqDownstreamOperator.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.DateSeqUpstreamOperator.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.DateSeqPathToDownstreamDate.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.DateSeqPathToUpstreamDate.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.PathToCurrency.extend({\r\n maxLength: {\r\n params: 1024,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1024')\r\n }\r\n });\r\n this.PackageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StaticSectionView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.PopupEditorView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ListTableHeaderView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ListTableRowView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.StandardTableHeaderView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.StandardTableRowView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.StandardListView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.StandardTableM2MView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SearchEditorView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SearchHeaderView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SearchRowView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SearchListView.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function EntityRelationshipModel(options) {\r\n var defaults = {\r\n BuilderEntityRelationshipGID: null,\r\n InheritedID: null,\r\n AttributeName: '',\r\n FieldOrdinal: 0,\r\n SimpleDataType: '',\r\n DataType: '',\r\n HasGetter: false,\r\n HasSetter: false,\r\n BackpointedAttribute: '',\r\n ParentAttribute: '',\r\n TableName: '',\r\n EntityID: 0,\r\n ToEntityID: null,\r\n Tooltip: '',\r\n RelationshipType: '',\r\n Transient: false,\r\n IsInherited: false,\r\n IsFK: false,\r\n IsRequired: false,\r\n BeginDate: null,\r\n EndDate: null,\r\n ClassType: null,\r\n Label: '',\r\n ShortLabel: '',\r\n Prompt: '',\r\n DefaultValue: '',\r\n CascadeAction: '',\r\n CsvDictionaryKeys: '',\r\n LookupGroupID: null,\r\n BusinessMeaningName: '',\r\n Value: '',\r\n HierarchyType: null,\r\n InitializerType: null,\r\n Aggregated: false,\r\n AggregateRelationship: '',\r\n VersionAdded: '',\r\n VersionRemoved: '',\r\n ForeignKeyName: '',\r\n IsAnchor: false,\r\n Characteristics: null,\r\n SearchField: false,\r\n SearchResultField: false,\r\n PopupSearchField: false,\r\n PopupSearchResultField: false,\r\n LiveSearchResult: false,\r\n PopupJsonResult: false,\r\n SVDisplayField: false,\r\n TOCTableField: false,\r\n TOCListField: false,\r\n Hidden: false,\r\n IsParent: false,\r\n Context: false,\r\n SearchFieldDepth: 0,\r\n TitledDisplayGroup: '',\r\n DisplayGroup: '',\r\n EditorMode: null,\r\n SearchMode: null,\r\n TOCItemMode: null,\r\n HeaderField: false,\r\n ShortForm: false,\r\n LongForm: false,\r\n TitledResultsGroup: '',\r\n ResultsGroup: '',\r\n ResultsOrder: 0,\r\n InStaticPrimary: false,\r\n SortOrdinal: 0,\r\n ApiSummaryRelationship: false,\r\n ApiDetailedRelationship: false,\r\n IsUserDefined: false,\r\n LockParentOnChildEdit: false,\r\n PackageID: null,\r\n TOCOrdinal: 0,\r\n SaveOrdinal: 0,\r\n NoRecursionForATO: false,\r\n NoRecursionForDTO: false,\r\n DisplayReadOnly: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.BuilderEntityRelationshipGID = ko.validatedObservable(settings.BuilderEntityRelationshipGID);\r\n this.InheritedID = ko.validatedObservable(settings.InheritedID);\r\n this.AttributeName = ko.validatedObservable(settings.AttributeName);\r\n this.FieldOrdinal = ko.validatedObservable(settings.FieldOrdinal);\r\n this.SimpleDataType = ko.validatedObservable(settings.SimpleDataType);\r\n this.DataType = ko.validatedObservable(settings.DataType);\r\n this.HasGetter = ko.validatedObservable(settings.HasGetter);\r\n this.HasSetter = ko.validatedObservable(settings.HasSetter);\r\n this.BackpointedAttribute = ko.validatedObservable(settings.BackpointedAttribute);\r\n this.ParentAttribute = ko.validatedObservable(settings.ParentAttribute);\r\n this.TableName = ko.validatedObservable(settings.TableName);\r\n this.EntityID = ko.validatedObservable(settings.EntityID);\r\n this.ToEntityID = ko.validatedObservable(settings.ToEntityID);\r\n this.Tooltip = ko.validatedObservable(settings.Tooltip);\r\n this.RelationshipType = ko.validatedObservable(settings.RelationshipType);\r\n this.Transient = ko.validatedObservable(settings.Transient);\r\n this.IsInherited = ko.validatedObservable(settings.IsInherited);\r\n this.IsFK = ko.validatedObservable(settings.IsFK);\r\n this.IsRequired = ko.validatedObservable(settings.IsRequired);\r\n this.BeginDate = ko.validatedObservable(settings.BeginDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Label = ko.validatedObservable(settings.Label);\r\n this.ShortLabel = ko.validatedObservable(settings.ShortLabel);\r\n this.Prompt = ko.validatedObservable(settings.Prompt);\r\n this.DefaultValue = ko.validatedObservable(settings.DefaultValue);\r\n this.CascadeAction = ko.validatedObservable(settings.CascadeAction);\r\n this.CsvDictionaryKeys = ko.validatedObservable(settings.CsvDictionaryKeys);\r\n this.LookupGroupID = ko.validatedObservable(settings.LookupGroupID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.Value = ko.validatedObservable(settings.Value);\r\n this.HierarchyType = ko.validatedObservable(settings.HierarchyType);\r\n this.InitializerType = ko.validatedObservable(settings.InitializerType);\r\n this.Aggregated = ko.validatedObservable(settings.Aggregated);\r\n this.AggregateRelationship = ko.validatedObservable(settings.AggregateRelationship);\r\n this.VersionAdded = ko.validatedObservable(settings.VersionAdded);\r\n this.VersionRemoved = ko.validatedObservable(settings.VersionRemoved);\r\n this.ForeignKeyName = ko.validatedObservable(settings.ForeignKeyName);\r\n this.IsAnchor = ko.validatedObservable(settings.IsAnchor);\r\n this.Characteristics = ko.validatedObservable(settings.Characteristics);\r\n this.SearchField = ko.validatedObservable(settings.SearchField);\r\n this.SearchResultField = ko.validatedObservable(settings.SearchResultField);\r\n this.PopupSearchField = ko.validatedObservable(settings.PopupSearchField);\r\n this.PopupSearchResultField = ko.validatedObservable(settings.PopupSearchResultField);\r\n this.LiveSearchResult = ko.validatedObservable(settings.LiveSearchResult);\r\n this.PopupJsonResult = ko.validatedObservable(settings.PopupJsonResult);\r\n this.SVDisplayField = ko.validatedObservable(settings.SVDisplayField);\r\n this.TOCTableField = ko.validatedObservable(settings.TOCTableField);\r\n this.TOCListField = ko.validatedObservable(settings.TOCListField);\r\n this.Hidden = ko.validatedObservable(settings.Hidden);\r\n this.IsParent = ko.validatedObservable(settings.IsParent);\r\n this.Context = ko.validatedObservable(settings.Context);\r\n this.SearchFieldDepth = ko.validatedObservable(settings.SearchFieldDepth);\r\n this.TitledDisplayGroup = ko.validatedObservable(settings.TitledDisplayGroup);\r\n this.DisplayGroup = ko.validatedObservable(settings.DisplayGroup);\r\n this.EditorMode = ko.validatedObservable(settings.EditorMode);\r\n this.SearchMode = ko.validatedObservable(settings.SearchMode);\r\n this.TOCItemMode = ko.validatedObservable(settings.TOCItemMode);\r\n this.HeaderField = ko.validatedObservable(settings.HeaderField);\r\n this.ShortForm = ko.validatedObservable(settings.ShortForm);\r\n this.LongForm = ko.validatedObservable(settings.LongForm);\r\n this.TitledResultsGroup = ko.validatedObservable(settings.TitledResultsGroup);\r\n this.ResultsGroup = ko.validatedObservable(settings.ResultsGroup);\r\n this.ResultsOrder = ko.validatedObservable(settings.ResultsOrder);\r\n this.InStaticPrimary = ko.validatedObservable(settings.InStaticPrimary);\r\n this.SortOrdinal = ko.validatedObservable(settings.SortOrdinal);\r\n this.ApiSummaryRelationship = ko.validatedObservable(settings.ApiSummaryRelationship);\r\n this.ApiDetailedRelationship = ko.validatedObservable(settings.ApiDetailedRelationship);\r\n this.IsUserDefined = ko.validatedObservable(settings.IsUserDefined);\r\n this.LockParentOnChildEdit = ko.validatedObservable(settings.LockParentOnChildEdit);\r\n this.PackageID = ko.validatedObservable(settings.PackageID);\r\n this.TOCOrdinal = ko.validatedObservable(settings.TOCOrdinal);\r\n this.SaveOrdinal = ko.validatedObservable(settings.SaveOrdinal);\r\n this.NoRecursionForATO = ko.validatedObservable(settings.NoRecursionForATO);\r\n this.NoRecursionForDTO = ko.validatedObservable(settings.NoRecursionForDTO);\r\n this.DisplayReadOnly = ko.validatedObservable(settings.DisplayReadOnly);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.FromEntity = ko.observable();\r\n this.LookupGroup = ko.observable();\r\n this.ToEntity = ko.observable();\r\n this.RelationshipLinks = ko.observableArray([]);\r\n this.Package = ko.observable();\r\n this.MVCAttributes = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.BuilderEntityRelationshipGID != undefined) {\r\n loaded.BuilderEntityRelationshipGID(responseData.BuilderEntityRelationshipGID);\r\n }\r\n if (responseData.InheritedID != undefined) {\r\n loaded.InheritedID(responseData.InheritedID);\r\n }\r\n if (responseData.AttributeName != undefined) {\r\n loaded.AttributeName(responseData.AttributeName);\r\n }\r\n if (responseData.FieldOrdinal != undefined) {\r\n loaded.FieldOrdinal(responseData.FieldOrdinal);\r\n }\r\n if (responseData.SimpleDataType != undefined) {\r\n loaded.SimpleDataType(responseData.SimpleDataType);\r\n }\r\n if (responseData.DataType != undefined) {\r\n loaded.DataType(responseData.DataType);\r\n }\r\n if (responseData.HasGetter != undefined) {\r\n loaded.HasGetter(responseData.HasGetter);\r\n }\r\n if (responseData.HasSetter != undefined) {\r\n loaded.HasSetter(responseData.HasSetter);\r\n }\r\n if (responseData.BackpointedAttribute != undefined) {\r\n loaded.BackpointedAttribute(responseData.BackpointedAttribute);\r\n }\r\n if (responseData.ParentAttribute != undefined) {\r\n loaded.ParentAttribute(responseData.ParentAttribute);\r\n }\r\n if (responseData.TableName != undefined) {\r\n loaded.TableName(responseData.TableName);\r\n }\r\n if (responseData.EntityID != undefined) {\r\n loaded.EntityID(responseData.EntityID);\r\n }\r\n if (responseData.ToEntityID != undefined) {\r\n loaded.ToEntityID(responseData.ToEntityID);\r\n }\r\n if (responseData.Tooltip != undefined) {\r\n loaded.Tooltip(responseData.Tooltip);\r\n }\r\n if (responseData.RelationshipType != undefined) {\r\n loaded.RelationshipType(responseData.RelationshipType);\r\n }\r\n if (responseData.Transient != undefined) {\r\n loaded.Transient(responseData.Transient);\r\n }\r\n if (responseData.IsInherited != undefined) {\r\n loaded.IsInherited(responseData.IsInherited);\r\n }\r\n if (responseData.IsFK != undefined) {\r\n loaded.IsFK(responseData.IsFK);\r\n }\r\n if (responseData.IsRequired != undefined) {\r\n loaded.IsRequired(responseData.IsRequired);\r\n }\r\n if (responseData.BeginDate != undefined) {\r\n loaded.BeginDate(responseData.BeginDate);\r\n }\r\n if (responseData.EndDate != undefined) {\r\n loaded.EndDate(responseData.EndDate);\r\n }\r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Label != undefined) {\r\n loaded.Label(responseData.Label);\r\n }\r\n if (responseData.ShortLabel != undefined) {\r\n loaded.ShortLabel(responseData.ShortLabel);\r\n }\r\n if (responseData.Prompt != undefined) {\r\n loaded.Prompt(responseData.Prompt);\r\n }\r\n if (responseData.DefaultValue != undefined) {\r\n loaded.DefaultValue(responseData.DefaultValue);\r\n }\r\n if (responseData.CascadeAction != undefined) {\r\n loaded.CascadeAction(responseData.CascadeAction);\r\n }\r\n if (responseData.CsvDictionaryKeys != undefined) {\r\n loaded.CsvDictionaryKeys(responseData.CsvDictionaryKeys);\r\n }\r\n if (responseData.LookupGroupID != undefined) {\r\n loaded.LookupGroupID(responseData.LookupGroupID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.Value != undefined) {\r\n loaded.Value(responseData.Value);\r\n }\r\n if (responseData.HierarchyType != undefined) {\r\n loaded.HierarchyType(responseData.HierarchyType);\r\n }\r\n if (responseData.InitializerType != undefined) {\r\n loaded.InitializerType(responseData.InitializerType);\r\n }\r\n if (responseData.Aggregated != undefined) {\r\n loaded.Aggregated(responseData.Aggregated);\r\n }\r\n if (responseData.AggregateRelationship != undefined) {\r\n loaded.AggregateRelationship(responseData.AggregateRelationship);\r\n }\r\n if (responseData.VersionAdded != undefined) {\r\n loaded.VersionAdded(responseData.VersionAdded);\r\n }\r\n if (responseData.VersionRemoved != undefined) {\r\n loaded.VersionRemoved(responseData.VersionRemoved);\r\n }\r\n if (responseData.ForeignKeyName != undefined) {\r\n loaded.ForeignKeyName(responseData.ForeignKeyName);\r\n }\r\n if (responseData.IsAnchor != undefined) {\r\n loaded.IsAnchor(responseData.IsAnchor);\r\n }\r\n if (responseData.Characteristics != undefined) {\r\n loaded.Characteristics(responseData.Characteristics);\r\n }\r\n if (responseData.SearchField != undefined) {\r\n loaded.SearchField(responseData.SearchField);\r\n }\r\n if (responseData.SearchResultField != undefined) {\r\n loaded.SearchResultField(responseData.SearchResultField);\r\n }\r\n if (responseData.PopupSearchField != undefined) {\r\n loaded.PopupSearchField(responseData.PopupSearchField);\r\n }\r\n if (responseData.PopupSearchResultField != undefined) {\r\n loaded.PopupSearchResultField(responseData.PopupSearchResultField);\r\n }\r\n if (responseData.LiveSearchResult != undefined) {\r\n loaded.LiveSearchResult(responseData.LiveSearchResult);\r\n }\r\n if (responseData.PopupJsonResult != undefined) {\r\n loaded.PopupJsonResult(responseData.PopupJsonResult);\r\n }\r\n if (responseData.SVDisplayField != undefined) {\r\n loaded.SVDisplayField(responseData.SVDisplayField);\r\n }\r\n if (responseData.TOCTableField != undefined) {\r\n loaded.TOCTableField(responseData.TOCTableField);\r\n }\r\n if (responseData.TOCListField != undefined) {\r\n loaded.TOCListField(responseData.TOCListField);\r\n }\r\n if (responseData.Hidden != undefined) {\r\n loaded.Hidden(responseData.Hidden);\r\n }\r\n if (responseData.IsParent != undefined) {\r\n loaded.IsParent(responseData.IsParent);\r\n }\r\n if (responseData.Context != undefined) {\r\n loaded.Context(responseData.Context);\r\n }\r\n if (responseData.SearchFieldDepth != undefined) {\r\n loaded.SearchFieldDepth(responseData.SearchFieldDepth);\r\n }\r\n if (responseData.TitledDisplayGroup != undefined) {\r\n loaded.TitledDisplayGroup(responseData.TitledDisplayGroup);\r\n }\r\n if (responseData.DisplayGroup != undefined) {\r\n loaded.DisplayGroup(responseData.DisplayGroup);\r\n }\r\n if (responseData.EditorMode != undefined) {\r\n loaded.EditorMode(responseData.EditorMode);\r\n }\r\n if (responseData.SearchMode != undefined) {\r\n loaded.SearchMode(responseData.SearchMode);\r\n }\r\n if (responseData.TOCItemMode != undefined) {\r\n loaded.TOCItemMode(responseData.TOCItemMode);\r\n }\r\n if (responseData.HeaderField != undefined) {\r\n loaded.HeaderField(responseData.HeaderField);\r\n }\r\n if (responseData.ShortForm != undefined) {\r\n loaded.ShortForm(responseData.ShortForm);\r\n }\r\n if (responseData.LongForm != undefined) {\r\n loaded.LongForm(responseData.LongForm);\r\n }\r\n if (responseData.TitledResultsGroup != undefined) {\r\n loaded.TitledResultsGroup(responseData.TitledResultsGroup);\r\n }\r\n if (responseData.ResultsGroup != undefined) {\r\n loaded.ResultsGroup(responseData.ResultsGroup);\r\n }\r\n if (responseData.ResultsOrder != undefined) {\r\n loaded.ResultsOrder(responseData.ResultsOrder);\r\n }\r\n if (responseData.InStaticPrimary != undefined) {\r\n loaded.InStaticPrimary(responseData.InStaticPrimary);\r\n }\r\n if (responseData.SortOrdinal != undefined) {\r\n loaded.SortOrdinal(responseData.SortOrdinal);\r\n }\r\n if (responseData.ApiSummaryRelationship != undefined) {\r\n loaded.ApiSummaryRelationship(responseData.ApiSummaryRelationship);\r\n }\r\n if (responseData.ApiDetailedRelationship != undefined) {\r\n loaded.ApiDetailedRelationship(responseData.ApiDetailedRelationship);\r\n }\r\n if (responseData.IsUserDefined != undefined) {\r\n loaded.IsUserDefined(responseData.IsUserDefined);\r\n }\r\n if (responseData.LockParentOnChildEdit != undefined) {\r\n loaded.LockParentOnChildEdit(responseData.LockParentOnChildEdit);\r\n }\r\n if (responseData.PackageID != undefined) {\r\n loaded.PackageID(responseData.PackageID);\r\n }\r\n if (responseData.TOCOrdinal != undefined) {\r\n loaded.TOCOrdinal(responseData.TOCOrdinal);\r\n }\r\n if (responseData.SaveOrdinal != undefined) {\r\n loaded.SaveOrdinal(responseData.SaveOrdinal);\r\n }\r\n if (responseData.NoRecursionForATO != undefined) {\r\n loaded.NoRecursionForATO(responseData.NoRecursionForATO);\r\n }\r\n if (responseData.NoRecursionForDTO != undefined) {\r\n loaded.NoRecursionForDTO(responseData.NoRecursionForDTO);\r\n }\r\n if (responseData.DisplayReadOnly != undefined) {\r\n loaded.DisplayReadOnly(responseData.DisplayReadOnly);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.FromEntity != null) {\r\n loaded.FromEntity(new smapi.entities.EntityModel().LoadFromResponse(responseData.FromEntity));\r\n }\r\n if (responseData.LookupGroup != null) {\r\n loaded.LookupGroup(new smapi.entities.LookupGroupModel().LoadFromResponse(responseData.LookupGroup));\r\n }\r\n if (responseData.ToEntity != null) {\r\n loaded.ToEntity(new smapi.entities.EntityModel().LoadFromResponse(responseData.ToEntity));\r\n }\r\n if (responseData.RelationshipLinks != null && responseData.RelationshipLinks.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.RelationshipLinks.length; i++) {\r\n items.push(new smapi.entities.EntityRelationshipLinkModel().LoadFromResponse(responseData.RelationshipLinks[i]));\r\n }\r\n loaded.RelationshipLinks(items);\r\n }\r\n if (responseData.Package != null) {\r\n loaded.Package(new smapi.entities.SDKPackageModel().LoadFromResponse(responseData.Package));\r\n }\r\n if (responseData.MVCAttributes != null && responseData.MVCAttributes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.MVCAttributes.length; i++) {\r\n items.push(new smapi.entities.EntityRelationshipMVCAttributeModel().LoadFromResponse(responseData.MVCAttributes[i]));\r\n }\r\n loaded.MVCAttributes(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.EntityRelationship', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.BuilderEntityRelationshipGID.extend({\r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.InheritedID.extend({\r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.AttributeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.FieldOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SimpleDataType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.DataType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BackpointedAttribute.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ParentAttribute.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.TableName.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.EntityID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ToEntityID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Tooltip.extend({\r\n maxLength: {\r\n params: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n this.RelationshipType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 15,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '15')\r\n }\r\n });\r\n this.BeginDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.EndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.Label.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ShortLabel.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Prompt.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.DefaultValue.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.CascadeAction.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 20,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '20')\r\n }\r\n });\r\n this.CsvDictionaryKeys.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.LookupGroupID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Value.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.HierarchyType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.InitializerType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.AggregateRelationship.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.VersionAdded.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 30,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '30')\r\n }\r\n });\r\n this.VersionRemoved.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 30,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '30')\r\n }\r\n });\r\n this.ForeignKeyName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Characteristics.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.SearchFieldDepth.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TitledDisplayGroup.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.DisplayGroup.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.EditorMode.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.SearchMode.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.TOCItemMode.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.TitledResultsGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.ResultsGroup.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.ResultsOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PackageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TOCOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SaveOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function EntityRelationshipLinkModel(options) {\r\n var defaults = {\r\n ParentID: 0,\r\n BuilderRelationshipLinkGID: null,\r\n RelationshipLinkType: '',\r\n MyLink: '',\r\n OtherLink: '',\r\n MyLinkProperty: '',\r\n OtherProperty: '',\r\n DefaultValue: '',\r\n LiteralValue: '',\r\n LinkOrder: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ParentID = ko.validatedObservable(settings.ParentID);\r\n this.BuilderRelationshipLinkGID = ko.validatedObservable(settings.BuilderRelationshipLinkGID);\r\n this.RelationshipLinkType = ko.validatedObservable(settings.RelationshipLinkType);\r\n this.MyLink = ko.validatedObservable(settings.MyLink);\r\n this.OtherLink = ko.validatedObservable(settings.OtherLink);\r\n this.MyLinkProperty = ko.validatedObservable(settings.MyLinkProperty);\r\n this.OtherProperty = ko.validatedObservable(settings.OtherProperty);\r\n this.DefaultValue = ko.validatedObservable(settings.DefaultValue);\r\n this.LiteralValue = ko.validatedObservable(settings.LiteralValue);\r\n this.LinkOrder = ko.validatedObservable(settings.LinkOrder);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ParentID != undefined) {\r\n loaded.ParentID(responseData.ParentID);\r\n }\r\n if (responseData.BuilderRelationshipLinkGID != undefined) {\r\n loaded.BuilderRelationshipLinkGID(responseData.BuilderRelationshipLinkGID);\r\n }\r\n if (responseData.RelationshipLinkType != undefined) {\r\n loaded.RelationshipLinkType(responseData.RelationshipLinkType);\r\n }\r\n if (responseData.MyLink != undefined) {\r\n loaded.MyLink(responseData.MyLink);\r\n }\r\n if (responseData.OtherLink != undefined) {\r\n loaded.OtherLink(responseData.OtherLink);\r\n }\r\n if (responseData.MyLinkProperty != undefined) {\r\n loaded.MyLinkProperty(responseData.MyLinkProperty);\r\n }\r\n if (responseData.OtherProperty != undefined) {\r\n loaded.OtherProperty(responseData.OtherProperty);\r\n }\r\n if (responseData.DefaultValue != undefined) {\r\n loaded.DefaultValue(responseData.DefaultValue);\r\n }\r\n if (responseData.LiteralValue != undefined) {\r\n loaded.LiteralValue(responseData.LiteralValue);\r\n }\r\n if (responseData.LinkOrder != undefined) {\r\n loaded.LinkOrder(responseData.LinkOrder);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.EntityRelationshipModel().LoadFromResponse(responseData.Parent));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.EntityRelationshipLink', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ParentID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BuilderRelationshipLinkGID.extend({\r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.RelationshipLinkType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 15,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '15')\r\n }\r\n });\r\n this.MyLink.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.OtherLink.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.MyLinkProperty.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.OtherProperty.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.DefaultValue.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.LiteralValue.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.LinkOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function CurrencyModel(options) {\r\n var defaults = {\r\n CultureCode: '',\r\n Code: '',\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.CultureCode = ko.validatedObservable(settings.CultureCode);\r\n this.Code = ko.validatedObservable(settings.Code);\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.CultureCode != undefined) {\r\n loaded.CultureCode(responseData.CultureCode);\r\n }\r\n if (responseData.Code != undefined) {\r\n loaded.Code(responseData.Code);\r\n }\r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.Currency', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.CultureCode.extend({\r\n maxLength: {\r\n params: 15,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '15')\r\n }\r\n });\r\n this.Code.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 3,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '3')\r\n }\r\n });\r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function EntityDBIndexModel(options) {\r\n var defaults = {\r\n BuilderDBIndexGID: null,\r\n Name: '',\r\n DBClustered: false,\r\n DBUnique: false,\r\n EntityID: 0,\r\n IsUserDefined: false,\r\n PackageID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.BuilderDBIndexGID = ko.validatedObservable(settings.BuilderDBIndexGID);\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.DBClustered = ko.validatedObservable(settings.DBClustered);\r\n this.DBUnique = ko.validatedObservable(settings.DBUnique);\r\n this.EntityID = ko.validatedObservable(settings.EntityID);\r\n this.IsUserDefined = ko.validatedObservable(settings.IsUserDefined);\r\n this.PackageID = ko.validatedObservable(settings.PackageID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Entity = ko.observable();\r\n this.Fields = ko.observableArray([]);\r\n this.Package = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.BuilderDBIndexGID != undefined) {\r\n loaded.BuilderDBIndexGID(responseData.BuilderDBIndexGID);\r\n }\r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.DBClustered != undefined) {\r\n loaded.DBClustered(responseData.DBClustered);\r\n }\r\n if (responseData.DBUnique != undefined) {\r\n loaded.DBUnique(responseData.DBUnique);\r\n }\r\n if (responseData.EntityID != undefined) {\r\n loaded.EntityID(responseData.EntityID);\r\n }\r\n if (responseData.IsUserDefined != undefined) {\r\n loaded.IsUserDefined(responseData.IsUserDefined);\r\n }\r\n if (responseData.PackageID != undefined) {\r\n loaded.PackageID(responseData.PackageID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Entity != null) {\r\n loaded.Entity(new smapi.entities.EntityModel().LoadFromResponse(responseData.Entity));\r\n }\r\n if (responseData.Fields != null && responseData.Fields.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Fields.length; i++) {\r\n items.push(new smapi.entities.EntityDBIndexFieldModel().LoadFromResponse(responseData.Fields[i]));\r\n }\r\n loaded.Fields(items);\r\n }\r\n if (responseData.Package != null) {\r\n loaded.Package(new smapi.entities.SDKPackageModel().LoadFromResponse(responseData.Package));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.EntityDBIndex', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.BuilderDBIndexGID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.EntityID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PackageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function EntityDBIndexFieldModel(options) {\r\n var defaults = {\r\n BuilderDBIndexFieldGID: null,\r\n Name: '',\r\n DBIndexID: 0,\r\n SortOrder: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.BuilderDBIndexFieldGID = ko.validatedObservable(settings.BuilderDBIndexFieldGID);\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.DBIndexID = ko.validatedObservable(settings.DBIndexID);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.BuilderDBIndexFieldGID != undefined) {\r\n loaded.BuilderDBIndexFieldGID(responseData.BuilderDBIndexFieldGID);\r\n }\r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.DBIndexID != undefined) {\r\n loaded.DBIndexID(responseData.DBIndexID);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.EntityDBIndexModel().LoadFromResponse(responseData.Parent));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.EntityDBIndexField', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.BuilderDBIndexFieldGID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.DBIndexID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 4,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function EntityFieldMVCAttributeModel(options) {\r\n var defaults = {\r\n ParentID: 0,\r\n Name: '',\r\n Value: '',\r\n SystemProtected: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ParentID = ko.validatedObservable(settings.ParentID);\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Value = ko.validatedObservable(settings.Value);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ParentID != undefined) {\r\n loaded.ParentID(responseData.ParentID);\r\n }\r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Value != undefined) {\r\n loaded.Value(responseData.Value);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.EntityFieldModel().LoadFromResponse(responseData.Parent));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.EntityFieldMVCAttribute', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ParentID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Value.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function EntityRelationshipMVCAttributeModel(options) {\r\n var defaults = {\r\n ParentID: 0,\r\n Name: '',\r\n Value: '',\r\n SystemProtected: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ParentID = ko.validatedObservable(settings.ParentID);\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Value = ko.validatedObservable(settings.Value);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Parent = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ParentID != undefined) {\r\n loaded.ParentID(responseData.ParentID);\r\n }\r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Value != undefined) {\r\n loaded.Value(responseData.Value);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.EntityRelationshipModel().LoadFromResponse(responseData.Parent));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.EntityRelationshipMVCAttribute', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ParentID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Value.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ResourceRoleModel(options) {\r\n var defaults = {\r\n UserID: 0,\r\n RoleID: 0,\r\n ResourceID: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.UserID = ko.validatedObservable(settings.UserID);\r\n this.RoleID = ko.validatedObservable(settings.RoleID);\r\n this.ResourceID = ko.validatedObservable(settings.ResourceID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Role = ko.observable();\r\n this.User = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.UserID != undefined) {\r\n loaded.UserID(responseData.UserID);\r\n }\r\n if (responseData.RoleID != undefined) {\r\n loaded.RoleID(responseData.RoleID);\r\n }\r\n if (responseData.ResourceID != undefined) {\r\n loaded.ResourceID(responseData.ResourceID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Role != null) {\r\n loaded.Role(new smapi.entities.RoleModel().LoadFromResponse(responseData.Role));\r\n }\r\n if (responseData.User != null) {\r\n loaded.User(new smapi.entities.UserModel().LoadFromResponse(responseData.User));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.ResourceRole', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.UserID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RoleID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ResourceID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function MatchListTargetModel(options) {\r\n var defaults = {\r\n PathToElement: '',\r\n MatchListID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PathToElement = ko.validatedObservable(settings.PathToElement);\r\n this.MatchListID = ko.validatedObservable(settings.MatchListID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.MatchList = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PathToElement != undefined) {\r\n loaded.PathToElement(responseData.PathToElement);\r\n }\r\n if (responseData.MatchListID != undefined) {\r\n loaded.MatchListID(responseData.MatchListID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.MatchList != null) {\r\n loaded.MatchList(new smapi.entities.MatchListModel().LoadFromResponse(responseData.MatchList));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.MatchListTarget', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PathToElement.extend({\r\n maxLength: {\r\n params: 1024,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1024')\r\n }\r\n });\r\n this.MatchListID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function MatchListModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n EntityGID: null,\r\n MatchCriteria: '',\r\n SortCriteria: '',\r\n Private: false,\r\n AdHoc: false,\r\n UserID: null,\r\n RefreshListID: null,\r\n ListPermissionID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.EntityGID = ko.validatedObservable(settings.EntityGID);\r\n this.MatchCriteria = ko.validatedObservable(settings.MatchCriteria);\r\n this.SortCriteria = ko.validatedObservable(settings.SortCriteria);\r\n this.Private = ko.validatedObservable(settings.Private);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.UserID = ko.validatedObservable(settings.UserID);\r\n this.RefreshListID = ko.validatedObservable(settings.RefreshListID);\r\n this.ListPermissionID = ko.validatedObservable(settings.ListPermissionID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.MatchListItem = ko.observableArray([]);\r\n this.MatchListTargets = ko.observableArray([]);\r\n this.User = ko.observable();\r\n this.RefreshList = ko.observable();\r\n this.ListPermission = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.EntityGID != undefined) {\r\n loaded.EntityGID(responseData.EntityGID);\r\n }\r\n if (responseData.MatchCriteria != undefined) {\r\n loaded.MatchCriteria(responseData.MatchCriteria);\r\n }\r\n if (responseData.SortCriteria != undefined) {\r\n loaded.SortCriteria(responseData.SortCriteria);\r\n }\r\n if (responseData.Private != undefined) {\r\n loaded.Private(responseData.Private);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.UserID != undefined) {\r\n loaded.UserID(responseData.UserID);\r\n }\r\n if (responseData.RefreshListID != undefined) {\r\n loaded.RefreshListID(responseData.RefreshListID);\r\n }\r\n if (responseData.ListPermissionID != undefined) {\r\n loaded.ListPermissionID(responseData.ListPermissionID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.MatchListItem != null && responseData.MatchListItem.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.MatchListItem.length; i++) {\r\n items.push(new smapi.entities.MatchListItemModel().LoadFromResponse(responseData.MatchListItem[i]));\r\n }\r\n loaded.MatchListItem(items);\r\n }\r\n if (responseData.MatchListTargets != null && responseData.MatchListTargets.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.MatchListTargets.length; i++) {\r\n items.push(new smapi.entities.MatchListTargetModel().LoadFromResponse(responseData.MatchListTargets[i]));\r\n }\r\n loaded.MatchListTargets(items);\r\n }\r\n if (responseData.User != null) {\r\n loaded.User(new smapi.entities.UserModel().LoadFromResponse(responseData.User));\r\n }\r\n if (responseData.RefreshList != null) {\r\n loaded.RefreshList(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.RefreshList));\r\n }\r\n if (responseData.ListPermission != null) {\r\n loaded.ListPermission(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.ListPermission));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.MatchList', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 150,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '150')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.EntityGID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.MatchCriteria.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.SortCriteria.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.UserID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RefreshListID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ListPermissionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function MatchListItemModel(options) {\r\n var defaults = {\r\n ItemID: 0,\r\n MatchListID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ItemID = ko.validatedObservable(settings.ItemID);\r\n this.MatchListID = ko.validatedObservable(settings.MatchListID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.MatchList = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ItemID != undefined) {\r\n loaded.ItemID(responseData.ItemID);\r\n }\r\n if (responseData.MatchListID != undefined) {\r\n loaded.MatchListID(responseData.MatchListID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.MatchList != null) {\r\n loaded.MatchList(new smapi.entities.MatchListModel().LoadFromResponse(responseData.MatchList));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.MatchListItem', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ItemID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MatchListID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function SystemLogModel(options) {\r\n var defaults = {\r\n OccurredWhen: null,\r\n HostName: '',\r\n Thread: '',\r\n TransactionId: '',\r\n EntityType: '',\r\n EntityKey: '',\r\n LogLevel: '',\r\n Location: '',\r\n UserName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.OccurredWhen = ko.validatedObservable(settings.OccurredWhen);\r\n this.HostName = ko.validatedObservable(settings.HostName);\r\n this.Thread = ko.validatedObservable(settings.Thread);\r\n this.TransactionId = ko.validatedObservable(settings.TransactionId);\r\n this.EntityType = ko.validatedObservable(settings.EntityType);\r\n this.EntityKey = ko.validatedObservable(settings.EntityKey);\r\n this.LogLevel = ko.validatedObservable(settings.LogLevel);\r\n this.Location = ko.validatedObservable(settings.Location);\r\n this.UserName = ko.validatedObservable(settings.UserName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.SystemLogMessage = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.OccurredWhen != undefined) {\r\n loaded.OccurredWhen(responseData.OccurredWhen);\r\n }\r\n if (responseData.HostName != undefined) {\r\n loaded.HostName(responseData.HostName);\r\n }\r\n if (responseData.Thread != undefined) {\r\n loaded.Thread(responseData.Thread);\r\n }\r\n if (responseData.TransactionId != undefined) {\r\n loaded.TransactionId(responseData.TransactionId);\r\n }\r\n if (responseData.EntityType != undefined) {\r\n loaded.EntityType(responseData.EntityType);\r\n }\r\n if (responseData.EntityKey != undefined) {\r\n loaded.EntityKey(responseData.EntityKey);\r\n }\r\n if (responseData.LogLevel != undefined) {\r\n loaded.LogLevel(responseData.LogLevel);\r\n }\r\n if (responseData.Location != undefined) {\r\n loaded.Location(responseData.Location);\r\n }\r\n if (responseData.UserName != undefined) {\r\n loaded.UserName(responseData.UserName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.SystemLogMessage != null && responseData.SystemLogMessage.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.SystemLogMessage.length; i++) {\r\n items.push(new smapi.entities.SystemLogMessageModel().LoadFromResponse(responseData.SystemLogMessage[i]));\r\n }\r\n loaded.SystemLogMessage(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.SystemLog', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.OccurredWhen.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.HostName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Thread.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 10,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '10')\r\n }\r\n });\r\n this.TransactionId.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 10,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '10')\r\n }\r\n });\r\n this.EntityType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.EntityKey.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.LogLevel.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 5,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '5')\r\n }\r\n });\r\n this.Location.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.UserName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function SystemLogMessageModel(options) {\r\n var defaults = {\r\n SystemLogID: null,\r\n Message: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.SystemLogID = ko.validatedObservable(settings.SystemLogID);\r\n this.Message = ko.validatedObservable(settings.Message);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.SystemLog = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.SystemLogID != undefined) {\r\n loaded.SystemLogID(responseData.SystemLogID);\r\n }\r\n if (responseData.Message != undefined) {\r\n loaded.Message(responseData.Message);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.SystemLog != null) {\r\n loaded.SystemLog(new smapi.entities.SystemLogModel().LoadFromResponse(responseData.SystemLog));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.SystemLogMessage', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.SystemLogID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Message.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 1024,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1024')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function SystemLogExceptionModel(options) {\r\n var defaults = {\r\n SystemLogID: null,\r\n Exception: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.SystemLogID = ko.validatedObservable(settings.SystemLogID);\r\n this.Exception = ko.validatedObservable(settings.Exception);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.SystemLog = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.SystemLogID != undefined) {\r\n loaded.SystemLogID(responseData.SystemLogID);\r\n }\r\n if (responseData.Exception != undefined) {\r\n loaded.Exception(responseData.Exception);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.SystemLog != null) {\r\n loaded.SystemLog(new smapi.entities.SystemLogModel().LoadFromResponse(responseData.SystemLog));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.SystemLogException', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.SystemLogID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Exception.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 1024,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1024')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function SystemLogExtendedPropertyModel(options) {\r\n var defaults = {\r\n SystemLogID: null,\r\n ExtendedProperties: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.SystemLogID = ko.validatedObservable(settings.SystemLogID);\r\n this.ExtendedProperties = ko.validatedObservable(settings.ExtendedProperties);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.SystemLog = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.SystemLogID != undefined) {\r\n loaded.SystemLogID(responseData.SystemLogID);\r\n }\r\n if (responseData.ExtendedProperties != undefined) {\r\n loaded.ExtendedProperties(responseData.ExtendedProperties);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.SystemLog != null) {\r\n loaded.SystemLog(new smapi.entities.SystemLogModel().LoadFromResponse(responseData.SystemLog));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.SystemLogExtendedProperty', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.SystemLogID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ExtendedProperties.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 1024,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1024')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ReportExecModel(options) {\r\n var defaults = {\r\n UserID: 0,\r\n MatchListID: null,\r\n LocaleList: '',\r\n RunDate: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.UserID = ko.validatedObservable(settings.UserID);\r\n this.MatchListID = ko.validatedObservable(settings.MatchListID);\r\n this.LocaleList = ko.validatedObservable(settings.LocaleList);\r\n this.RunDate = ko.validatedObservable(settings.RunDate);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.MatchList = ko.observable();\r\n this.User = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.UserID != undefined) {\r\n loaded.UserID(responseData.UserID);\r\n }\r\n if (responseData.MatchListID != undefined) {\r\n loaded.MatchListID(responseData.MatchListID);\r\n }\r\n if (responseData.LocaleList != undefined) {\r\n loaded.LocaleList(responseData.LocaleList);\r\n }\r\n if (responseData.RunDate != undefined) {\r\n loaded.RunDate(responseData.RunDate);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.MatchList != null) {\r\n loaded.MatchList(new smapi.entities.MatchListModel().LoadFromResponse(responseData.MatchList));\r\n }\r\n if (responseData.User != null) {\r\n loaded.User(new smapi.entities.UserModel().LoadFromResponse(responseData.User));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.ReportExec', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.UserID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MatchListID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.LocaleList.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.RunDate.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function PermissionModel(options) {\r\n var defaults = {\r\n EntityPermissionID: null,\r\n SecuredObjectKeyString: '',\r\n PermissionSource: null,\r\n PermissionType: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.EntityPermissionID = ko.validatedObservable(settings.EntityPermissionID);\r\n this.SecuredObjectKeyString = ko.validatedObservable(settings.SecuredObjectKeyString);\r\n this.PermissionSource = ko.validatedObservable(settings.PermissionSource);\r\n this.PermissionType = ko.validatedObservable(settings.PermissionType);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Roles = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.EntityPermissionID != undefined) {\r\n loaded.EntityPermissionID(responseData.EntityPermissionID);\r\n }\r\n if (responseData.SecuredObjectKeyString != undefined) {\r\n loaded.SecuredObjectKeyString(responseData.SecuredObjectKeyString);\r\n }\r\n if (responseData.PermissionSource != undefined) {\r\n loaded.PermissionSource(responseData.PermissionSource);\r\n }\r\n if (responseData.PermissionType != undefined) {\r\n loaded.PermissionType(responseData.PermissionType);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Roles != null && responseData.Roles.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Roles.length; i++) {\r\n items.push(new smapi.entities.RoleModel().LoadFromResponse(responseData.Roles[i]));\r\n }\r\n loaded.Roles(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.Permission', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.EntityPermissionID.extend({\r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.SecuredObjectKeyString.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.PermissionSource.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.PermissionType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function RoleModel(options) {\r\n var defaults = {\r\n ApplicationID: 0,\r\n Name: '',\r\n Description: '',\r\n IsSystemRole: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ApplicationID = ko.validatedObservable(settings.ApplicationID);\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.IsSystemRole = ko.validatedObservable(settings.IsSystemRole);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Permissions = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ApplicationID != undefined) {\r\n loaded.ApplicationID(responseData.ApplicationID);\r\n }\r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.IsSystemRole != undefined) {\r\n loaded.IsSystemRole(responseData.IsSystemRole);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Permissions != null && responseData.Permissions.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Permissions.length; i++) {\r\n items.push(new smapi.entities.PermissionModel().LoadFromResponse(responseData.Permissions[i]));\r\n }\r\n loaded.Permissions(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.Role', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ApplicationID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function GroupLevelModel(options) {\r\n var defaults = {\r\n Name: '',\r\n GroupLevelWeight: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.GroupLevelWeight = ko.validatedObservable(settings.GroupLevelWeight);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Groups = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.GroupLevelWeight != undefined) {\r\n loaded.GroupLevelWeight(responseData.GroupLevelWeight);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Groups != null && responseData.Groups.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Groups.length; i++) {\r\n items.push(new smapi.entities.GroupModel().LoadFromResponse(responseData.Groups[i]));\r\n }\r\n loaded.Groups(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.GroupLevel', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.GroupLevelWeight.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function GroupRowAccessModel(options) {\r\n var defaults = {\r\n GroupID: 0,\r\n EntityTypeID: 0,\r\n EntityGID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.GroupID = ko.validatedObservable(settings.GroupID);\r\n this.EntityTypeID = ko.validatedObservable(settings.EntityTypeID);\r\n this.EntityGID = ko.validatedObservable(settings.EntityGID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Groups = ko.observable();\r\n this.EntityType = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.GroupID != undefined) {\r\n loaded.GroupID(responseData.GroupID);\r\n }\r\n if (responseData.EntityTypeID != undefined) {\r\n loaded.EntityTypeID(responseData.EntityTypeID);\r\n }\r\n if (responseData.EntityGID != undefined) {\r\n loaded.EntityGID(responseData.EntityGID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Groups != null) {\r\n loaded.Groups(new smapi.entities.GroupModel().LoadFromResponse(responseData.Groups));\r\n }\r\n if (responseData.EntityType != null) {\r\n loaded.EntityType(new smapi.entities.EntityModel().LoadFromResponse(responseData.EntityType));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.GroupRowAccess', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.GroupID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EntityTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EntityGID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function EntityRowSecurityGroupsModel(options) {\r\n var defaults = {\r\n GroupID: 0,\r\n EntityTypeID: 0,\r\n EntityGID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.GroupID = ko.validatedObservable(settings.GroupID);\r\n this.EntityTypeID = ko.validatedObservable(settings.EntityTypeID);\r\n this.EntityGID = ko.validatedObservable(settings.EntityGID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Groups = ko.observable();\r\n this.EntityType = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.GroupID != undefined) {\r\n loaded.GroupID(responseData.GroupID);\r\n }\r\n if (responseData.EntityTypeID != undefined) {\r\n loaded.EntityTypeID(responseData.EntityTypeID);\r\n }\r\n if (responseData.EntityGID != undefined) {\r\n loaded.EntityGID(responseData.EntityGID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Groups != null) {\r\n loaded.Groups(new smapi.entities.GroupModel().LoadFromResponse(responseData.Groups));\r\n }\r\n if (responseData.EntityType != null) {\r\n loaded.EntityType(new smapi.entities.EntityModel().LoadFromResponse(responseData.EntityType));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.EntityRowSecurityGroups', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.GroupID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EntityTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EntityGID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function GroupModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n GroupLevelID: null,\r\n ProviderID: null,\r\n ProviderKey: '',\r\n IsUnion: false,\r\n Abbreviation: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.GroupLevelID = ko.validatedObservable(settings.GroupLevelID);\r\n this.ProviderID = ko.validatedObservable(settings.ProviderID);\r\n this.ProviderKey = ko.validatedObservable(settings.ProviderKey);\r\n this.IsUnion = ko.validatedObservable(settings.IsUnion);\r\n this.Abbreviation = ko.validatedObservable(settings.Abbreviation);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.GroupLevel = ko.observable();\r\n this.Groups = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.GroupLevelID != undefined) {\r\n loaded.GroupLevelID(responseData.GroupLevelID);\r\n }\r\n if (responseData.ProviderID != undefined) {\r\n loaded.ProviderID(responseData.ProviderID);\r\n }\r\n if (responseData.ProviderKey != undefined) {\r\n loaded.ProviderKey(responseData.ProviderKey);\r\n }\r\n if (responseData.IsUnion != undefined) {\r\n loaded.IsUnion(responseData.IsUnion);\r\n }\r\n if (responseData.Abbreviation != undefined) {\r\n loaded.Abbreviation(responseData.Abbreviation);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.GroupLevel != null) {\r\n loaded.GroupLevel(new smapi.entities.GroupLevelModel().LoadFromResponse(responseData.GroupLevel));\r\n }\r\n if (responseData.Groups != null && responseData.Groups.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Groups.length; i++) {\r\n items.push(new smapi.entities.GroupModel().LoadFromResponse(responseData.Groups[i]));\r\n }\r\n loaded.Groups(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.Group', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.GroupLevelID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ProviderID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.ProviderKey.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Abbreviation.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 10,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '10')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function TRSRuleSetModel(options) {\r\n var defaults = {\r\n BoundTypeName: '',\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n WFVersion: null,\r\n RuleSetStr: '',\r\n FullTypeName: '',\r\n IsWebRule: false,\r\n ModuleID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.BoundTypeName = ko.validatedObservable(settings.BoundTypeName);\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.WFVersion = ko.validatedObservable(settings.WFVersion);\r\n this.RuleSetStr = ko.validatedObservable(settings.RuleSetStr);\r\n this.FullTypeName = ko.validatedObservable(settings.FullTypeName);\r\n this.IsWebRule = ko.validatedObservable(settings.IsWebRule);\r\n this.ModuleID = ko.validatedObservable(settings.ModuleID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Module = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.BoundTypeName != undefined) {\r\n loaded.BoundTypeName(responseData.BoundTypeName);\r\n }\r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.WFVersion != undefined) {\r\n loaded.WFVersion(responseData.WFVersion);\r\n }\r\n if (responseData.RuleSetStr != undefined) {\r\n loaded.RuleSetStr(responseData.RuleSetStr);\r\n }\r\n if (responseData.FullTypeName != undefined) {\r\n loaded.FullTypeName(responseData.FullTypeName);\r\n }\r\n if (responseData.IsWebRule != undefined) {\r\n loaded.IsWebRule(responseData.IsWebRule);\r\n }\r\n if (responseData.ModuleID != undefined) {\r\n loaded.ModuleID(responseData.ModuleID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Module != null) {\r\n loaded.Module(new smapi.entities.ModuleModel().LoadFromResponse(responseData.Module));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.TRSRuleSet', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.BoundTypeName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.WFVersion.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.RuleSetStr.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.FullTypeName.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ModuleID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function PersonalizationPathModel(options) {\r\n var defaults = {\r\n ActualPath: '',\r\n LoweredPath: '',\r\n WebApplicationID: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ActualPath = ko.validatedObservable(settings.ActualPath);\r\n this.LoweredPath = ko.validatedObservable(settings.LoweredPath);\r\n this.WebApplicationID = ko.validatedObservable(settings.WebApplicationID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.WebApplication = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ActualPath != undefined) {\r\n loaded.ActualPath(responseData.ActualPath);\r\n }\r\n if (responseData.LoweredPath != undefined) {\r\n loaded.LoweredPath(responseData.LoweredPath);\r\n }\r\n if (responseData.WebApplicationID != undefined) {\r\n loaded.WebApplicationID(responseData.WebApplicationID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.WebApplication != null) {\r\n loaded.WebApplication(new smapi.entities.WebApplicationModel().LoadFromResponse(responseData.WebApplication));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.PersonalizationPath', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ActualPath.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.LoweredPath.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.WebApplicationID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function PersonalizationAllUsersModel(options) {\r\n var defaults = {\r\n PageSettings: null,\r\n LastUpdatedDate: null,\r\n PathID: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PageSettings = ko.validatedObservable(settings.PageSettings);\r\n this.LastUpdatedDate = ko.validatedObservable(settings.LastUpdatedDate);\r\n this.PathID = ko.validatedObservable(settings.PathID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Path = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PageSettings != undefined) {\r\n loaded.PageSettings(responseData.PageSettings);\r\n }\r\n if (responseData.LastUpdatedDate != undefined) {\r\n loaded.LastUpdatedDate(responseData.LastUpdatedDate);\r\n }\r\n if (responseData.PathID != undefined) {\r\n loaded.PathID(responseData.PathID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Path != null) {\r\n loaded.Path(new smapi.entities.PersonalizationPathModel().LoadFromResponse(responseData.Path));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.PersonalizationAllUsers', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PageSettings.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.LastUpdatedDate.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.PathID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function PersonalizationPerUserModel(options) {\r\n var defaults = {\r\n PageSettings: null,\r\n LastUpdatedDate: null,\r\n PathID: 0,\r\n UserID: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PageSettings = ko.validatedObservable(settings.PageSettings);\r\n this.LastUpdatedDate = ko.validatedObservable(settings.LastUpdatedDate);\r\n this.PathID = ko.validatedObservable(settings.PathID);\r\n this.UserID = ko.validatedObservable(settings.UserID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Path = ko.observable();\r\n this.User = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PageSettings != undefined) {\r\n loaded.PageSettings(responseData.PageSettings);\r\n }\r\n if (responseData.LastUpdatedDate != undefined) {\r\n loaded.LastUpdatedDate(responseData.LastUpdatedDate);\r\n }\r\n if (responseData.PathID != undefined) {\r\n loaded.PathID(responseData.PathID);\r\n }\r\n if (responseData.UserID != undefined) {\r\n loaded.UserID(responseData.UserID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Path != null) {\r\n loaded.Path(new smapi.entities.PersonalizationPathModel().LoadFromResponse(responseData.Path));\r\n }\r\n if (responseData.User != null) {\r\n loaded.User(new smapi.entities.UserModel().LoadFromResponse(responseData.User));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.PersonalizationPerUser', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PageSettings.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.LastUpdatedDate.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.PathID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.UserID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ProfileModel(options) {\r\n var defaults = {\r\n PropertyNames: '',\r\n PropertyValuesString: '',\r\n PropertyValuesBinary: null,\r\n LastUpdatedDate: null,\r\n UserID: 0,\r\n SiteID: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PropertyNames = ko.validatedObservable(settings.PropertyNames);\r\n this.PropertyValuesString = ko.validatedObservable(settings.PropertyValuesString);\r\n this.PropertyValuesBinary = ko.validatedObservable(settings.PropertyValuesBinary);\r\n this.LastUpdatedDate = ko.validatedObservable(settings.LastUpdatedDate);\r\n this.UserID = ko.validatedObservable(settings.UserID);\r\n this.SiteID = ko.validatedObservable(settings.SiteID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.User = ko.observable();\r\n this.Site = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PropertyNames != undefined) {\r\n loaded.PropertyNames(responseData.PropertyNames);\r\n }\r\n if (responseData.PropertyValuesString != undefined) {\r\n loaded.PropertyValuesString(responseData.PropertyValuesString);\r\n }\r\n if (responseData.PropertyValuesBinary != undefined) {\r\n loaded.PropertyValuesBinary(responseData.PropertyValuesBinary);\r\n }\r\n if (responseData.LastUpdatedDate != undefined) {\r\n loaded.LastUpdatedDate(responseData.LastUpdatedDate);\r\n }\r\n if (responseData.UserID != undefined) {\r\n loaded.UserID(responseData.UserID);\r\n }\r\n if (responseData.SiteID != undefined) {\r\n loaded.SiteID(responseData.SiteID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.User != null) {\r\n loaded.User(new smapi.entities.UserModel().LoadFromResponse(responseData.User));\r\n }\r\n if (responseData.Site != null) {\r\n loaded.Site(new smapi.entities.SiteModel().LoadFromResponse(responseData.Site));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.Profile', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PropertyNames.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.PropertyValuesString.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.PropertyValuesBinary.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.LastUpdatedDate.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.UserID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SiteID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function FlintCredentialModel(options) {\r\n var defaults = {\r\n Value: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Value = ko.validatedObservable(settings.Value);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Value != undefined) {\r\n loaded.Value(responseData.Value);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.FlintCredential', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Value.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function IconModel(options) {\r\n var defaults = {\r\n Name: '',\r\n IconFile: '',\r\n ThemedIconFile: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.IconFile = ko.validatedObservable(settings.IconFile);\r\n this.ThemedIconFile = ko.validatedObservable(settings.ThemedIconFile);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.IconFile != undefined) {\r\n loaded.IconFile(responseData.IconFile);\r\n }\r\n if (responseData.ThemedIconFile != undefined) {\r\n loaded.ThemedIconFile(responseData.ThemedIconFile);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.Icon', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.IconFile.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ThemedIconFile.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AlertModel(options) {\r\n var defaults = {\r\n Name: '',\r\n AlertDate: null,\r\n AlertTypeID: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.AlertDate = ko.validatedObservable(settings.AlertDate);\r\n this.AlertTypeID = ko.validatedObservable(settings.AlertTypeID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AlertType = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.AlertDate != undefined) {\r\n loaded.AlertDate(responseData.AlertDate);\r\n }\r\n if (responseData.AlertTypeID != undefined) {\r\n loaded.AlertTypeID(responseData.AlertTypeID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AlertType != null) {\r\n loaded.AlertType(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.AlertType));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.Alert', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.AlertDate.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AlertTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function UserRuleSetModel(options) {\r\n var defaults = {\r\n UserID: 0,\r\n RuleSetID: 0,\r\n ParentRuleSetID: null,\r\n OriginalAncestorRuleSetID: null,\r\n Stale: false,\r\n StaleAsOfDate: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.UserID = ko.validatedObservable(settings.UserID);\r\n this.RuleSetID = ko.validatedObservable(settings.RuleSetID);\r\n this.ParentRuleSetID = ko.validatedObservable(settings.ParentRuleSetID);\r\n this.OriginalAncestorRuleSetID = ko.validatedObservable(settings.OriginalAncestorRuleSetID);\r\n this.Stale = ko.validatedObservable(settings.Stale);\r\n this.StaleAsOfDate = ko.validatedObservable(settings.StaleAsOfDate);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.User = ko.observable();\r\n this.RuleSet = ko.observable();\r\n this.ParentRuleSet = ko.observable();\r\n this.OriginalAncestorRuleSet = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.UserID != undefined) {\r\n loaded.UserID(responseData.UserID);\r\n }\r\n if (responseData.RuleSetID != undefined) {\r\n loaded.RuleSetID(responseData.RuleSetID);\r\n }\r\n if (responseData.ParentRuleSetID != undefined) {\r\n loaded.ParentRuleSetID(responseData.ParentRuleSetID);\r\n }\r\n if (responseData.OriginalAncestorRuleSetID != undefined) {\r\n loaded.OriginalAncestorRuleSetID(responseData.OriginalAncestorRuleSetID);\r\n }\r\n if (responseData.Stale != undefined) {\r\n loaded.Stale(responseData.Stale);\r\n }\r\n if (responseData.StaleAsOfDate != undefined) {\r\n loaded.StaleAsOfDate(responseData.StaleAsOfDate);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.User != null) {\r\n loaded.User(new smapi.entities.UserModel().LoadFromResponse(responseData.User));\r\n }\r\n if (responseData.RuleSet != null) {\r\n loaded.RuleSet(new smapi.entities.TRSRuleSetModel().LoadFromResponse(responseData.RuleSet));\r\n }\r\n if (responseData.ParentRuleSet != null) {\r\n loaded.ParentRuleSet(new smapi.entities.TRSRuleSetModel().LoadFromResponse(responseData.ParentRuleSet));\r\n }\r\n if (responseData.OriginalAncestorRuleSet != null) {\r\n loaded.OriginalAncestorRuleSet(new smapi.entities.TRSRuleSetModel().LoadFromResponse(responseData.OriginalAncestorRuleSet));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.UserRuleSet', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.UserID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RuleSetID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ParentRuleSetID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.OriginalAncestorRuleSetID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StaleAsOfDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function GroupRuleSetModel(options) {\r\n var defaults = {\r\n GroupID: 0,\r\n RuleSetID: 0,\r\n ParentRuleSetID: null,\r\n OriginalAncestorRuleSetID: null,\r\n Stale: false,\r\n StaleAsOfDate: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.GroupID = ko.validatedObservable(settings.GroupID);\r\n this.RuleSetID = ko.validatedObservable(settings.RuleSetID);\r\n this.ParentRuleSetID = ko.validatedObservable(settings.ParentRuleSetID);\r\n this.OriginalAncestorRuleSetID = ko.validatedObservable(settings.OriginalAncestorRuleSetID);\r\n this.Stale = ko.validatedObservable(settings.Stale);\r\n this.StaleAsOfDate = ko.validatedObservable(settings.StaleAsOfDate);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Group = ko.observable();\r\n this.RuleSet = ko.observable();\r\n this.ParentRuleSet = ko.observable();\r\n this.OriginalAncestorRuleSet = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.GroupID != undefined) {\r\n loaded.GroupID(responseData.GroupID);\r\n }\r\n if (responseData.RuleSetID != undefined) {\r\n loaded.RuleSetID(responseData.RuleSetID);\r\n }\r\n if (responseData.ParentRuleSetID != undefined) {\r\n loaded.ParentRuleSetID(responseData.ParentRuleSetID);\r\n }\r\n if (responseData.OriginalAncestorRuleSetID != undefined) {\r\n loaded.OriginalAncestorRuleSetID(responseData.OriginalAncestorRuleSetID);\r\n }\r\n if (responseData.Stale != undefined) {\r\n loaded.Stale(responseData.Stale);\r\n }\r\n if (responseData.StaleAsOfDate != undefined) {\r\n loaded.StaleAsOfDate(responseData.StaleAsOfDate);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Group != null) {\r\n loaded.Group(new smapi.entities.GroupModel().LoadFromResponse(responseData.Group));\r\n }\r\n if (responseData.RuleSet != null) {\r\n loaded.RuleSet(new smapi.entities.TRSRuleSetModel().LoadFromResponse(responseData.RuleSet));\r\n }\r\n if (responseData.ParentRuleSet != null) {\r\n loaded.ParentRuleSet(new smapi.entities.TRSRuleSetModel().LoadFromResponse(responseData.ParentRuleSet));\r\n }\r\n if (responseData.OriginalAncestorRuleSet != null) {\r\n loaded.OriginalAncestorRuleSet(new smapi.entities.TRSRuleSetModel().LoadFromResponse(responseData.OriginalAncestorRuleSet));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.GroupRuleSet', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.GroupID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RuleSetID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ParentRuleSetID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.OriginalAncestorRuleSetID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StaleAsOfDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function DataChangedWatcherModel(options) {\r\n var defaults = {\r\n Name: '',\r\n PathToWorkflowBO: '',\r\n WorkfowInitiationRuleset: null,\r\n BusinessMeaningName: '',\r\n Description: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.PathToWorkflowBO = ko.validatedObservable(settings.PathToWorkflowBO);\r\n this.WorkfowInitiationRuleset = ko.validatedObservable(settings.WorkfowInitiationRuleset);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Properties = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.PathToWorkflowBO != undefined) {\r\n loaded.PathToWorkflowBO(responseData.PathToWorkflowBO);\r\n }\r\n if (responseData.WorkfowInitiationRuleset != undefined) {\r\n loaded.WorkfowInitiationRuleset(responseData.WorkfowInitiationRuleset);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Properties != null && responseData.Properties.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Properties.length; i++) {\r\n items.push(new smapi.entities.DataChangedWatchPropertyModel().LoadFromResponse(responseData.Properties[i]));\r\n }\r\n loaded.Properties(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.DataChangedWatcher', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.PathToWorkflowBO.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.WorkfowInitiationRuleset.extend({\r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function DataChangedWatchPropertyModel(options) {\r\n var defaults = {\r\n Name: '',\r\n EntityFieldID: null,\r\n BusinessMeaningName: '',\r\n Description: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.EntityFieldID = ko.validatedObservable(settings.EntityFieldID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.EntityField = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.EntityFieldID != undefined) {\r\n loaded.EntityFieldID(responseData.EntityFieldID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.EntityField != null) {\r\n loaded.EntityField(new smapi.entities.EntityFieldModel().LoadFromResponse(responseData.EntityField));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.DataChangedWatchProperty', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.EntityFieldID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function LoggerModel(options) {\r\n var defaults = {\r\n CorrelationID: '',\r\n WhenLogged: null,\r\n Elapsed: null,\r\n UserName: '',\r\n HttpMethod: '',\r\n URL: '',\r\n Details: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.CorrelationID = ko.validatedObservable(settings.CorrelationID);\r\n this.WhenLogged = ko.validatedObservable(settings.WhenLogged);\r\n this.Elapsed = ko.validatedObservable(settings.Elapsed);\r\n this.UserName = ko.validatedObservable(settings.UserName);\r\n this.HttpMethod = ko.validatedObservable(settings.HttpMethod);\r\n this.URL = ko.validatedObservable(settings.URL);\r\n this.Details = ko.validatedObservable(settings.Details);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.CorrelationID != undefined) {\r\n loaded.CorrelationID(responseData.CorrelationID);\r\n }\r\n if (responseData.WhenLogged != undefined) {\r\n loaded.WhenLogged(responseData.WhenLogged);\r\n }\r\n if (responseData.Elapsed != undefined) {\r\n loaded.Elapsed(responseData.Elapsed);\r\n }\r\n if (responseData.UserName != undefined) {\r\n loaded.UserName(responseData.UserName);\r\n }\r\n if (responseData.HttpMethod != undefined) {\r\n loaded.HttpMethod(responseData.HttpMethod);\r\n }\r\n if (responseData.URL != undefined) {\r\n loaded.URL(responseData.URL);\r\n }\r\n if (responseData.Details != undefined) {\r\n loaded.Details(responseData.Details);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.Logger', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.CorrelationID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 38,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '38')\r\n }\r\n });\r\n this.WhenLogged.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.Elapsed.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.UserName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.HttpMethod.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 4,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4')\r\n }\r\n });\r\n this.URL.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 2000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '2000')\r\n }\r\n });\r\n this.Details.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function LookupTablesLoaderModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Type: '',\r\n Active: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Type = ko.validatedObservable(settings.Type);\r\n this.Active = ko.validatedObservable(settings.Active);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Type != undefined) {\r\n loaded.Type(responseData.Type);\r\n }\r\n if (responseData.Active != undefined) {\r\n loaded.Active(responseData.Active);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.LookupTablesLoader', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.Type.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 1000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1000')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function FlintSettingModel(options) {\r\n var defaults = {\r\n ApplicationName: '',\r\n SiteName: '',\r\n AllowedLocales: '',\r\n SystemLocales: '',\r\n AlwaysPromptUser: '',\r\n ChartImageHandler: '',\r\n ExternalGroupRuleSet: '',\r\n AllowedAssemblies: '',\r\n LoadWatchers: '',\r\n ReportServerUrl: '',\r\n ExtraLogging: '',\r\n DefaultTheme: '',\r\n EditModeGroup: '',\r\n EnableAJAX: '',\r\n ShowRawException: '',\r\n RecreateCounterCategories: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ApplicationName = ko.validatedObservable(settings.ApplicationName);\r\n this.SiteName = ko.validatedObservable(settings.SiteName);\r\n this.AllowedLocales = ko.validatedObservable(settings.AllowedLocales);\r\n this.SystemLocales = ko.validatedObservable(settings.SystemLocales);\r\n this.AlwaysPromptUser = ko.validatedObservable(settings.AlwaysPromptUser);\r\n this.ChartImageHandler = ko.validatedObservable(settings.ChartImageHandler);\r\n this.ExternalGroupRuleSet = ko.validatedObservable(settings.ExternalGroupRuleSet);\r\n this.AllowedAssemblies = ko.validatedObservable(settings.AllowedAssemblies);\r\n this.LoadWatchers = ko.validatedObservable(settings.LoadWatchers);\r\n this.ReportServerUrl = ko.validatedObservable(settings.ReportServerUrl);\r\n this.ExtraLogging = ko.validatedObservable(settings.ExtraLogging);\r\n this.DefaultTheme = ko.validatedObservable(settings.DefaultTheme);\r\n this.EditModeGroup = ko.validatedObservable(settings.EditModeGroup);\r\n this.EnableAJAX = ko.validatedObservable(settings.EnableAJAX);\r\n this.ShowRawException = ko.validatedObservable(settings.ShowRawException);\r\n this.RecreateCounterCategories = ko.validatedObservable(settings.RecreateCounterCategories);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ApplicationName != undefined) {\r\n loaded.ApplicationName(responseData.ApplicationName);\r\n }\r\n if (responseData.SiteName != undefined) {\r\n loaded.SiteName(responseData.SiteName);\r\n }\r\n if (responseData.AllowedLocales != undefined) {\r\n loaded.AllowedLocales(responseData.AllowedLocales);\r\n }\r\n if (responseData.SystemLocales != undefined) {\r\n loaded.SystemLocales(responseData.SystemLocales);\r\n }\r\n if (responseData.AlwaysPromptUser != undefined) {\r\n loaded.AlwaysPromptUser(responseData.AlwaysPromptUser);\r\n }\r\n if (responseData.ChartImageHandler != undefined) {\r\n loaded.ChartImageHandler(responseData.ChartImageHandler);\r\n }\r\n if (responseData.ExternalGroupRuleSet != undefined) {\r\n loaded.ExternalGroupRuleSet(responseData.ExternalGroupRuleSet);\r\n }\r\n if (responseData.AllowedAssemblies != undefined) {\r\n loaded.AllowedAssemblies(responseData.AllowedAssemblies);\r\n }\r\n if (responseData.LoadWatchers != undefined) {\r\n loaded.LoadWatchers(responseData.LoadWatchers);\r\n }\r\n if (responseData.ReportServerUrl != undefined) {\r\n loaded.ReportServerUrl(responseData.ReportServerUrl);\r\n }\r\n if (responseData.ExtraLogging != undefined) {\r\n loaded.ExtraLogging(responseData.ExtraLogging);\r\n }\r\n if (responseData.DefaultTheme != undefined) {\r\n loaded.DefaultTheme(responseData.DefaultTheme);\r\n }\r\n if (responseData.EditModeGroup != undefined) {\r\n loaded.EditModeGroup(responseData.EditModeGroup);\r\n }\r\n if (responseData.EnableAJAX != undefined) {\r\n loaded.EnableAJAX(responseData.EnableAJAX);\r\n }\r\n if (responseData.ShowRawException != undefined) {\r\n loaded.ShowRawException(responseData.ShowRawException);\r\n }\r\n if (responseData.RecreateCounterCategories != undefined) {\r\n loaded.RecreateCounterCategories(responseData.RecreateCounterCategories);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.FlintSetting', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ApplicationName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.SiteName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.AllowedLocales.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.SystemLocales.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.AlwaysPromptUser.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.ChartImageHandler.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.ExternalGroupRuleSet.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.AllowedAssemblies.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.LoadWatchers.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.ReportServerUrl.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.ExtraLogging.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.DefaultTheme.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.EditModeGroup.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.EnableAJAX.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.ShowRawException.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.RecreateCounterCategories.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ReportModel(options) {\r\n var defaults = {\r\n MenuText: '',\r\n ShowInReportsPane: false,\r\n ReportPath: '',\r\n Description: '',\r\n MenuPath: '',\r\n Title: '',\r\n SortOrder: 0,\r\n MVCActionID: null,\r\n ReportParametersModel: '',\r\n OutputFormatID: null,\r\n ReportTypeID: null,\r\n FilterCriteria: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.MenuText = ko.validatedObservable(settings.MenuText);\r\n this.ShowInReportsPane = ko.validatedObservable(settings.ShowInReportsPane);\r\n this.ReportPath = ko.validatedObservable(settings.ReportPath);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.MenuPath = ko.validatedObservable(settings.MenuPath);\r\n this.Title = ko.validatedObservable(settings.Title);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.MVCActionID = ko.validatedObservable(settings.MVCActionID);\r\n this.ReportParametersModel = ko.validatedObservable(settings.ReportParametersModel);\r\n this.OutputFormatID = ko.validatedObservable(settings.OutputFormatID);\r\n this.ReportTypeID = ko.validatedObservable(settings.ReportTypeID);\r\n this.FilterCriteria = ko.validatedObservable(settings.FilterCriteria);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.MVCAction = ko.observable();\r\n this.ReportFields = ko.observableArray([]);\r\n this.ReportFilters = ko.observableArray([]);\r\n this.ReportGroups = ko.observableArray([]);\r\n this.OutputFormat = ko.observable();\r\n this.ReportType = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.MenuText != undefined) {\r\n loaded.MenuText(responseData.MenuText);\r\n }\r\n if (responseData.ShowInReportsPane != undefined) {\r\n loaded.ShowInReportsPane(responseData.ShowInReportsPane);\r\n }\r\n if (responseData.ReportPath != undefined) {\r\n loaded.ReportPath(responseData.ReportPath);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.MenuPath != undefined) {\r\n loaded.MenuPath(responseData.MenuPath);\r\n }\r\n if (responseData.Title != undefined) {\r\n loaded.Title(responseData.Title);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.MVCActionID != undefined) {\r\n loaded.MVCActionID(responseData.MVCActionID);\r\n }\r\n if (responseData.ReportParametersModel != undefined) {\r\n loaded.ReportParametersModel(responseData.ReportParametersModel);\r\n }\r\n if (responseData.OutputFormatID != undefined) {\r\n loaded.OutputFormatID(responseData.OutputFormatID);\r\n }\r\n if (responseData.ReportTypeID != undefined) {\r\n loaded.ReportTypeID(responseData.ReportTypeID);\r\n }\r\n if (responseData.FilterCriteria != undefined) {\r\n loaded.FilterCriteria(responseData.FilterCriteria);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.MVCAction != null) {\r\n loaded.MVCAction(new smapi.entities.MVCActionModel().LoadFromResponse(responseData.MVCAction));\r\n }\r\n if (responseData.ReportFields != null && responseData.ReportFields.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReportFields.length; i++) {\r\n items.push(new smapi.entities.ReportFieldModel().LoadFromResponse(responseData.ReportFields[i]));\r\n }\r\n loaded.ReportFields(items);\r\n }\r\n if (responseData.ReportFilters != null && responseData.ReportFilters.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReportFilters.length; i++) {\r\n items.push(new smapi.entities.ReportFilterModel().LoadFromResponse(responseData.ReportFilters[i]));\r\n }\r\n loaded.ReportFilters(items);\r\n }\r\n if (responseData.ReportGroups != null && responseData.ReportGroups.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReportGroups.length; i++) {\r\n items.push(new smapi.entities.ReportGroupModel().LoadFromResponse(responseData.ReportGroups[i]));\r\n }\r\n loaded.ReportGroups(items);\r\n }\r\n if (responseData.OutputFormat != null) {\r\n loaded.OutputFormat(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.OutputFormat));\r\n }\r\n if (responseData.ReportType != null) {\r\n loaded.ReportType(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.ReportType));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.Report', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.MenuText.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ReportPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.MenuPath.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Title.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MVCActionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ReportParametersModel.extend({\r\n maxLength: {\r\n params: 200,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '200')\r\n }\r\n });\r\n this.OutputFormatID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ReportTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ReportLabelModel(options) {\r\n var defaults = {\r\n FieldPath: '',\r\n Label: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.FieldPath = ko.validatedObservable(settings.FieldPath);\r\n this.Label = ko.validatedObservable(settings.Label);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.FieldPath != undefined) {\r\n loaded.FieldPath(responseData.FieldPath);\r\n }\r\n if (responseData.Label != undefined) {\r\n loaded.Label(responseData.Label);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.ReportLabel', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.FieldPath.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 256,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '256')\r\n }\r\n });\r\n this.Label.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 256,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '256')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ReportFieldModel(options) {\r\n var defaults = {\r\n EntityFieldID: null,\r\n FormatID: null,\r\n DecimalPlacesID: null,\r\n AggregateFunctionID: null,\r\n ShowThousands: false,\r\n ShowCurrency: false,\r\n AdvancedFieldName: '',\r\n DisplayLabel: '',\r\n SortOrder: 0,\r\n ExpressionPath: '',\r\n ExpressionID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.EntityFieldID = ko.validatedObservable(settings.EntityFieldID);\r\n this.FormatID = ko.validatedObservable(settings.FormatID);\r\n this.DecimalPlacesID = ko.validatedObservable(settings.DecimalPlacesID);\r\n this.AggregateFunctionID = ko.validatedObservable(settings.AggregateFunctionID);\r\n this.ShowThousands = ko.validatedObservable(settings.ShowThousands);\r\n this.ShowCurrency = ko.validatedObservable(settings.ShowCurrency);\r\n this.AdvancedFieldName = ko.validatedObservable(settings.AdvancedFieldName);\r\n this.DisplayLabel = ko.validatedObservable(settings.DisplayLabel);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.ExpressionPath = ko.validatedObservable(settings.ExpressionPath);\r\n this.ExpressionID = ko.validatedObservable(settings.ExpressionID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.EntityField = ko.observable();\r\n this.Format = ko.observable();\r\n this.AggregateFunction = ko.observable();\r\n this.DecimalPlaces = ko.observable();\r\n this.Expression = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.EntityFieldID != undefined) {\r\n loaded.EntityFieldID(responseData.EntityFieldID);\r\n }\r\n if (responseData.FormatID != undefined) {\r\n loaded.FormatID(responseData.FormatID);\r\n }\r\n if (responseData.DecimalPlacesID != undefined) {\r\n loaded.DecimalPlacesID(responseData.DecimalPlacesID);\r\n }\r\n if (responseData.AggregateFunctionID != undefined) {\r\n loaded.AggregateFunctionID(responseData.AggregateFunctionID);\r\n }\r\n if (responseData.ShowThousands != undefined) {\r\n loaded.ShowThousands(responseData.ShowThousands);\r\n }\r\n if (responseData.ShowCurrency != undefined) {\r\n loaded.ShowCurrency(responseData.ShowCurrency);\r\n }\r\n if (responseData.AdvancedFieldName != undefined) {\r\n loaded.AdvancedFieldName(responseData.AdvancedFieldName);\r\n }\r\n if (responseData.DisplayLabel != undefined) {\r\n loaded.DisplayLabel(responseData.DisplayLabel);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.ExpressionPath != undefined) {\r\n loaded.ExpressionPath(responseData.ExpressionPath);\r\n }\r\n if (responseData.ExpressionID != undefined) {\r\n loaded.ExpressionID(responseData.ExpressionID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.EntityField != null) {\r\n loaded.EntityField(new smapi.entities.EntityFieldModel().LoadFromResponse(responseData.EntityField));\r\n }\r\n if (responseData.Format != null) {\r\n loaded.Format(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Format));\r\n }\r\n if (responseData.AggregateFunction != null) {\r\n loaded.AggregateFunction(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.AggregateFunction));\r\n }\r\n if (responseData.DecimalPlaces != null) {\r\n loaded.DecimalPlaces(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.DecimalPlaces));\r\n }\r\n if (responseData.Expression != null) {\r\n loaded.Expression(new smapi.entities.TRSExpressionModel().LoadFromResponse(responseData.Expression));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.ReportField', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.EntityFieldID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.FormatID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DecimalPlacesID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AggregateFunctionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AdvancedFieldName.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.DisplayLabel.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ExpressionPath.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ExpressionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ReportFilterModel(options) {\r\n var defaults = {\r\n EntityFieldID: null,\r\n OperatorID: null,\r\n ComparisonValue: '',\r\n UseAsParameter: false,\r\n LogicalOperator: null,\r\n SortOrder: 0,\r\n AdvancedFieldName: '',\r\n ExpressionPath: '',\r\n ExpressionID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.EntityFieldID = ko.validatedObservable(settings.EntityFieldID);\r\n this.OperatorID = ko.validatedObservable(settings.OperatorID);\r\n this.ComparisonValue = ko.validatedObservable(settings.ComparisonValue);\r\n this.UseAsParameter = ko.validatedObservable(settings.UseAsParameter);\r\n this.LogicalOperator = ko.validatedObservable(settings.LogicalOperator);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.AdvancedFieldName = ko.validatedObservable(settings.AdvancedFieldName);\r\n this.ExpressionPath = ko.validatedObservable(settings.ExpressionPath);\r\n this.ExpressionID = ko.validatedObservable(settings.ExpressionID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.EntityField = ko.observable();\r\n this.Operator = ko.observable();\r\n this.Expression = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.EntityFieldID != undefined) {\r\n loaded.EntityFieldID(responseData.EntityFieldID);\r\n }\r\n if (responseData.OperatorID != undefined) {\r\n loaded.OperatorID(responseData.OperatorID);\r\n }\r\n if (responseData.ComparisonValue != undefined) {\r\n loaded.ComparisonValue(responseData.ComparisonValue);\r\n }\r\n if (responseData.UseAsParameter != undefined) {\r\n loaded.UseAsParameter(responseData.UseAsParameter);\r\n }\r\n if (responseData.LogicalOperator != undefined) {\r\n loaded.LogicalOperator(responseData.LogicalOperator);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.AdvancedFieldName != undefined) {\r\n loaded.AdvancedFieldName(responseData.AdvancedFieldName);\r\n }\r\n if (responseData.ExpressionPath != undefined) {\r\n loaded.ExpressionPath(responseData.ExpressionPath);\r\n }\r\n if (responseData.ExpressionID != undefined) {\r\n loaded.ExpressionID(responseData.ExpressionID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.EntityField != null) {\r\n loaded.EntityField(new smapi.entities.EntityFieldModel().LoadFromResponse(responseData.EntityField));\r\n }\r\n if (responseData.Operator != null) {\r\n loaded.Operator(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Operator));\r\n }\r\n if (responseData.Expression != null) {\r\n loaded.Expression(new smapi.entities.TRSExpressionModel().LoadFromResponse(responseData.Expression));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.ReportFilter', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.EntityFieldID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.OperatorID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ComparisonValue.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AdvancedFieldName.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ExpressionPath.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ExpressionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ReportGroupModel(options) {\r\n var defaults = {\r\n EntityFieldID: null,\r\n ShowDetailRows: false,\r\n ShowHeaderRow: false,\r\n ShowFooterRow: false,\r\n SortOrder: 0,\r\n AdvancedFieldName: '',\r\n ExpressionPath: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.EntityFieldID = ko.validatedObservable(settings.EntityFieldID);\r\n this.ShowDetailRows = ko.validatedObservable(settings.ShowDetailRows);\r\n this.ShowHeaderRow = ko.validatedObservable(settings.ShowHeaderRow);\r\n this.ShowFooterRow = ko.validatedObservable(settings.ShowFooterRow);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.AdvancedFieldName = ko.validatedObservable(settings.AdvancedFieldName);\r\n this.ExpressionPath = ko.validatedObservable(settings.ExpressionPath);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.EntityField = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.EntityFieldID != undefined) {\r\n loaded.EntityFieldID(responseData.EntityFieldID);\r\n }\r\n if (responseData.ShowDetailRows != undefined) {\r\n loaded.ShowDetailRows(responseData.ShowDetailRows);\r\n }\r\n if (responseData.ShowHeaderRow != undefined) {\r\n loaded.ShowHeaderRow(responseData.ShowHeaderRow);\r\n }\r\n if (responseData.ShowFooterRow != undefined) {\r\n loaded.ShowFooterRow(responseData.ShowFooterRow);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.AdvancedFieldName != undefined) {\r\n loaded.AdvancedFieldName(responseData.AdvancedFieldName);\r\n }\r\n if (responseData.ExpressionPath != undefined) {\r\n loaded.ExpressionPath(responseData.ExpressionPath);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.EntityField != null) {\r\n loaded.EntityField(new smapi.entities.EntityFieldModel().LoadFromResponse(responseData.EntityField));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.ReportGroup', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.EntityFieldID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AdvancedFieldName.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ExpressionPath.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function TenantModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.Tenant', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function MenuItemModel(options) {\r\n var defaults = {\r\n ParentID: null,\r\n MenuItemSectionID: null,\r\n Name: '',\r\n Description: '',\r\n IsReportingMenu: false,\r\n NavigateToURL: '',\r\n ImageURL: '',\r\n ModuleID: null,\r\n Target: '',\r\n MenuSequence: 0,\r\n SortOrdinal: 0,\r\n BusinessMeaningName: '',\r\n MVCActionID: null,\r\n Placeholder: false,\r\n Location: '',\r\n GlossaryParentID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ParentID = ko.validatedObservable(settings.ParentID);\r\n this.MenuItemSectionID = ko.validatedObservable(settings.MenuItemSectionID);\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.IsReportingMenu = ko.validatedObservable(settings.IsReportingMenu);\r\n this.NavigateToURL = ko.validatedObservable(settings.NavigateToURL);\r\n this.ImageURL = ko.validatedObservable(settings.ImageURL);\r\n this.ModuleID = ko.validatedObservable(settings.ModuleID);\r\n this.Target = ko.validatedObservable(settings.Target);\r\n this.MenuSequence = ko.validatedObservable(settings.MenuSequence);\r\n this.SortOrdinal = ko.validatedObservable(settings.SortOrdinal);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.MVCActionID = ko.validatedObservable(settings.MVCActionID);\r\n this.Placeholder = ko.validatedObservable(settings.Placeholder);\r\n this.Location = ko.validatedObservable(settings.Location);\r\n this.GlossaryParentID = ko.validatedObservable(settings.GlossaryParentID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.MenuItems = ko.observableArray([]);\r\n this.Parent = ko.observable();\r\n this.Module = ko.observable();\r\n this.MVCAction = ko.observable();\r\n this.GlossaryParent = ko.observable();\r\n this.MenuItemSection = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ParentID != undefined) {\r\n loaded.ParentID(responseData.ParentID);\r\n }\r\n if (responseData.MenuItemSectionID != undefined) {\r\n loaded.MenuItemSectionID(responseData.MenuItemSectionID);\r\n }\r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.IsReportingMenu != undefined) {\r\n loaded.IsReportingMenu(responseData.IsReportingMenu);\r\n }\r\n if (responseData.NavigateToURL != undefined) {\r\n loaded.NavigateToURL(responseData.NavigateToURL);\r\n }\r\n if (responseData.ImageURL != undefined) {\r\n loaded.ImageURL(responseData.ImageURL);\r\n }\r\n if (responseData.ModuleID != undefined) {\r\n loaded.ModuleID(responseData.ModuleID);\r\n }\r\n if (responseData.Target != undefined) {\r\n loaded.Target(responseData.Target);\r\n }\r\n if (responseData.MenuSequence != undefined) {\r\n loaded.MenuSequence(responseData.MenuSequence);\r\n }\r\n if (responseData.SortOrdinal != undefined) {\r\n loaded.SortOrdinal(responseData.SortOrdinal);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.MVCActionID != undefined) {\r\n loaded.MVCActionID(responseData.MVCActionID);\r\n }\r\n if (responseData.Placeholder != undefined) {\r\n loaded.Placeholder(responseData.Placeholder);\r\n }\r\n if (responseData.Location != undefined) {\r\n loaded.Location(responseData.Location);\r\n }\r\n if (responseData.GlossaryParentID != undefined) {\r\n loaded.GlossaryParentID(responseData.GlossaryParentID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.MenuItems != null && responseData.MenuItems.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.MenuItems.length; i++) {\r\n items.push(new smapi.entities.MenuItemModel().LoadFromResponse(responseData.MenuItems[i]));\r\n }\r\n loaded.MenuItems(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.entities.MenuItemModel().LoadFromResponse(responseData.Parent));\r\n }\r\n if (responseData.Module != null) {\r\n loaded.Module(new smapi.entities.ModuleModel().LoadFromResponse(responseData.Module));\r\n }\r\n if (responseData.MVCAction != null) {\r\n loaded.MVCAction(new smapi.entities.MVCActionModel().LoadFromResponse(responseData.MVCAction));\r\n }\r\n if (responseData.GlossaryParent != null) {\r\n loaded.GlossaryParent(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.GlossaryParent));\r\n }\r\n if (responseData.MenuItemSection != null) {\r\n loaded.MenuItemSection(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.MenuItemSection));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.MenuItem', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ParentID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MenuItemSectionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.NavigateToURL.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ImageURL.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ModuleID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Target.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.MenuSequence.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.MVCActionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Location.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.GlossaryParentID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function PageActionModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n ResourceKey: '',\r\n MenuItemID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ResourceKey = ko.validatedObservable(settings.ResourceKey);\r\n this.MenuItemID = ko.validatedObservable(settings.MenuItemID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.MenuItem = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ResourceKey != undefined) {\r\n loaded.ResourceKey(responseData.ResourceKey);\r\n }\r\n if (responseData.MenuItemID != undefined) {\r\n loaded.MenuItemID(responseData.MenuItemID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.MenuItem != null) {\r\n loaded.MenuItem(new smapi.entities.MenuItemModel().LoadFromResponse(responseData.MenuItem));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.PageAction', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 150,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '150')\r\n }\r\n });\r\n this.ResourceKey.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.MenuItemID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function MVCActionModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n Controller: '',\r\n Action: '',\r\n Area: '',\r\n ExcludeFromHistory: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.Controller = ko.validatedObservable(settings.Controller);\r\n this.Action = ko.validatedObservable(settings.Action);\r\n this.Area = ko.validatedObservable(settings.Area);\r\n this.ExcludeFromHistory = ko.validatedObservable(settings.ExcludeFromHistory);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.Controller != undefined) {\r\n loaded.Controller(responseData.Controller);\r\n }\r\n if (responseData.Action != undefined) {\r\n loaded.Action(responseData.Action);\r\n }\r\n if (responseData.Area != undefined) {\r\n loaded.Area(responseData.Area);\r\n }\r\n if (responseData.ExcludeFromHistory != undefined) {\r\n loaded.ExcludeFromHistory(responseData.ExcludeFromHistory);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.MVCAction', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n this.Controller.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Action.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Area.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function DataAuditModel(options) {\r\n var defaults = {\r\n Name: '',\r\n AuditEntityID: null,\r\n AuditCreate: false,\r\n AuditUpdate: false,\r\n AuditDelete: false,\r\n AuditAll: false,\r\n BusinessMeaningName: '',\r\n Description: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.AuditEntityID = ko.validatedObservable(settings.AuditEntityID);\r\n this.AuditCreate = ko.validatedObservable(settings.AuditCreate);\r\n this.AuditUpdate = ko.validatedObservable(settings.AuditUpdate);\r\n this.AuditDelete = ko.validatedObservable(settings.AuditDelete);\r\n this.AuditAll = ko.validatedObservable(settings.AuditAll);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Properties = ko.observableArray([]);\r\n this.Relationships = ko.observableArray([]);\r\n this.AuditEntity = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.AuditEntityID != undefined) {\r\n loaded.AuditEntityID(responseData.AuditEntityID);\r\n }\r\n if (responseData.AuditCreate != undefined) {\r\n loaded.AuditCreate(responseData.AuditCreate);\r\n }\r\n if (responseData.AuditUpdate != undefined) {\r\n loaded.AuditUpdate(responseData.AuditUpdate);\r\n }\r\n if (responseData.AuditDelete != undefined) {\r\n loaded.AuditDelete(responseData.AuditDelete);\r\n }\r\n if (responseData.AuditAll != undefined) {\r\n loaded.AuditAll(responseData.AuditAll);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Properties != null && responseData.Properties.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Properties.length; i++) {\r\n items.push(new smapi.entities.EntityFieldModel().LoadFromResponse(responseData.Properties[i]));\r\n }\r\n loaded.Properties(items);\r\n }\r\n if (responseData.Relationships != null && responseData.Relationships.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Relationships.length; i++) {\r\n items.push(new smapi.entities.EntityRelationshipModel().LoadFromResponse(responseData.Relationships[i]));\r\n }\r\n loaded.Relationships(items);\r\n }\r\n if (responseData.AuditEntity != null) {\r\n loaded.AuditEntity(new smapi.entities.EntityModel().LoadFromResponse(responseData.AuditEntity));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.DataAudit', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.AuditEntityID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AuditHistoryModel(options) {\r\n var defaults = {\r\n AuditKey: '',\r\n ChangedData: '',\r\n EntityID: 0,\r\n FieldID: 0,\r\n RelationshipID: 0,\r\n InstanceID: 0,\r\n InstanceGID: null,\r\n EntityName: '',\r\n FieldRelationship: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.AuditKey = ko.validatedObservable(settings.AuditKey);\r\n this.ChangedData = ko.validatedObservable(settings.ChangedData);\r\n this.EntityID = ko.validatedObservable(settings.EntityID);\r\n this.FieldID = ko.validatedObservable(settings.FieldID);\r\n this.RelationshipID = ko.validatedObservable(settings.RelationshipID);\r\n this.InstanceID = ko.validatedObservable(settings.InstanceID);\r\n this.InstanceGID = ko.validatedObservable(settings.InstanceGID);\r\n this.EntityName = ko.validatedObservable(settings.EntityName);\r\n this.FieldRelationship = ko.validatedObservable(settings.FieldRelationship);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.AuditKey != undefined) {\r\n loaded.AuditKey(responseData.AuditKey);\r\n }\r\n if (responseData.ChangedData != undefined) {\r\n loaded.ChangedData(responseData.ChangedData);\r\n }\r\n if (responseData.EntityID != undefined) {\r\n loaded.EntityID(responseData.EntityID);\r\n }\r\n if (responseData.FieldID != undefined) {\r\n loaded.FieldID(responseData.FieldID);\r\n }\r\n if (responseData.RelationshipID != undefined) {\r\n loaded.RelationshipID(responseData.RelationshipID);\r\n }\r\n if (responseData.InstanceID != undefined) {\r\n loaded.InstanceID(responseData.InstanceID);\r\n }\r\n if (responseData.InstanceGID != undefined) {\r\n loaded.InstanceGID(responseData.InstanceGID);\r\n }\r\n if (responseData.EntityName != undefined) {\r\n loaded.EntityName(responseData.EntityName);\r\n }\r\n if (responseData.FieldRelationship != undefined) {\r\n loaded.FieldRelationship(responseData.FieldRelationship);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.AuditHistory', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.AuditKey.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ChangedData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.EntityID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.FieldID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RelationshipID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.InstanceID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.InstanceGID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.EntityName.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.FieldRelationship.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ContextMenuModel(options) {\r\n var defaults = {\r\n MenuItemSectionID: 0,\r\n ParentEntityID: 0,\r\n TargetEntityID: 0,\r\n Path: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.MenuItemSectionID = ko.validatedObservable(settings.MenuItemSectionID);\r\n this.ParentEntityID = ko.validatedObservable(settings.ParentEntityID);\r\n this.TargetEntityID = ko.validatedObservable(settings.TargetEntityID);\r\n this.Path = ko.validatedObservable(settings.Path);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.ParentEntity = ko.observable();\r\n this.TargetEntity = ko.observable();\r\n this.MenuItemSection = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.MenuItemSectionID != undefined) {\r\n loaded.MenuItemSectionID(responseData.MenuItemSectionID);\r\n }\r\n if (responseData.ParentEntityID != undefined) {\r\n loaded.ParentEntityID(responseData.ParentEntityID);\r\n }\r\n if (responseData.TargetEntityID != undefined) {\r\n loaded.TargetEntityID(responseData.TargetEntityID);\r\n }\r\n if (responseData.Path != undefined) {\r\n loaded.Path(responseData.Path);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.ParentEntity != null) {\r\n loaded.ParentEntity(new smapi.entities.EntityModel().LoadFromResponse(responseData.ParentEntity));\r\n }\r\n if (responseData.TargetEntity != null) {\r\n loaded.TargetEntity(new smapi.entities.EntityModel().LoadFromResponse(responseData.TargetEntity));\r\n }\r\n if (responseData.MenuItemSection != null) {\r\n loaded.MenuItemSection(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.MenuItemSection));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.ContextMenu', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.MenuItemSectionID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ParentEntityID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TargetEntityID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Path.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function LinkModel(options) {\r\n var defaults = {\r\n LinkLabel: '',\r\n SourceUrl: '',\r\n DestUrl: '',\r\n LinkActionTypeID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.LinkLabel = ko.validatedObservable(settings.LinkLabel);\r\n this.SourceUrl = ko.validatedObservable(settings.SourceUrl);\r\n this.DestUrl = ko.validatedObservable(settings.DestUrl);\r\n this.LinkActionTypeID = ko.validatedObservable(settings.LinkActionTypeID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.LinkActionType = ko.observable();\r\n this.LinkCounters = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.LinkLabel != undefined) {\r\n loaded.LinkLabel(responseData.LinkLabel);\r\n }\r\n if (responseData.SourceUrl != undefined) {\r\n loaded.SourceUrl(responseData.SourceUrl);\r\n }\r\n if (responseData.DestUrl != undefined) {\r\n loaded.DestUrl(responseData.DestUrl);\r\n }\r\n if (responseData.LinkActionTypeID != undefined) {\r\n loaded.LinkActionTypeID(responseData.LinkActionTypeID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.LinkActionType != null) {\r\n loaded.LinkActionType(new smapi.entities.LinkActionTypeModel().LoadFromResponse(responseData.LinkActionType));\r\n }\r\n if (responseData.LinkCounters != null && responseData.LinkCounters.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.LinkCounters.length; i++) {\r\n items.push(new smapi.entities.LinkCounterModel().LoadFromResponse(responseData.LinkCounters[i]));\r\n }\r\n loaded.LinkCounters(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.Link', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.LinkLabel.extend({\r\n maxLength: {\r\n params: 256,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '256')\r\n }\r\n });\r\n this.SourceUrl.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.DestUrl.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.LinkActionTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function LinkCounterModel(options) {\r\n var defaults = {\r\n TrackingCode: '',\r\n SentCount: 0,\r\n ActionCount: 0,\r\n LinkID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.TrackingCode = ko.validatedObservable(settings.TrackingCode);\r\n this.SentCount = ko.validatedObservable(settings.SentCount);\r\n this.ActionCount = ko.validatedObservable(settings.ActionCount);\r\n this.LinkID = ko.validatedObservable(settings.LinkID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Link = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.TrackingCode != undefined) {\r\n loaded.TrackingCode(responseData.TrackingCode);\r\n }\r\n if (responseData.SentCount != undefined) {\r\n loaded.SentCount(responseData.SentCount);\r\n }\r\n if (responseData.ActionCount != undefined) {\r\n loaded.ActionCount(responseData.ActionCount);\r\n }\r\n if (responseData.LinkID != undefined) {\r\n loaded.LinkID(responseData.LinkID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Link != null) {\r\n loaded.Link(new smapi.entities.LinkModel().LoadFromResponse(responseData.Link));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.LinkCounter', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.TrackingCode.extend({\r\n maxLength: {\r\n params: 30,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '30')\r\n }\r\n });\r\n this.SentCount.extend({\r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ActionCount.extend({\r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.LinkID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function LinkActionTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.LinkActionType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function SecurityGroupManagementConditionModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SecurityGroupManagementID: null,\r\n BaseTypeID: null,\r\n Operator: '',\r\n Value: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n ExpressionID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SecurityGroupManagementID = ko.validatedObservable(settings.SecurityGroupManagementID);\r\n this.BaseTypeID = ko.validatedObservable(settings.BaseTypeID);\r\n this.Operator = ko.validatedObservable(settings.Operator);\r\n this.Value = ko.validatedObservable(settings.Value);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ExpressionID = ko.validatedObservable(settings.ExpressionID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.BaseType = ko.observable();\r\n this.SecurityGroupManagement = ko.observable();\r\n this.Expression = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SecurityGroupManagementID != undefined) {\r\n loaded.SecurityGroupManagementID(responseData.SecurityGroupManagementID);\r\n }\r\n if (responseData.BaseTypeID != undefined) {\r\n loaded.BaseTypeID(responseData.BaseTypeID);\r\n }\r\n if (responseData.Operator != undefined) {\r\n loaded.Operator(responseData.Operator);\r\n }\r\n if (responseData.Value != undefined) {\r\n loaded.Value(responseData.Value);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ExpressionID != undefined) {\r\n loaded.ExpressionID(responseData.ExpressionID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.BaseType != null) {\r\n loaded.BaseType(new smapi.entities.EntityModel().LoadFromResponse(responseData.BaseType));\r\n }\r\n if (responseData.SecurityGroupManagement != null) {\r\n loaded.SecurityGroupManagement(new smapi.entities.SecurityGroupManagementModel().LoadFromResponse(responseData.SecurityGroupManagement));\r\n }\r\n if (responseData.Expression != null) {\r\n loaded.Expression(new smapi.entities.TRSExpressionModel().LoadFromResponse(responseData.Expression));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.SecurityGroupManagementCondition', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.SecurityGroupManagementID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BaseTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Operator.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 20,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '20')\r\n }\r\n });\r\n this.Value.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ExpressionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function SecurityGroupManagementModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n Enabled: false,\r\n SortOrder: 0,\r\n ParentEntityID: 0,\r\n ChildEntityID: 0,\r\n RuleSetID: 0,\r\n BusinessMeaningName: '',\r\n ParentExpressionID: null,\r\n ChildExpressionID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.Enabled = ko.validatedObservable(settings.Enabled);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.ParentEntityID = ko.validatedObservable(settings.ParentEntityID);\r\n this.ChildEntityID = ko.validatedObservable(settings.ChildEntityID);\r\n this.RuleSetID = ko.validatedObservable(settings.RuleSetID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ParentExpressionID = ko.validatedObservable(settings.ParentExpressionID);\r\n this.ChildExpressionID = ko.validatedObservable(settings.ChildExpressionID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.ParentEntity = ko.observable();\r\n this.ChildEntity = ko.observable();\r\n this.Conditions = ko.observableArray([]);\r\n this.Groups = ko.observableArray([]);\r\n this.RuleSet = ko.observable();\r\n this.ParentExpression = ko.observable();\r\n this.ChildExpression = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.Enabled != undefined) {\r\n loaded.Enabled(responseData.Enabled);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.ParentEntityID != undefined) {\r\n loaded.ParentEntityID(responseData.ParentEntityID);\r\n }\r\n if (responseData.ChildEntityID != undefined) {\r\n loaded.ChildEntityID(responseData.ChildEntityID);\r\n }\r\n if (responseData.RuleSetID != undefined) {\r\n loaded.RuleSetID(responseData.RuleSetID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ParentExpressionID != undefined) {\r\n loaded.ParentExpressionID(responseData.ParentExpressionID);\r\n }\r\n if (responseData.ChildExpressionID != undefined) {\r\n loaded.ChildExpressionID(responseData.ChildExpressionID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.ParentEntity != null) {\r\n loaded.ParentEntity(new smapi.entities.EntityModel().LoadFromResponse(responseData.ParentEntity));\r\n }\r\n if (responseData.ChildEntity != null) {\r\n loaded.ChildEntity(new smapi.entities.EntityModel().LoadFromResponse(responseData.ChildEntity));\r\n }\r\n if (responseData.Conditions != null && responseData.Conditions.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Conditions.length; i++) {\r\n items.push(new smapi.entities.SecurityGroupManagementConditionModel().LoadFromResponse(responseData.Conditions[i]));\r\n }\r\n loaded.Conditions(items);\r\n }\r\n if (responseData.Groups != null && responseData.Groups.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Groups.length; i++) {\r\n items.push(new smapi.entities.GroupModel().LoadFromResponse(responseData.Groups[i]));\r\n }\r\n loaded.Groups(items);\r\n }\r\n if (responseData.RuleSet != null) {\r\n loaded.RuleSet(new smapi.entities.TRSRuleSetModel().LoadFromResponse(responseData.RuleSet));\r\n }\r\n if (responseData.ParentExpression != null) {\r\n loaded.ParentExpression(new smapi.entities.TRSExpressionModel().LoadFromResponse(responseData.ParentExpression));\r\n }\r\n if (responseData.ChildExpression != null) {\r\n loaded.ChildExpression(new smapi.entities.TRSExpressionModel().LoadFromResponse(responseData.ChildExpression));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.SecurityGroupManagement', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ParentEntityID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ChildEntityID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RuleSetID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ParentExpressionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ChildExpressionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function TRSExpressionNodeModel(options) {\r\n var defaults = {\r\n InstanceName: '',\r\n PropertyName: '',\r\n SystemType: '',\r\n EntityFieldID: null,\r\n EntityRelationshipID: null,\r\n ReverseEntityRelationshipID: null,\r\n ExpressionID: null,\r\n NodeOrdinal: 0,\r\n NodeType: null,\r\n IsCollection: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.InstanceName = ko.validatedObservable(settings.InstanceName);\r\n this.PropertyName = ko.validatedObservable(settings.PropertyName);\r\n this.SystemType = ko.validatedObservable(settings.SystemType);\r\n this.EntityFieldID = ko.validatedObservable(settings.EntityFieldID);\r\n this.EntityRelationshipID = ko.validatedObservable(settings.EntityRelationshipID);\r\n this.ReverseEntityRelationshipID = ko.validatedObservable(settings.ReverseEntityRelationshipID);\r\n this.ExpressionID = ko.validatedObservable(settings.ExpressionID);\r\n this.NodeOrdinal = ko.validatedObservable(settings.NodeOrdinal);\r\n this.NodeType = ko.validatedObservable(settings.NodeType);\r\n this.IsCollection = ko.validatedObservable(settings.IsCollection);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.EntityField = ko.observable();\r\n this.EntityRelationship = ko.observable();\r\n this.ReverseEntityRelationship = ko.observable();\r\n this.Expression = ko.observable();\r\n this.Filters = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.InstanceName != undefined) {\r\n loaded.InstanceName(responseData.InstanceName);\r\n }\r\n if (responseData.PropertyName != undefined) {\r\n loaded.PropertyName(responseData.PropertyName);\r\n }\r\n if (responseData.SystemType != undefined) {\r\n loaded.SystemType(responseData.SystemType);\r\n }\r\n if (responseData.EntityFieldID != undefined) {\r\n loaded.EntityFieldID(responseData.EntityFieldID);\r\n }\r\n if (responseData.EntityRelationshipID != undefined) {\r\n loaded.EntityRelationshipID(responseData.EntityRelationshipID);\r\n }\r\n if (responseData.ReverseEntityRelationshipID != undefined) {\r\n loaded.ReverseEntityRelationshipID(responseData.ReverseEntityRelationshipID);\r\n }\r\n if (responseData.ExpressionID != undefined) {\r\n loaded.ExpressionID(responseData.ExpressionID);\r\n }\r\n if (responseData.NodeOrdinal != undefined) {\r\n loaded.NodeOrdinal(responseData.NodeOrdinal);\r\n }\r\n if (responseData.NodeType != undefined) {\r\n loaded.NodeType(responseData.NodeType);\r\n }\r\n if (responseData.IsCollection != undefined) {\r\n loaded.IsCollection(responseData.IsCollection);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.EntityField != null) {\r\n loaded.EntityField(new smapi.entities.EntityFieldModel().LoadFromResponse(responseData.EntityField));\r\n }\r\n if (responseData.EntityRelationship != null) {\r\n loaded.EntityRelationship(new smapi.entities.EntityRelationshipModel().LoadFromResponse(responseData.EntityRelationship));\r\n }\r\n if (responseData.ReverseEntityRelationship != null) {\r\n loaded.ReverseEntityRelationship(new smapi.entities.EntityRelationshipModel().LoadFromResponse(responseData.ReverseEntityRelationship));\r\n }\r\n if (responseData.Expression != null) {\r\n loaded.Expression(new smapi.entities.TRSExpressionModel().LoadFromResponse(responseData.Expression));\r\n }\r\n if (responseData.Filters != null && responseData.Filters.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Filters.length; i++) {\r\n items.push(new smapi.entities.TRSExpressionFilterModel().LoadFromResponse(responseData.Filters[i]));\r\n }\r\n loaded.Filters(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.TRSExpressionNode', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.InstanceName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.PropertyName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SystemType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.EntityFieldID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EntityRelationshipID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ReverseEntityRelationshipID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ExpressionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.NodeOrdinal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.NodeType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function TRSExpressionModel(options) {\r\n var defaults = {\r\n ExpressionType: null,\r\n RawExpression: '',\r\n EnteredValue: '',\r\n BoundEntityID: null,\r\n BoundSystemType: '',\r\n BoundInstanceName: '',\r\n ComparisonFieldID: null,\r\n ComparisonFieldSystemType: '',\r\n RuleSetStr: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ExpressionType = ko.validatedObservable(settings.ExpressionType);\r\n this.RawExpression = ko.validatedObservable(settings.RawExpression);\r\n this.EnteredValue = ko.validatedObservable(settings.EnteredValue);\r\n this.BoundEntityID = ko.validatedObservable(settings.BoundEntityID);\r\n this.BoundSystemType = ko.validatedObservable(settings.BoundSystemType);\r\n this.BoundInstanceName = ko.validatedObservable(settings.BoundInstanceName);\r\n this.ComparisonFieldID = ko.validatedObservable(settings.ComparisonFieldID);\r\n this.ComparisonFieldSystemType = ko.validatedObservable(settings.ComparisonFieldSystemType);\r\n this.RuleSetStr = ko.validatedObservable(settings.RuleSetStr);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.BoundEntity = ko.observable();\r\n this.ComparisonField = ko.observable();\r\n this.Nodes = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ExpressionType != undefined) {\r\n loaded.ExpressionType(responseData.ExpressionType);\r\n }\r\n if (responseData.RawExpression != undefined) {\r\n loaded.RawExpression(responseData.RawExpression);\r\n }\r\n if (responseData.EnteredValue != undefined) {\r\n loaded.EnteredValue(responseData.EnteredValue);\r\n }\r\n if (responseData.BoundEntityID != undefined) {\r\n loaded.BoundEntityID(responseData.BoundEntityID);\r\n }\r\n if (responseData.BoundSystemType != undefined) {\r\n loaded.BoundSystemType(responseData.BoundSystemType);\r\n }\r\n if (responseData.BoundInstanceName != undefined) {\r\n loaded.BoundInstanceName(responseData.BoundInstanceName);\r\n }\r\n if (responseData.ComparisonFieldID != undefined) {\r\n loaded.ComparisonFieldID(responseData.ComparisonFieldID);\r\n }\r\n if (responseData.ComparisonFieldSystemType != undefined) {\r\n loaded.ComparisonFieldSystemType(responseData.ComparisonFieldSystemType);\r\n }\r\n if (responseData.RuleSetStr != undefined) {\r\n loaded.RuleSetStr(responseData.RuleSetStr);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.BoundEntity != null) {\r\n loaded.BoundEntity(new smapi.entities.EntityModel().LoadFromResponse(responseData.BoundEntity));\r\n }\r\n if (responseData.ComparisonField != null) {\r\n loaded.ComparisonField(new smapi.entities.EntityFieldModel().LoadFromResponse(responseData.ComparisonField));\r\n }\r\n if (responseData.Nodes != null && responseData.Nodes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Nodes.length; i++) {\r\n items.push(new smapi.entities.TRSExpressionNodeModel().LoadFromResponse(responseData.Nodes[i]));\r\n }\r\n loaded.Nodes(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.TRSExpression', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ExpressionType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.RawExpression.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.EnteredValue.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BoundEntityID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BoundSystemType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BoundInstanceName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ComparisonFieldID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ComparisonFieldSystemType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function TRSExpressionFilterModel(options) {\r\n var defaults = {\r\n Name: '',\r\n SourceExpressionID: null,\r\n ComparisonExpressionID: null,\r\n Operator: null,\r\n ExpressionNodeID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.SourceExpressionID = ko.validatedObservable(settings.SourceExpressionID);\r\n this.ComparisonExpressionID = ko.validatedObservable(settings.ComparisonExpressionID);\r\n this.Operator = ko.validatedObservable(settings.Operator);\r\n this.ExpressionNodeID = ko.validatedObservable(settings.ExpressionNodeID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.SourceExpression = ko.observable();\r\n this.ComparisonExpression = ko.observable();\r\n this.ExpressionNode = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.SourceExpressionID != undefined) {\r\n loaded.SourceExpressionID(responseData.SourceExpressionID);\r\n }\r\n if (responseData.ComparisonExpressionID != undefined) {\r\n loaded.ComparisonExpressionID(responseData.ComparisonExpressionID);\r\n }\r\n if (responseData.Operator != undefined) {\r\n loaded.Operator(responseData.Operator);\r\n }\r\n if (responseData.ExpressionNodeID != undefined) {\r\n loaded.ExpressionNodeID(responseData.ExpressionNodeID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.SourceExpression != null) {\r\n loaded.SourceExpression(new smapi.entities.TRSExpressionModel().LoadFromResponse(responseData.SourceExpression));\r\n }\r\n if (responseData.ComparisonExpression != null) {\r\n loaded.ComparisonExpression(new smapi.entities.TRSExpressionModel().LoadFromResponse(responseData.ComparisonExpression));\r\n }\r\n if (responseData.ExpressionNode != null) {\r\n loaded.ExpressionNode(new smapi.entities.TRSExpressionNodeModel().LoadFromResponse(responseData.ExpressionNode));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.TRSExpressionFilter', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SourceExpressionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ComparisonExpressionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Operator.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExpressionNodeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function LifecycleEventModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.LifecycleEvent', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function EntityLifecycleEventModel(options) {\r\n var defaults = {\r\n EntityID: 0,\r\n TRSRulesetID: 0,\r\n LifecycleEventID: 0,\r\n SortOrder: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.EntityID = ko.validatedObservable(settings.EntityID);\r\n this.TRSRulesetID = ko.validatedObservable(settings.TRSRulesetID);\r\n this.LifecycleEventID = ko.validatedObservable(settings.LifecycleEventID);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.TRSRuleset = ko.observable();\r\n this.LifecycleEvent = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.EntityID != undefined) {\r\n loaded.EntityID(responseData.EntityID);\r\n }\r\n if (responseData.TRSRulesetID != undefined) {\r\n loaded.TRSRulesetID(responseData.TRSRulesetID);\r\n }\r\n if (responseData.LifecycleEventID != undefined) {\r\n loaded.LifecycleEventID(responseData.LifecycleEventID);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.TRSRuleset != null) {\r\n loaded.TRSRuleset(new smapi.entities.TRSRuleSetModel().LoadFromResponse(responseData.TRSRuleset));\r\n }\r\n if (responseData.LifecycleEvent != null) {\r\n loaded.LifecycleEvent(new smapi.entities.LifecycleEventModel().LoadFromResponse(responseData.LifecycleEvent));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.EntityLifecycleEvent', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.EntityID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TRSRulesetID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.LifecycleEventID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BuildVersionModel(options) {\r\n var defaults = {\r\n Version: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Version = ko.validatedObservable(settings.Version);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Version != undefined) {\r\n loaded.Version(responseData.Version);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BuildVersion', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Version.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ApplicationSettingsModel(options) {\r\n var defaults = {\r\n SettingName: '',\r\n SettingValue: '',\r\n SettingSortOrder: 0,\r\n SettingLabel: '',\r\n SettingDescription: '',\r\n IsRequired: false,\r\n IsHidden: false,\r\n FieldGroupID: 0,\r\n FormatString: '',\r\n RegExFormat: '',\r\n Mask: '',\r\n RegExMatch: '',\r\n TypeID: null,\r\n SimpleTypeID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.SettingName = ko.validatedObservable(settings.SettingName);\r\n this.SettingValue = ko.validatedObservable(settings.SettingValue);\r\n this.SettingSortOrder = ko.validatedObservable(settings.SettingSortOrder);\r\n this.SettingLabel = ko.validatedObservable(settings.SettingLabel);\r\n this.SettingDescription = ko.validatedObservable(settings.SettingDescription);\r\n this.IsRequired = ko.validatedObservable(settings.IsRequired);\r\n this.IsHidden = ko.validatedObservable(settings.IsHidden);\r\n this.FieldGroupID = ko.validatedObservable(settings.FieldGroupID);\r\n this.FormatString = ko.validatedObservable(settings.FormatString);\r\n this.RegExFormat = ko.validatedObservable(settings.RegExFormat);\r\n this.Mask = ko.validatedObservable(settings.Mask);\r\n this.RegExMatch = ko.validatedObservable(settings.RegExMatch);\r\n this.TypeID = ko.validatedObservable(settings.TypeID);\r\n this.SimpleTypeID = ko.validatedObservable(settings.SimpleTypeID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.FieldGroup = ko.observable();\r\n this.Type = ko.observable();\r\n this.SimpleType = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.SettingName != undefined) {\r\n loaded.SettingName(responseData.SettingName);\r\n }\r\n if (responseData.SettingValue != undefined) {\r\n loaded.SettingValue(responseData.SettingValue);\r\n }\r\n if (responseData.SettingSortOrder != undefined) {\r\n loaded.SettingSortOrder(responseData.SettingSortOrder);\r\n }\r\n if (responseData.SettingLabel != undefined) {\r\n loaded.SettingLabel(responseData.SettingLabel);\r\n }\r\n if (responseData.SettingDescription != undefined) {\r\n loaded.SettingDescription(responseData.SettingDescription);\r\n }\r\n if (responseData.IsRequired != undefined) {\r\n loaded.IsRequired(responseData.IsRequired);\r\n }\r\n if (responseData.IsHidden != undefined) {\r\n loaded.IsHidden(responseData.IsHidden);\r\n }\r\n if (responseData.FieldGroupID != undefined) {\r\n loaded.FieldGroupID(responseData.FieldGroupID);\r\n }\r\n if (responseData.FormatString != undefined) {\r\n loaded.FormatString(responseData.FormatString);\r\n }\r\n if (responseData.RegExFormat != undefined) {\r\n loaded.RegExFormat(responseData.RegExFormat);\r\n }\r\n if (responseData.Mask != undefined) {\r\n loaded.Mask(responseData.Mask);\r\n }\r\n if (responseData.RegExMatch != undefined) {\r\n loaded.RegExMatch(responseData.RegExMatch);\r\n }\r\n if (responseData.TypeID != undefined) {\r\n loaded.TypeID(responseData.TypeID);\r\n }\r\n if (responseData.SimpleTypeID != undefined) {\r\n loaded.SimpleTypeID(responseData.SimpleTypeID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.FieldGroup != null) {\r\n loaded.FieldGroup(new smapi.entities.ApplicationSettingFieldGroupModel().LoadFromResponse(responseData.FieldGroup));\r\n }\r\n if (responseData.Type != null) {\r\n loaded.Type(new smapi.entities.ApplicationSettingFieldTypeModel().LoadFromResponse(responseData.Type));\r\n }\r\n if (responseData.SimpleType != null) {\r\n loaded.SimpleType(new smapi.entities.ApplicationSettingSimpleFieldTypeModel().LoadFromResponse(responseData.SimpleType));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.ApplicationSettings', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.SettingName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.SettingSortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SettingLabel.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.FieldGroupID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.FormatString.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.RegExFormat.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Mask.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.RegExMatch.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.TypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SimpleTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function SDKPackageModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n Version: '',\r\n SortOrder: 0,\r\n AuthorID: null,\r\n Enabled: false,\r\n SystemProtected: false,\r\n RichDescription: '',\r\n DateOriginallyPublished: null,\r\n DateLastRevisionPublished: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.Version = ko.validatedObservable(settings.Version);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.AuthorID = ko.validatedObservable(settings.AuthorID);\r\n this.Enabled = ko.validatedObservable(settings.Enabled);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.RichDescription = ko.validatedObservable(settings.RichDescription);\r\n this.DateOriginallyPublished = ko.validatedObservable(settings.DateOriginallyPublished);\r\n this.DateLastRevisionPublished = ko.validatedObservable(settings.DateLastRevisionPublished);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Author = ko.observable();\r\n this.PrerequisitePackages = ko.observableArray([]);\r\n this.Parameters = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.Version != undefined) {\r\n loaded.Version(responseData.Version);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.AuthorID != undefined) {\r\n loaded.AuthorID(responseData.AuthorID);\r\n }\r\n if (responseData.Enabled != undefined) {\r\n loaded.Enabled(responseData.Enabled);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.RichDescription != undefined) {\r\n loaded.RichDescription(responseData.RichDescription);\r\n }\r\n if (responseData.DateOriginallyPublished != undefined) {\r\n loaded.DateOriginallyPublished(responseData.DateOriginallyPublished);\r\n }\r\n if (responseData.DateLastRevisionPublished != undefined) {\r\n loaded.DateLastRevisionPublished(responseData.DateLastRevisionPublished);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Author != null) {\r\n loaded.Author(new smapi.entities.SDKPackageAuthorModel().LoadFromResponse(responseData.Author));\r\n }\r\n if (responseData.PrerequisitePackages != null && responseData.PrerequisitePackages.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.PrerequisitePackages.length; i++) {\r\n items.push(new smapi.entities.SDKPackageModel().LoadFromResponse(responseData.PrerequisitePackages[i]));\r\n }\r\n loaded.PrerequisitePackages(items);\r\n }\r\n if (responseData.Parameters != null && responseData.Parameters.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Parameters.length; i++) {\r\n items.push(new smapi.entities.SDKPackageParameterModel().LoadFromResponse(responseData.Parameters[i]));\r\n }\r\n loaded.Parameters(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.SDKPackage', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Version.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AuthorID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DateOriginallyPublished.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.DateLastRevisionPublished.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function SDKPackageParameterModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n Value: '',\r\n Version: '',\r\n SortOrder: 0,\r\n SDKPackageID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.Value = ko.validatedObservable(settings.Value);\r\n this.Version = ko.validatedObservable(settings.Version);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.SDKPackageID = ko.validatedObservable(settings.SDKPackageID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.SDKPackage = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.Value != undefined) {\r\n loaded.Value(responseData.Value);\r\n }\r\n if (responseData.Version != undefined) {\r\n loaded.Version(responseData.Version);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.SDKPackageID != undefined) {\r\n loaded.SDKPackageID(responseData.SDKPackageID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.SDKPackage != null) {\r\n loaded.SDKPackage(new smapi.entities.SDKPackageModel().LoadFromResponse(responseData.SDKPackage));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.SDKPackageParameter', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Value.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Version.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SDKPackageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function FieldFormatModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n Format: '',\r\n Type: '',\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.Format = ko.validatedObservable(settings.Format);\r\n this.Type = ko.validatedObservable(settings.Type);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.Format != undefined) {\r\n loaded.Format(responseData.Format);\r\n }\r\n if (responseData.Type != undefined) {\r\n loaded.Type(responseData.Type);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.FieldFormat', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Format.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.Type.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function BusinessMeaningNameUsedModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n EntityID: 0,\r\n Location: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.EntityID = ko.validatedObservable(settings.EntityID);\r\n this.Location = ko.validatedObservable(settings.Location);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Entity = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.EntityID != undefined) {\r\n loaded.EntityID(responseData.EntityID);\r\n }\r\n if (responseData.Location != undefined) {\r\n loaded.Location(responseData.Location);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Entity != null) {\r\n loaded.Entity(new smapi.entities.EntityModel().LoadFromResponse(responseData.Entity));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.BusinessMeaningNameUsed', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.EntityID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Location.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function SDKPackageAuthorModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n AuthorName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.AuthorName = ko.validatedObservable(settings.AuthorName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.AuthorName != undefined) {\r\n loaded.AuthorName(responseData.AuthorName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.SDKPackageAuthor', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.Description.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.AuthorName.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ApplicationSettingTabModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.ApplicationSettingTab', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ApplicationSettingFieldGroupModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n TabID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.TabID = ko.validatedObservable(settings.TabID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Tab = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.TabID != undefined) {\r\n loaded.TabID(responseData.TabID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Tab != null) {\r\n loaded.Tab(new smapi.entities.ApplicationSettingTabModel().LoadFromResponse(responseData.Tab));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.ApplicationSettingFieldGroup', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TabID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ApplicationSettingSimpleFieldTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.ApplicationSettingSimpleFieldType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ApplicationSettingFieldTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n GlossaryID: null,\r\n SimpleTypeID: null,\r\n IsGlossary: false,\r\n IncludeProtocol: false,\r\n IsRelativePath: false,\r\n Separator: '',\r\n ObjectValue: '',\r\n ObjectText: '',\r\n IsNewlineSeparated: false,\r\n CharactersEscaped: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.GlossaryID = ko.validatedObservable(settings.GlossaryID);\r\n this.SimpleTypeID = ko.validatedObservable(settings.SimpleTypeID);\r\n this.IsGlossary = ko.validatedObservable(settings.IsGlossary);\r\n this.IncludeProtocol = ko.validatedObservable(settings.IncludeProtocol);\r\n this.IsRelativePath = ko.validatedObservable(settings.IsRelativePath);\r\n this.Separator = ko.validatedObservable(settings.Separator);\r\n this.ObjectValue = ko.validatedObservable(settings.ObjectValue);\r\n this.ObjectText = ko.validatedObservable(settings.ObjectText);\r\n this.IsNewlineSeparated = ko.validatedObservable(settings.IsNewlineSeparated);\r\n this.CharactersEscaped = ko.validatedObservable(settings.CharactersEscaped);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.GlossaryParent = ko.observable();\r\n this.SimpleType = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.GlossaryID != undefined) {\r\n loaded.GlossaryID(responseData.GlossaryID);\r\n }\r\n if (responseData.SimpleTypeID != undefined) {\r\n loaded.SimpleTypeID(responseData.SimpleTypeID);\r\n }\r\n if (responseData.IsGlossary != undefined) {\r\n loaded.IsGlossary(responseData.IsGlossary);\r\n }\r\n if (responseData.IncludeProtocol != undefined) {\r\n loaded.IncludeProtocol(responseData.IncludeProtocol);\r\n }\r\n if (responseData.IsRelativePath != undefined) {\r\n loaded.IsRelativePath(responseData.IsRelativePath);\r\n }\r\n if (responseData.Separator != undefined) {\r\n loaded.Separator(responseData.Separator);\r\n }\r\n if (responseData.ObjectValue != undefined) {\r\n loaded.ObjectValue(responseData.ObjectValue);\r\n }\r\n if (responseData.ObjectText != undefined) {\r\n loaded.ObjectText(responseData.ObjectText);\r\n }\r\n if (responseData.IsNewlineSeparated != undefined) {\r\n loaded.IsNewlineSeparated(responseData.IsNewlineSeparated);\r\n }\r\n if (responseData.CharactersEscaped != undefined) {\r\n loaded.CharactersEscaped(responseData.CharactersEscaped);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.GlossaryParent != null) {\r\n loaded.GlossaryParent(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.GlossaryParent));\r\n }\r\n if (responseData.SimpleType != null) {\r\n loaded.SimpleType(new smapi.entities.ApplicationSettingSimpleFieldTypeModel().LoadFromResponse(responseData.SimpleType));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.ApplicationSettingFieldType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n this.GlossaryID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SimpleTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Separator.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ObjectValue.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ObjectText.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function IntegrationSettingsModel(options) {\r\n var defaults = {\r\n SettingName: '',\r\n SettingValue: '',\r\n SettingSortOrder: 0,\r\n SettingLabel: '',\r\n SettingDescription: '',\r\n IsRequired: false,\r\n IsHidden: false,\r\n IntegratedApplicationID: null,\r\n FieldGroupID: null,\r\n TypeID: null,\r\n SimpleTypeID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.SettingName = ko.validatedObservable(settings.SettingName);\r\n this.SettingValue = ko.validatedObservable(settings.SettingValue);\r\n this.SettingSortOrder = ko.validatedObservable(settings.SettingSortOrder);\r\n this.SettingLabel = ko.validatedObservable(settings.SettingLabel);\r\n this.SettingDescription = ko.validatedObservable(settings.SettingDescription);\r\n this.IsRequired = ko.validatedObservable(settings.IsRequired);\r\n this.IsHidden = ko.validatedObservable(settings.IsHidden);\r\n this.IntegratedApplicationID = ko.validatedObservable(settings.IntegratedApplicationID);\r\n this.FieldGroupID = ko.validatedObservable(settings.FieldGroupID);\r\n this.TypeID = ko.validatedObservable(settings.TypeID);\r\n this.SimpleTypeID = ko.validatedObservable(settings.SimpleTypeID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.IntegratedApplication = ko.observable();\r\n this.FieldGroup = ko.observable();\r\n this.Type = ko.observable();\r\n this.SimpleType = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.SettingName != undefined) {\r\n loaded.SettingName(responseData.SettingName);\r\n }\r\n if (responseData.SettingValue != undefined) {\r\n loaded.SettingValue(responseData.SettingValue);\r\n }\r\n if (responseData.SettingSortOrder != undefined) {\r\n loaded.SettingSortOrder(responseData.SettingSortOrder);\r\n }\r\n if (responseData.SettingLabel != undefined) {\r\n loaded.SettingLabel(responseData.SettingLabel);\r\n }\r\n if (responseData.SettingDescription != undefined) {\r\n loaded.SettingDescription(responseData.SettingDescription);\r\n }\r\n if (responseData.IsRequired != undefined) {\r\n loaded.IsRequired(responseData.IsRequired);\r\n }\r\n if (responseData.IsHidden != undefined) {\r\n loaded.IsHidden(responseData.IsHidden);\r\n }\r\n if (responseData.IntegratedApplicationID != undefined) {\r\n loaded.IntegratedApplicationID(responseData.IntegratedApplicationID);\r\n }\r\n if (responseData.FieldGroupID != undefined) {\r\n loaded.FieldGroupID(responseData.FieldGroupID);\r\n }\r\n if (responseData.TypeID != undefined) {\r\n loaded.TypeID(responseData.TypeID);\r\n }\r\n if (responseData.SimpleTypeID != undefined) {\r\n loaded.SimpleTypeID(responseData.SimpleTypeID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.IntegratedApplication != null) {\r\n loaded.IntegratedApplication(new smapi.entities.IntegratedApplicationModel().LoadFromResponse(responseData.IntegratedApplication));\r\n }\r\n if (responseData.FieldGroup != null) {\r\n loaded.FieldGroup(new smapi.entities.IntegrationSettingFieldGroupModel().LoadFromResponse(responseData.FieldGroup));\r\n }\r\n if (responseData.Type != null) {\r\n loaded.Type(new smapi.entities.ApplicationSettingFieldTypeModel().LoadFromResponse(responseData.Type));\r\n }\r\n if (responseData.SimpleType != null) {\r\n loaded.SimpleType(new smapi.entities.ApplicationSettingSimpleFieldTypeModel().LoadFromResponse(responseData.SimpleType));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.IntegrationSettings', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.SettingName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.SettingSortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SettingLabel.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.IntegratedApplicationID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.FieldGroupID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SimpleTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function IntegrationSettingTabModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.IntegrationSettingTab', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function IntegrationSettingFieldGroupModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n TabID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.TabID = ko.validatedObservable(settings.TabID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Tab = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.TabID != undefined) {\r\n loaded.TabID(responseData.TabID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Tab != null) {\r\n loaded.Tab(new smapi.entities.IntegrationSettingTabModel().LoadFromResponse(responseData.Tab));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.IntegrationSettingFieldGroup', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TabID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function IntegratedApplicationModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n PollingFrequency: 0,\r\n PollingFrequencyUnit: '',\r\n ListenerProcessClass: '',\r\n ListenerProcessActive: false,\r\n ListenerProcessLastActiveDate: null,\r\n ListenerProcessAssembly: '',\r\n CustomController: '',\r\n CustomControllerAfterSaveAction: '',\r\n ExtPollingFrequency: 0,\r\n ExtPollingFrequencyUnit: '',\r\n ExtListenerProcessClass: '',\r\n ExtListenerProcessActive: false,\r\n ExtListenerProcessLastActiveDate: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.PollingFrequency = ko.validatedObservable(settings.PollingFrequency);\r\n this.PollingFrequencyUnit = ko.validatedObservable(settings.PollingFrequencyUnit);\r\n this.ListenerProcessClass = ko.validatedObservable(settings.ListenerProcessClass);\r\n this.ListenerProcessActive = ko.validatedObservable(settings.ListenerProcessActive);\r\n this.ListenerProcessLastActiveDate = ko.validatedObservable(settings.ListenerProcessLastActiveDate);\r\n this.ListenerProcessAssembly = ko.validatedObservable(settings.ListenerProcessAssembly);\r\n this.CustomController = ko.validatedObservable(settings.CustomController);\r\n this.CustomControllerAfterSaveAction = ko.validatedObservable(settings.CustomControllerAfterSaveAction);\r\n this.ExtPollingFrequency = ko.validatedObservable(settings.ExtPollingFrequency);\r\n this.ExtPollingFrequencyUnit = ko.validatedObservable(settings.ExtPollingFrequencyUnit);\r\n this.ExtListenerProcessClass = ko.validatedObservable(settings.ExtListenerProcessClass);\r\n this.ExtListenerProcessActive = ko.validatedObservable(settings.ExtListenerProcessActive);\r\n this.ExtListenerProcessLastActiveDate = ko.validatedObservable(settings.ExtListenerProcessLastActiveDate);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.PollingFrequency != undefined) {\r\n loaded.PollingFrequency(responseData.PollingFrequency);\r\n }\r\n if (responseData.PollingFrequencyUnit != undefined) {\r\n loaded.PollingFrequencyUnit(responseData.PollingFrequencyUnit);\r\n }\r\n if (responseData.ListenerProcessClass != undefined) {\r\n loaded.ListenerProcessClass(responseData.ListenerProcessClass);\r\n }\r\n if (responseData.ListenerProcessActive != undefined) {\r\n loaded.ListenerProcessActive(responseData.ListenerProcessActive);\r\n }\r\n if (responseData.ListenerProcessLastActiveDate != undefined) {\r\n loaded.ListenerProcessLastActiveDate(responseData.ListenerProcessLastActiveDate);\r\n }\r\n if (responseData.ListenerProcessAssembly != undefined) {\r\n loaded.ListenerProcessAssembly(responseData.ListenerProcessAssembly);\r\n }\r\n if (responseData.CustomController != undefined) {\r\n loaded.CustomController(responseData.CustomController);\r\n }\r\n if (responseData.CustomControllerAfterSaveAction != undefined) {\r\n loaded.CustomControllerAfterSaveAction(responseData.CustomControllerAfterSaveAction);\r\n }\r\n if (responseData.ExtPollingFrequency != undefined) {\r\n loaded.ExtPollingFrequency(responseData.ExtPollingFrequency);\r\n }\r\n if (responseData.ExtPollingFrequencyUnit != undefined) {\r\n loaded.ExtPollingFrequencyUnit(responseData.ExtPollingFrequencyUnit);\r\n }\r\n if (responseData.ExtListenerProcessClass != undefined) {\r\n loaded.ExtListenerProcessClass(responseData.ExtListenerProcessClass);\r\n }\r\n if (responseData.ExtListenerProcessActive != undefined) {\r\n loaded.ExtListenerProcessActive(responseData.ExtListenerProcessActive);\r\n }\r\n if (responseData.ExtListenerProcessLastActiveDate != undefined) {\r\n loaded.ExtListenerProcessLastActiveDate(responseData.ExtListenerProcessLastActiveDate);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.IntegratedApplication', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n this.PollingFrequency.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: 1,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_GreaterThan0_Key), '1')\r\n }, \r\n max: {\r\n params: 1728000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_LessThan0_Key), '1728000')\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PollingFrequencyUnit.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ListenerProcessClass.extend({\r\n maxLength: {\r\n params: 1000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1000')\r\n }\r\n });\r\n this.ListenerProcessLastActiveDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ListenerProcessAssembly.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.CustomController.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.CustomControllerAfterSaveAction.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ExtPollingFrequency.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: 1,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_GreaterThan0_Key), '1')\r\n }, \r\n max: {\r\n params: 1728000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_LessThan0_Key), '1728000')\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ExtPollingFrequencyUnit.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ExtListenerProcessClass.extend({\r\n maxLength: {\r\n params: 1000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1000')\r\n }\r\n });\r\n this.ExtListenerProcessLastActiveDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function PasswordPatternModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n HasToContainLowerCase: false,\r\n HasToContainUpperCase: false,\r\n HasToContainDigit: false,\r\n HasToContainSpecialCharacter: false,\r\n SortOrder: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.HasToContainLowerCase = ko.validatedObservable(settings.HasToContainLowerCase);\r\n this.HasToContainUpperCase = ko.validatedObservable(settings.HasToContainUpperCase);\r\n this.HasToContainDigit = ko.validatedObservable(settings.HasToContainDigit);\r\n this.HasToContainSpecialCharacter = ko.validatedObservable(settings.HasToContainSpecialCharacter);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.HasToContainLowerCase != undefined) {\r\n loaded.HasToContainLowerCase(responseData.HasToContainLowerCase);\r\n }\r\n if (responseData.HasToContainUpperCase != undefined) {\r\n loaded.HasToContainUpperCase(responseData.HasToContainUpperCase);\r\n }\r\n if (responseData.HasToContainDigit != undefined) {\r\n loaded.HasToContainDigit(responseData.HasToContainDigit);\r\n }\r\n if (responseData.HasToContainSpecialCharacter != undefined) {\r\n loaded.HasToContainSpecialCharacter(responseData.HasToContainSpecialCharacter);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.PasswordPattern', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -32768,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 32767,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function PackageFileTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n Extension: '',\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.Extension = ko.validatedObservable(settings.Extension);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.Extension != undefined) {\r\n loaded.Extension(responseData.Extension);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.PackageFileType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Extension.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 20,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '20')\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ApplicationServiceModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n VirtualDirectory: '',\r\n IsWebApp: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.VirtualDirectory = ko.validatedObservable(settings.VirtualDirectory);\r\n this.IsWebApp = ko.validatedObservable(settings.IsWebApp);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.VirtualDirectory != undefined) {\r\n loaded.VirtualDirectory(responseData.VirtualDirectory);\r\n }\r\n if (responseData.IsWebApp != undefined) {\r\n loaded.IsWebApp(responseData.IsWebApp);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.ApplicationService', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.VirtualDirectory.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function SupportAssemblyModel(options) {\r\n var defaults = {\r\n FileName: '',\r\n AssemblyName: '',\r\n Version: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.FileName = ko.validatedObservable(settings.FileName);\r\n this.AssemblyName = ko.validatedObservable(settings.AssemblyName);\r\n this.Version = ko.validatedObservable(settings.Version);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.ApplicationServices = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.FileName != undefined) {\r\n loaded.FileName(responseData.FileName);\r\n }\r\n if (responseData.AssemblyName != undefined) {\r\n loaded.AssemblyName(responseData.AssemblyName);\r\n }\r\n if (responseData.Version != undefined) {\r\n loaded.Version(responseData.Version);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.ApplicationServices != null && responseData.ApplicationServices.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ApplicationServices.length; i++) {\r\n items.push(new smapi.entities.ApplicationServiceModel().LoadFromResponse(responseData.ApplicationServices[i]));\r\n }\r\n loaded.ApplicationServices(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.SupportAssembly', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.FileName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.AssemblyName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Version.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 20,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '20')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function PackageResourceModel(options) {\r\n var defaults = {\r\n FileName: '',\r\n SourcePath: '',\r\n DestPath: '',\r\n Enabled: false,\r\n PackageID: null,\r\n ApplicationServiceID: null,\r\n FileTypeID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.FileName = ko.validatedObservable(settings.FileName);\r\n this.SourcePath = ko.validatedObservable(settings.SourcePath);\r\n this.DestPath = ko.validatedObservable(settings.DestPath);\r\n this.Enabled = ko.validatedObservable(settings.Enabled);\r\n this.PackageID = ko.validatedObservable(settings.PackageID);\r\n this.ApplicationServiceID = ko.validatedObservable(settings.ApplicationServiceID);\r\n this.FileTypeID = ko.validatedObservable(settings.FileTypeID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Package = ko.observable();\r\n this.ApplicationService = ko.observable();\r\n this.FileType = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.FileName != undefined) {\r\n loaded.FileName(responseData.FileName);\r\n }\r\n if (responseData.SourcePath != undefined) {\r\n loaded.SourcePath(responseData.SourcePath);\r\n }\r\n if (responseData.DestPath != undefined) {\r\n loaded.DestPath(responseData.DestPath);\r\n }\r\n if (responseData.Enabled != undefined) {\r\n loaded.Enabled(responseData.Enabled);\r\n }\r\n if (responseData.PackageID != undefined) {\r\n loaded.PackageID(responseData.PackageID);\r\n }\r\n if (responseData.ApplicationServiceID != undefined) {\r\n loaded.ApplicationServiceID(responseData.ApplicationServiceID);\r\n }\r\n if (responseData.FileTypeID != undefined) {\r\n loaded.FileTypeID(responseData.FileTypeID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Package != null) {\r\n loaded.Package(new smapi.entities.SDKPackageModel().LoadFromResponse(responseData.Package));\r\n }\r\n if (responseData.ApplicationService != null) {\r\n loaded.ApplicationService(new smapi.entities.ApplicationServiceModel().LoadFromResponse(responseData.ApplicationService));\r\n }\r\n if (responseData.FileType != null) {\r\n loaded.FileType(new smapi.entities.PackageFileTypeModel().LoadFromResponse(responseData.FileType));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.Flint.BLL.Entities.PackageResource', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.FileName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SourcePath.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.DestPath.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.PackageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ApplicationServiceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.FileTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function LoadTemplates(basePath, targetDiv) {\r\n var uri = basePath + '/SMAPI.entities.combined-1.0.0.html';\r\n jQuery.ajax({\r\n url: uri,\r\n type: 'GET',\r\n async: false,\r\n success: function (template) {\r\n jQuery(\"#\" + targetDiv).append(template);\r\n }\r\n });\r\n }\r\n \r\n \r\n $.extend(true, smapi.entities, {\r\n AssemblyVersionModel: AssemblyVersionModel,\r\n AssemblyScriptModel: AssemblyScriptModel,\r\n UserModel: UserModel,\r\n TRSIdentityModel: TRSIdentityModel,\r\n TRSGroupIdentityModel: TRSGroupIdentityModel,\r\n TRSMembershipUserModel: TRSMembershipUserModel,\r\n TRSMembershipUserCertificateModel: TRSMembershipUserCertificateModel,\r\n LocaleModel: LocaleModel,\r\n WebApplicationModel: WebApplicationModel,\r\n AuthenticationProviderDefModel: AuthenticationProviderDefModel,\r\n EntityBuilderModel: EntityBuilderModel,\r\n BuilderEnumerationModel: BuilderEnumerationModel,\r\n BuilderInterfaceModel: BuilderInterfaceModel,\r\n BuilderInterfacePropertyModel: BuilderInterfacePropertyModel,\r\n BuilderInterfaceRelationshipModel: BuilderInterfaceRelationshipModel,\r\n BuilderIndexerModel: BuilderIndexerModel,\r\n BuilderIndexModel: BuilderIndexModel,\r\n BuilderIndexEqualPropertyModel: BuilderIndexEqualPropertyModel,\r\n BuilderIndexRangePropertyModel: BuilderIndexRangePropertyModel,\r\n BuilderEntityModel: BuilderEntityModel,\r\n BuilderEntityFieldModel: BuilderEntityFieldModel,\r\n BuilderEntityRelationshipModel: BuilderEntityRelationshipModel,\r\n BuilderEntityLookupRelationshipModel: BuilderEntityLookupRelationshipModel,\r\n BulderEntityBusinessMeaningRelationshipModel: BulderEntityBusinessMeaningRelationshipModel,\r\n BuilderEntityRelationshipLinkModel: BuilderEntityRelationshipLinkModel,\r\n BuilderEntityQueryModel: BuilderEntityQueryModel,\r\n QueryPartModel: QueryPartModel,\r\n QueryPartGroupModel: QueryPartGroupModel,\r\n QueryPartBindingModel: QueryPartBindingModel,\r\n QueryPartLiteralModel: QueryPartLiteralModel,\r\n BuilderEntityDBIndexModel: BuilderEntityDBIndexModel,\r\n BuilderEntityDBIndexFieldModel: BuilderEntityDBIndexFieldModel,\r\n BuilderEntityFieldMVCAttributeModel: BuilderEntityFieldMVCAttributeModel,\r\n BuilderEntityRelationshipMVCAttributeModel: BuilderEntityRelationshipMVCAttributeModel,\r\n LookupGroupModel: LookupGroupModel,\r\n GlossaryModel: GlossaryModel,\r\n ModuleAssemblyModel: ModuleAssemblyModel,\r\n SiteModel: SiteModel,\r\n ModuleModel: ModuleModel,\r\n LookupGroupingModel: LookupGroupingModel,\r\n LookupGroupingAssociationModel: LookupGroupingAssociationModel,\r\n EntityModel: EntityModel,\r\n EntityFieldModel: EntityFieldModel,\r\n EntityRelationshipModel: EntityRelationshipModel,\r\n EntityRelationshipLinkModel: EntityRelationshipLinkModel,\r\n CurrencyModel: CurrencyModel,\r\n EntityDBIndexModel: EntityDBIndexModel,\r\n EntityDBIndexFieldModel: EntityDBIndexFieldModel,\r\n EntityFieldMVCAttributeModel: EntityFieldMVCAttributeModel,\r\n EntityRelationshipMVCAttributeModel: EntityRelationshipMVCAttributeModel,\r\n ResourceRoleModel: ResourceRoleModel,\r\n MatchListTargetModel: MatchListTargetModel,\r\n MatchListModel: MatchListModel,\r\n MatchListItemModel: MatchListItemModel,\r\n SystemLogModel: SystemLogModel,\r\n SystemLogMessageModel: SystemLogMessageModel,\r\n SystemLogExceptionModel: SystemLogExceptionModel,\r\n SystemLogExtendedPropertyModel: SystemLogExtendedPropertyModel,\r\n ReportExecModel: ReportExecModel,\r\n PermissionModel: PermissionModel,\r\n RoleModel: RoleModel,\r\n GroupLevelModel: GroupLevelModel,\r\n GroupRowAccessModel: GroupRowAccessModel,\r\n EntityRowSecurityGroupsModel: EntityRowSecurityGroupsModel,\r\n GroupModel: GroupModel,\r\n TRSRuleSetModel: TRSRuleSetModel,\r\n PersonalizationPathModel: PersonalizationPathModel,\r\n PersonalizationAllUsersModel: PersonalizationAllUsersModel,\r\n PersonalizationPerUserModel: PersonalizationPerUserModel,\r\n ProfileModel: ProfileModel,\r\n FlintCredentialModel: FlintCredentialModel,\r\n IconModel: IconModel,\r\n AlertModel: AlertModel,\r\n UserRuleSetModel: UserRuleSetModel,\r\n GroupRuleSetModel: GroupRuleSetModel,\r\n DataChangedWatcherModel: DataChangedWatcherModel,\r\n DataChangedWatchPropertyModel: DataChangedWatchPropertyModel,\r\n LoggerModel: LoggerModel,\r\n LookupTablesLoaderModel: LookupTablesLoaderModel,\r\n FlintSettingModel: FlintSettingModel,\r\n ReportModel: ReportModel,\r\n ReportLabelModel: ReportLabelModel,\r\n ReportFieldModel: ReportFieldModel,\r\n ReportFilterModel: ReportFilterModel,\r\n ReportGroupModel: ReportGroupModel,\r\n TenantModel: TenantModel,\r\n MenuItemModel: MenuItemModel,\r\n PageActionModel: PageActionModel,\r\n MVCActionModel: MVCActionModel,\r\n DataAuditModel: DataAuditModel,\r\n AuditHistoryModel: AuditHistoryModel,\r\n ContextMenuModel: ContextMenuModel,\r\n LinkModel: LinkModel,\r\n LinkCounterModel: LinkCounterModel,\r\n LinkActionTypeModel: LinkActionTypeModel,\r\n SecurityGroupManagementConditionModel: SecurityGroupManagementConditionModel,\r\n SecurityGroupManagementModel: SecurityGroupManagementModel,\r\n TRSExpressionNodeModel: TRSExpressionNodeModel,\r\n TRSExpressionModel: TRSExpressionModel,\r\n TRSExpressionFilterModel: TRSExpressionFilterModel,\r\n LifecycleEventModel: LifecycleEventModel,\r\n EntityLifecycleEventModel: EntityLifecycleEventModel,\r\n BuildVersionModel: BuildVersionModel,\r\n ApplicationSettingsModel: ApplicationSettingsModel,\r\n SDKPackageModel: SDKPackageModel,\r\n SDKPackageParameterModel: SDKPackageParameterModel,\r\n FieldFormatModel: FieldFormatModel,\r\n BusinessMeaningNameUsedModel: BusinessMeaningNameUsedModel,\r\n SDKPackageAuthorModel: SDKPackageAuthorModel,\r\n ApplicationSettingTabModel: ApplicationSettingTabModel,\r\n ApplicationSettingFieldGroupModel: ApplicationSettingFieldGroupModel,\r\n ApplicationSettingSimpleFieldTypeModel: ApplicationSettingSimpleFieldTypeModel,\r\n ApplicationSettingFieldTypeModel: ApplicationSettingFieldTypeModel,\r\n IntegrationSettingsModel: IntegrationSettingsModel,\r\n IntegrationSettingTabModel: IntegrationSettingTabModel,\r\n IntegrationSettingFieldGroupModel: IntegrationSettingFieldGroupModel,\r\n IntegratedApplicationModel: IntegratedApplicationModel,\r\n PasswordPatternModel: PasswordPatternModel,\r\n PackageFileTypeModel: PackageFileTypeModel,\r\n ApplicationServiceModel: ApplicationServiceModel,\r\n SupportAssemblyModel: SupportAssemblyModel,\r\n PackageResourceModel: PackageResourceModel,\r\n LoadTemplates: LoadTemplates\r\n });\r\n})(jQuery);\r\n"]}