{"version":3,"file":"SMAPI.community.combined-1.0.0.min.js","names":["$","undefined","LoadSMAPI","sm","portal","vm","custom","callCustomization","utility","isNullOrEmpty","smapi","window","extend","each","proxy","noop","isFunction","Globalize","community","AddressAssociationModel","options","settings","jQuery","Name","Description","SortOrder","BusinessMeaningName","ID","GID","CreatedBy","DateCreated","ModifiedBy","DateModified","APILink","self","this","ko","observable","validatedObservable","LoadFromResponse","responseData","loaded","LoadFromLink","baseApiUrl","access","getById","data","textStatus","jqXHR","container","ApiContainerModel","Status","Payload","ValidationTitle","ValidationMessages","statusText","required","message","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","length","AddressTypeAssociationModel","AddressAssociation","observableArray","items","Array","i","push","ElectronicAddressModel","defaults","ContactID","TypeEntryID","Value","EffectiveFrom","EffectiveTo","DoNotContact","NoContactReasonID","AddressTypeID","AddressTimingTypeID","Contact","AddressType","TypeEntry","Associations","NoContactReason","AddressTimingType","customData","ContactModel","entities","GlossaryModel","date","validate_MustBeADate_Key","RegionModel","CountryModel","CountryCode","RegionID","ISOCode","Region","GoverningDistrict","GoverningDistrictModel","UTCTimezoneModel","UTCOffsetHours","UTCOffsetMinutes","ExampleCountryList","SystemProtected","MailingAddressModel","Address1","Address2","Address3","City","StateID","PostalCode","County","CountryID","ValidatedWhen","NCOAIsInvalid","NCOADateCheck","NCOACode","Latitude","Longitude","GEOCode","UnitNumber","Floor","BuildingName","StreetNumber","StreetName","StreetDirection","StreetSuffixName","PostOfficeBoxNumber","Municipality","GoverningDistrictName","CareOf","Miscellaneous1","Miscellaneous2","Miscellaneous3","TextValue","HTMLValue","StreetSuffixID","MailingAddressTemplateID","UTCTimezoneID","UTCTimezone","StreetSuffix","MailingAddressTemplate","Country","StreetSuffixModel","MailingAddressTemplateModel","PhoneNumberModel","Number","Extension","CountryPrefixCode","AreaCityCode","PhoneCarrierID","PhoneCarrier","PhoneCarrierModel","ContactNoteModel","CategoryID","NoteDate","Subject","Note","UserContactNoteGID","ContactTypeID","Category","ContactType","ContactInterestModel","EntryDate","InterestID","RankedChoice","Narrative","Interests","EventManagementModel","EventTypeModel","ClassType","EventManagementID","EventTypeDate","PersonID","Person","EventManagement","PersonModel","ContactGreetingTypeModel","FormatRuleSetGID","ContactPronounSetModel","FamiliarPersonal","FormalPersonal","FamiliarImpersonal","FormalImpersonal","FamiliarPosessive","FormalPosessive","FamiliarImpersonalPosessive","FormalImpersonalPosessive","FamiliarReflexive","FormalReflexive","ContactGreetingModel","ContactGreetingTypeID","Greeting","ContactGreetingType","DefaultSiteTemplate","ShowForAllCountries","CapitalizeName","UseNamePrefix","Countries","Fields","MailingAddressTemplateCountryModel","MailingAddressTemplateFieldModel","DefaultCountryTemplate","LabelResourceKey","MailingLabelRowOrdinal","MailingLabelColumnOrdinal","TemplateFormRowOrdinal","UseInMailingLabel","CapitalizeInMailingLabel","AbbreviateInMailingLabel","IsRequired","CustomCSSClass","FieldTypeID","FieldType","MailingAddressFieldTypeModel","MailingAddressTemplateFieldSeparatorModel","Field1ID","Field2ID","SeparatorTypeID","Field1","Field2","SeparatorType","MailingAddressTemplateFieldSeparatorTypeModel","BoundFieldName","HoldCategoryLocationModel","Modules","ModuleModel","HoldCategoryModel","StopRegistration","StopOnlineRegistration","StopTranscript","StopGradeCard","StopStatement","HoldLocation","HoldStatusModel","ExternalCode","ContactHoldModel","HoldCategoryID","HoldStatusID","StartDate","EndDate","VoidReason","VoidUserID","VoidDate","AlertsID","HoldCategory","HoldStatus","VoidUser","Alert","UserModel","ContactAlertModel","Holds","UserContactNoteModel","Starred","CopyToContactNote","CRMRankModel","DisplayName","ShowOnDirectory","ContactPronounSetID","DefaultLocaleID","CRMRankID","CRMRank","DefaultLocale","Addresses","PhoneNumbers","ElectronicAddresses","Pictures","Notes","Greetings","MyARelations","MyZRelations","Alerts","UserNotes","DocumentRepository","ContactPronounSet","LocaleModel","ContactPictureModel","ContactRelationshipModel","DocumentRepositoryModel","PersonPreviousModel","SalutationID","GivenName","MiddleName","Surname","SuffixID","GenderID","DateOfChange","Salutation","Suffix","Gender","PictureTypeID","MIMEType","FileName","FileData","PictureType","EmergencyContactModel","EmergencyContactTypeID","EmergencyContactName","EmergencyContactType","FavoriteGroupModel","ContactFavoriteModel","FavoriteGroupID","FavoriteGroup","PersonIdentifierTypeModel","IsEditDenied","IsDeleteDenied","OrganizationIdentifierTypeModel","OrganizationTypes","PersonIdentifierModel","Identifier","IdentifierTypeID","IdentifierType","PreferredGivenName","TaxID","BirthDay","BirthMonth","BirthYear","DateOfBirth","SavedAge","DateOfDeath","Deceased","AgeCalculatedOn","LeadTypeID","SIN","LeadType","Previous","EmergencyContacts","DemographicData","Employment","AccessibilityNeed","ContactFavorites","IDs","EventTypes","DepartmentalContacts","LeadTypeModel","DemographicDataModel","EmploymentModel","AccessibilityNeedModel","DepartmentalContactModel","matchedPeopleData","smLocalDate","smDateOfBirth","Validate_MustBeProperDateOfBirth_Key","OrganizationIdentifierModel","OrganizationID","Organization","OrganizationModel","OrganizationContracts","ContractDocumentModel","ReligiousDenominationModel","ReligionID","Religion","PlaceOfWorshipModel","DenominationID","Denomination","RelationshipTypeModel","RulesetRelationshipTypeID","ContactFormatRuleSetGID","NavigatorScreenGID","ReciprocialTypeID","RelationshipCategoryID","ReciprocialType","RelationshipCategory","RelationshipCategoryModel","RelationshipTypes","RelationshipTypeID","NodeAID","NodeZID","BeginDate","NodeA","NodeZ","RelationshipType","ComputerModel","Manufacturer","RAMSize","HarddriveSize","ParentMaritalStatusID","IsHispanic","MaritalStatusID","BirthCountryID","BirthStateID","BirthCountyID","BirthCity","ResidentCountryID","ResidentStateID","ResidentCountyID","OriginStateID","OriginCountyID","Veteran","IndigenousPersonDeclarationID","IsGuardiansAttendedcollege","NumOfDependents","NumOfDependentsInHousehold","DriversLicenseStateID","DriversLicense","PlaceOfWorshipID","LiveWithID","ConvictedFelon","CriminalConviction","BirthCountry","BirthGoverningDistrict","ResidentCountry","ResidentGoverningDistrict","OriginGoverningDistrict","DriversLicenseGoverningDistrict","PlaceOfWorship","Citizenships","MilitaryService","Languages","ParentMaritalStatus","EthnicOrigins","MaritalStatus","BirthCounty","ResidentCounty","OriginCounty","LiveWith","CitizenshipModel","MilitaryServiceModel","LanguagesModel","DemographicDataID","NationalID","PassportNumber","PassportExpiration","PermanentResidentStatusID","VisaTypeID","RequireVisa","VisaExpirationDate","AlienIDNumber","PermanentResident","VisaExpirationDateNotSupplied","IsPrimary","DateOfEntryToUK","PassportIssuePlace","VisaNumber","EntryDateIntoCanada","WorkPermitNumber","WorkPermitExpirationDate","StudyPermitNumber","StudyPermitExpirationDate","PermanentResidentStatus","VisaType","custDta","MilitaryClassificationModel","BranchID","Branch","MilitaryPayGradeModel","MilitaryRankModel","MilitaryStatusID","DateOfServiceFrom","DateOfServiceTo","MilitaryRankID","MilitaryPayGradeID","MilitaryClassificationID","PrimaryAFSC","SecondaryAFSC","TertiaryAFSC","QuaternaryAFSC","Unit","DateOfRank","PromotionLineNumber","EligibleForReinstatement","EnlistmentDateTo","EnlistmentDateFrom","MilitaryRank","MilitaryPayGrade","MilitaryClassification","MilitaryStatus","LanguageID","Proficiency","EducationReceived","QualificationsObtained","Language","custData","SocietyModuleSettingsModel","ApplicationName","SiteName","UnknownEmailAddress","SMSGatewayFormat","MMSGatewayFormat","AddressVerificationProviderModel","Global","Precendence","GeoCodeOnAV","CanSearchAddresses","GeoCodeOnSearch","DefaultProvider","ConfigurationEntityID","ConfigurationEntity","CountriesCovered","EntityModel","SatoriAddOnsModel","ProductKeyID","SatoriID","Satori","SatoriModel","ProductKeyId","GeoCodeKeyId","ProductKeyExpDate","GeoCodeKeyExpDate","AVSingleWebServiceURL","AVBatchWebServiceURL","NCOAWebServiceURL","MailRoomServerHost","PortNumber","SatoriAddOns","LoqateModel","LqtKey","Geocode","Search","SearchAndGeocode","ServiceUrl","GoverningDistrictTypeModel","GoverningDistrictTypeID","GoverningDistrictType","ContactListCriteriaGroupModel","ContactListID","ExternalOperator","InternalOperator","ContactList","Criteria","ContactListModel","TRSExpressionFilterModel","ModuleID","RuleSetStr","Module","CriteriaGroups","ListCriteriaConditionCategoryModel","ListCriteriaConditionModel","ExpectedDataType","ExpressionID","Expression","TRSExpressionModel","DocumentModel","DocumentDate","ExpirationDate","DocumentTypeID","DocumentContentsTypeID","DocumentURL","ExternalDocumentID","Contents","ThumbnailContents","ThumbnailMIMEType","DocumentType","DocumentContentsType","DocumentTypeModel","CanExpire","DocumentRepositoryTypeModel","InclusionRulesetID","CompletionRulesetID","InclusionRuleset","CompletionRuleset","DataChangedWatchers","TRSRuleSetModel","DataChangedWatcherModel","DocumentRepositoryTypeID","DocumentRepositoryType","DocumentPlaceholder","DocumentPlaceholderModel","DocumentRepositoryID","DateAdded","DateFulfilled","ProcessStage","Documents","PersonMatchingActionTypeModel","PersonMatchedModel","MatchedActionTypeID","MatchedPersonID","MatchingCriteriaID","ActionType","MatchedPerson","MatchingCriteria","MatchingCriteriaModel","WebContentModel","HtmlFragment","Sequence","CommonModuleSettingsModel","ImageNowStudentDrawerUrlToken","USCollege","SchoolAcronym","SystemCountryID","DefaultStartTime","DefaultEndTime","SystemCountry","PeriodModel","UserTaskNoteModel","UserTaskID","UserTask","UserTaskModel","MVCArea","MVCController","MVCAction","JSONParams","Tentative","Priority","Comments","DueDate","OriginalDueDate","RescheduleCount","CompletionDate","WorkflowInstanceID","CorrelationID","InstanceGID","InstanceString","InstanceEntityID","TaskTypeID","StatusID","ParentUserTaskID","ContextContactID","ContextEntityID","ContextGID","TaskType","InstanceEntity","ParentUserTask","ChildTasks","ContextContact","ContextEntity","TaskTypeModel","TaskStatusModel","DefaultMVCArea","DefaultMVCController","DefaultMVCAction","DefaultPriority","DefaultOwnerGroupID","DefaultOwnerGroup","AvailableStatuses","GroupModel","ForceObsolete","ForcesParentStatus","ImpactsParentsCounts","FavoriteModel","BaseURL","MVCActionID","ApplicableModules","MVCActionModel","TargetThresholdCatagoryModel","TargetThresholdModel","ThresholdEntityFieldID","ThresholdExpressionPath","ThresholdExpressionPathDisplay","ThresholdExpressionPathValue","TargetThresholdCatagoryID","AssociatedValue","ThresholdEntityField","ThresholdValues","ThresholdConditions","TargetThresholdCatagory","EntityFieldModel","TargetThresholdValueModel","ThresholdConditionModel","LowerThreshold","UpperThreshold","TargetThresholdID","PeriodID","Period","TargetThreshold","EntityFieldID","ComparisonOperator","ComparisonValue","LogicalOperator","AdvancedFieldName","ExpressionPath","ExpressionValue","EntityField","PeriodicityModel","TimeSpan","WarmupUrlModel","Url","IsRelative","RequestHeaderModel","RequestUserID","IPAddress","RequestTime","ResponseTime","QueryString","RequestForm","RequestSession","TotalRequestTime","ContextEntityGID","ContextEntityId","SessionHeaderID","RequestTypeID","RequestUser","SessionHeader","RequestType","SessionHeaderModel","SessionID","LocaleID","Requests","RequestExceptionModel","ErrorMessage","ErrorTime","ErrorCode","Source","RequestHeaderID","RequestHeader","RequestUrlProcessModel","DisplayNameOptionsModel","Formula","EducationAndQualificationTypeModel","TeachingPositionTypeModel","UnitOfTimeModel","DepartmentContactTypeModel","ExternalOrganizationDepartmentModel","DepartmentID","ExternalContactID","ExternalContactTitle","DepartmentContactTypeID","ExternalContactEmail","InternalContactID","Department","ExternalContact","DepartmentContactType","InternalContact","AccessibilityNeedTypeModel","Conditions","AccessibilityNeedTypeID","DisabilityStatusID","EffectsAssessments","ProvisionalNeeds","AccessibilityNeedType","DisabilityStatus","EmployerID","Title","ContactNumber","Supervisor","EmploymentStatusID","OccupationID","DutyAFSC","FlexiFieldValues","EmploymentStatus","Occupation","ContractTypeModel","ContractID","ContractDocumentTypeID","ContractTitle","Comment","ContractDocumentType","Contract","OrganizationContactRelationshipModel","InternalExternal","Email","DocumentPermissionTypeModel","CustomerTransactionEnterpriseDocumentKeyModel","ReversalTransactionEnterpriseDocumentKeyModel","LoadTemplates","basePath","targetDiv","uri","ajax","url","type","async","success","template","append","HesaQualificationResultModel","QualificationGrade","QualificationYear","QualificationSubjectID","QualificationSittingID","QualificationTypeID","custmdata"],"sources":["assets/js/models/SMAPI.community.combined-1.0.0.js"],"mappings":"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","ignoreList":[],"sourcesContent":["(function ($, undefined) {\r\n\r\n var LoadSMAPI = sm.portal.vm.custom.callCustomization('LoadRequiredSMAPI');\r\n if(!sm.portal.utility.isNullOrEmpty(LoadSMAPI)){\r\n return;\r\n }\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, { community: {} });\r\n \r\n function AddressAssociationModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\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.SortOrder = ko.validatedObservable(settings.SortOrder);\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.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.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.CAMS.Community.Entity.AddressAssociation', 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.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.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 AddressTypeAssociationModel(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 this.AddressAssociation = 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.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.AddressAssociation != null && responseData.AddressAssociation.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AddressAssociation.length; i++) {\r\n items.push(new smapi.community.AddressAssociationModel().LoadFromResponse(responseData.AddressAssociation[i]));\r\n }\r\n loaded.AddressAssociation(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.CAMS.Community.Entity.AddressTypeAssociation', 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 ElectronicAddressModel(options) {\r\n var defaults = {\r\n ContactID: 0,\r\n TypeEntryID: null,\r\n Value: '',\r\n EffectiveFrom: null,\r\n EffectiveTo: null,\r\n DoNotContact: false,\r\n NoContactReasonID: null,\r\n AddressTypeID: null,\r\n AddressTimingTypeID: 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.ContactID = ko.validatedObservable(settings.ContactID);\r\n this.TypeEntryID = ko.validatedObservable(settings.TypeEntryID);\r\n this.Value = ko.validatedObservable(settings.Value);\r\n this.EffectiveFrom = ko.validatedObservable(settings.EffectiveFrom);\r\n this.EffectiveTo = ko.validatedObservable(settings.EffectiveTo);\r\n this.DoNotContact = ko.validatedObservable(settings.DoNotContact);\r\n this.NoContactReasonID = ko.validatedObservable(settings.NoContactReasonID);\r\n this.AddressTypeID = ko.validatedObservable(settings.AddressTypeID);\r\n this.AddressTimingTypeID = ko.validatedObservable(settings.AddressTimingTypeID);\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.Contact = ko.observable();\r\n this.AddressType = ko.observable();\r\n this.TypeEntry = ko.observable();\r\n this.Associations = ko.observableArray([]);\r\n this.NoContactReason = ko.observable();\r\n this.AddressTimingType = ko.observable();\r\n var customData = {\r\n defaults : defaults,\r\n self : self,\r\n settings : settings\r\n }\r\n\r\n sm.portal.vm.custom.callCustomization('UpdateElectronicAddressModelProps', customData);\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.ContactID != undefined) {\r\n loaded.ContactID(responseData.ContactID);\r\n }\r\n if (responseData.TypeEntryID != undefined) {\r\n loaded.TypeEntryID(responseData.TypeEntryID);\r\n }\r\n if (responseData.Value != undefined) {\r\n loaded.Value(responseData.Value);\r\n }\r\n if (responseData.EffectiveFrom != undefined) {\r\n loaded.EffectiveFrom(responseData.EffectiveFrom);\r\n }\r\n if (responseData.EffectiveTo != undefined) {\r\n loaded.EffectiveTo(responseData.EffectiveTo);\r\n }\r\n if (responseData.DoNotContact != undefined) {\r\n loaded.DoNotContact(responseData.DoNotContact);\r\n }\r\n if (responseData.NoContactReasonID != undefined) {\r\n loaded.NoContactReasonID(responseData.NoContactReasonID);\r\n }\r\n if (responseData.AddressTypeID != undefined) {\r\n loaded.AddressTypeID(responseData.AddressTypeID);\r\n }\r\n if (responseData.AddressTimingTypeID != undefined) {\r\n loaded.AddressTimingTypeID(responseData.AddressTimingTypeID);\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.Contact != null) {\r\n loaded.Contact(new smapi.community.ContactModel().LoadFromResponse(responseData.Contact));\r\n }\r\n if (responseData.AddressType != null) {\r\n loaded.AddressType(new smapi.community.AddressTypeAssociationModel().LoadFromResponse(responseData.AddressType));\r\n }\r\n if (responseData.TypeEntry != null) {\r\n loaded.TypeEntry(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.TypeEntry));\r\n }\r\n if (responseData.Associations != null && responseData.Associations.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Associations.length; i++) {\r\n items.push(new smapi.community.AddressAssociationModel().LoadFromResponse(responseData.Associations[i]));\r\n }\r\n loaded.Associations(items);\r\n }\r\n if (responseData.NoContactReason != null) {\r\n loaded.NoContactReason(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.NoContactReason));\r\n }\r\n if (responseData.AddressTimingType != null) {\r\n loaded.AddressTimingType(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.AddressTimingType));\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.CAMS.Community.Entity.ElectronicAddress', 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.ContactID.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.TypeEntryID.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.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.EffectiveFrom.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.EffectiveTo.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NoContactReasonID.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.AddressTypeID.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.AddressTimingTypeID.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 RegionModel(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.CAMS.Community.Entity.Region', 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 CountryModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n CountryCode: '',\r\n RegionID: null,\r\n SortOrder: 0,\r\n ISOCode: '',\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.CountryCode = ko.validatedObservable(settings.CountryCode);\r\n this.RegionID = ko.validatedObservable(settings.RegionID);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.ISOCode = ko.validatedObservable(settings.ISOCode);\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.Region = ko.observable();\r\n this.GoverningDistrict = 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.CountryCode != undefined) {\r\n loaded.CountryCode(responseData.CountryCode);\r\n }\r\n if (responseData.RegionID != undefined) {\r\n loaded.RegionID(responseData.RegionID);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.ISOCode != undefined) {\r\n loaded.ISOCode(responseData.ISOCode);\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.Region != null) {\r\n loaded.Region(new smapi.community.RegionModel().LoadFromResponse(responseData.Region));\r\n }\r\n if (responseData.GoverningDistrict != null && responseData.GoverningDistrict.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.GoverningDistrict.length; i++) {\r\n items.push(new smapi.community.GoverningDistrictModel().LoadFromResponse(responseData.GoverningDistrict[i]));\r\n }\r\n loaded.GoverningDistrict(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.CAMS.Community.Entity.Country', 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.CountryCode.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.RegionID.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: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ISOCode.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.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 UTCTimezoneModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n UTCOffsetHours: 0,\r\n UTCOffsetMinutes: 0,\r\n ExampleCountryList: '',\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.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.UTCOffsetHours = ko.validatedObservable(settings.UTCOffsetHours);\r\n this.UTCOffsetMinutes = ko.validatedObservable(settings.UTCOffsetMinutes);\r\n this.ExampleCountryList = ko.validatedObservable(settings.ExampleCountryList);\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 \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.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.UTCOffsetHours != undefined) {\r\n loaded.UTCOffsetHours(responseData.UTCOffsetHours);\r\n }\r\n if (responseData.UTCOffsetMinutes != undefined) {\r\n loaded.UTCOffsetMinutes(responseData.UTCOffsetMinutes);\r\n }\r\n if (responseData.ExampleCountryList != undefined) {\r\n loaded.ExampleCountryList(responseData.ExampleCountryList);\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 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.CAMS.Community.Entity.UTCTimezone', 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: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.UTCOffsetHours.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.UTCOffsetMinutes.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.ExampleCountryList.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.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 MailingAddressModel(options) {\r\n var defaults = {\r\n ContactID: 0,\r\n Address1: '',\r\n Address2: '',\r\n Address3: '',\r\n City: '',\r\n StateID: null,\r\n PostalCode: '',\r\n County: '',\r\n CountryID: null,\r\n TypeEntryID: null,\r\n AddressTypeID: null,\r\n EffectiveFrom: null,\r\n EffectiveTo: null,\r\n ValidatedWhen: null,\r\n AddressTimingTypeID: null,\r\n DoNotContact: false,\r\n NoContactReasonID: null,\r\n NCOAIsInvalid: false,\r\n NCOADateCheck: null,\r\n NCOACode: 0,\r\n Latitude: 0,\r\n Longitude: 0,\r\n GEOCode: '',\r\n UnitNumber: '',\r\n Floor: '',\r\n BuildingName: '',\r\n StreetNumber: '',\r\n StreetName: '',\r\n StreetDirection: '',\r\n StreetSuffixName: '',\r\n PostOfficeBoxNumber: '',\r\n Municipality: '',\r\n GoverningDistrictName: '',\r\n CareOf: '',\r\n Miscellaneous1: '',\r\n Miscellaneous2: '',\r\n Miscellaneous3: '',\r\n TextValue: '',\r\n HTMLValue: '',\r\n StreetSuffixID: null,\r\n MailingAddressTemplateID: null,\r\n UTCTimezoneID: 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.ContactID = ko.validatedObservable(settings.ContactID);\r\n this.Address1 = ko.validatedObservable(settings.Address1);\r\n this.Address2 = ko.validatedObservable(settings.Address2);\r\n this.Address3 = ko.validatedObservable(settings.Address3);\r\n this.City = ko.validatedObservable(settings.City);\r\n this.StateID = ko.validatedObservable(settings.StateID);\r\n this.PostalCode = ko.validatedObservable(settings.PostalCode);\r\n this.County = ko.validatedObservable(settings.County);\r\n this.CountryID = ko.validatedObservable(settings.CountryID);\r\n this.TypeEntryID = ko.validatedObservable(settings.TypeEntryID);\r\n this.AddressTypeID = ko.validatedObservable(settings.AddressTypeID);\r\n this.EffectiveFrom = ko.validatedObservable(settings.EffectiveFrom);\r\n this.EffectiveTo = ko.validatedObservable(settings.EffectiveTo);\r\n this.ValidatedWhen = ko.validatedObservable(settings.ValidatedWhen);\r\n this.AddressTimingTypeID = ko.validatedObservable(settings.AddressTimingTypeID);\r\n this.DoNotContact = ko.validatedObservable(settings.DoNotContact);\r\n this.NoContactReasonID = ko.validatedObservable(settings.NoContactReasonID);\r\n this.NCOAIsInvalid = ko.validatedObservable(settings.NCOAIsInvalid);\r\n this.NCOADateCheck = ko.validatedObservable(settings.NCOADateCheck);\r\n this.NCOACode = ko.validatedObservable(settings.NCOACode);\r\n this.Latitude = ko.validatedObservable(settings.Latitude);\r\n this.Longitude = ko.validatedObservable(settings.Longitude);\r\n this.GEOCode = ko.validatedObservable(settings.GEOCode);\r\n this.UnitNumber = ko.validatedObservable(settings.UnitNumber);\r\n this.Floor = ko.validatedObservable(settings.Floor);\r\n this.BuildingName = ko.validatedObservable(settings.BuildingName);\r\n this.StreetNumber = ko.validatedObservable(settings.StreetNumber);\r\n this.StreetName = ko.validatedObservable(settings.StreetName);\r\n this.StreetDirection = ko.validatedObservable(settings.StreetDirection);\r\n this.StreetSuffixName = ko.validatedObservable(settings.StreetSuffixName);\r\n this.PostOfficeBoxNumber = ko.validatedObservable(settings.PostOfficeBoxNumber);\r\n this.Municipality = ko.validatedObservable(settings.Municipality);\r\n this.GoverningDistrictName = ko.validatedObservable(settings.GoverningDistrictName);\r\n this.CareOf = ko.validatedObservable(settings.CareOf);\r\n this.Miscellaneous1 = ko.validatedObservable(settings.Miscellaneous1);\r\n this.Miscellaneous2 = ko.validatedObservable(settings.Miscellaneous2);\r\n this.Miscellaneous3 = ko.validatedObservable(settings.Miscellaneous3);\r\n this.TextValue = ko.validatedObservable(settings.TextValue);\r\n this.HTMLValue = ko.validatedObservable(settings.HTMLValue);\r\n this.StreetSuffixID = ko.validatedObservable(settings.StreetSuffixID);\r\n this.MailingAddressTemplateID = ko.validatedObservable(settings.MailingAddressTemplateID);\r\n this.UTCTimezoneID = ko.validatedObservable(settings.UTCTimezoneID);\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.UTCTimezone = ko.observable();\r\n this.StreetSuffix = ko.observable();\r\n this.MailingAddressTemplate = ko.observable();\r\n this.Contact = ko.observable();\r\n this.GoverningDistrict = ko.observable();\r\n this.Country = ko.observable();\r\n this.AddressType = ko.observable();\r\n this.Associations = ko.observableArray([]);\r\n this.TypeEntry = ko.observable();\r\n this.AddressTimingType = ko.observable();\r\n this.NoContactReason = 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.ContactID != undefined) {\r\n loaded.ContactID(responseData.ContactID);\r\n }\r\n if (responseData.Address1 != undefined) {\r\n loaded.Address1(responseData.Address1);\r\n }\r\n if (responseData.Address2 != undefined) {\r\n loaded.Address2(responseData.Address2);\r\n }\r\n if (responseData.Address3 != undefined) {\r\n loaded.Address3(responseData.Address3);\r\n }\r\n if (responseData.City != undefined) {\r\n loaded.City(responseData.City);\r\n }\r\n if (responseData.StateID != undefined) {\r\n loaded.StateID(responseData.StateID);\r\n }\r\n if (responseData.PostalCode != undefined) {\r\n loaded.PostalCode(responseData.PostalCode);\r\n }\r\n if (responseData.County != undefined) {\r\n loaded.County(responseData.County);\r\n }\r\n if (responseData.CountryID != undefined) {\r\n loaded.CountryID(responseData.CountryID);\r\n }\r\n if (responseData.TypeEntryID != undefined) {\r\n loaded.TypeEntryID(responseData.TypeEntryID);\r\n }\r\n if (responseData.AddressTypeID != undefined) {\r\n loaded.AddressTypeID(responseData.AddressTypeID);\r\n }\r\n if (responseData.EffectiveFrom != undefined) {\r\n loaded.EffectiveFrom(responseData.EffectiveFrom);\r\n }\r\n if (responseData.EffectiveTo != undefined) {\r\n loaded.EffectiveTo(responseData.EffectiveTo);\r\n }\r\n if (responseData.ValidatedWhen != undefined) {\r\n loaded.ValidatedWhen(responseData.ValidatedWhen);\r\n }\r\n if (responseData.AddressTimingTypeID != undefined) {\r\n loaded.AddressTimingTypeID(responseData.AddressTimingTypeID);\r\n }\r\n if (responseData.DoNotContact != undefined) {\r\n loaded.DoNotContact(responseData.DoNotContact);\r\n }\r\n if (responseData.NoContactReasonID != undefined) {\r\n loaded.NoContactReasonID(responseData.NoContactReasonID);\r\n }\r\n if (responseData.NCOAIsInvalid != undefined) {\r\n loaded.NCOAIsInvalid(responseData.NCOAIsInvalid);\r\n }\r\n if (responseData.NCOADateCheck != undefined) {\r\n loaded.NCOADateCheck(responseData.NCOADateCheck);\r\n }\r\n if (responseData.NCOACode != undefined) {\r\n loaded.NCOACode(responseData.NCOACode);\r\n }\r\n if (responseData.Latitude != undefined) {\r\n loaded.Latitude(responseData.Latitude);\r\n }\r\n if (responseData.Longitude != undefined) {\r\n loaded.Longitude(responseData.Longitude);\r\n }\r\n if (responseData.GEOCode != undefined) {\r\n loaded.GEOCode(responseData.GEOCode);\r\n }\r\n if (responseData.UnitNumber != undefined) {\r\n loaded.UnitNumber(responseData.UnitNumber);\r\n }\r\n if (responseData.Floor != undefined) {\r\n loaded.Floor(responseData.Floor);\r\n }\r\n if (responseData.BuildingName != undefined) {\r\n loaded.BuildingName(responseData.BuildingName);\r\n }\r\n if (responseData.StreetNumber != undefined) {\r\n loaded.StreetNumber(responseData.StreetNumber);\r\n }\r\n if (responseData.StreetName != undefined) {\r\n loaded.StreetName(responseData.StreetName);\r\n }\r\n if (responseData.StreetDirection != undefined) {\r\n loaded.StreetDirection(responseData.StreetDirection);\r\n }\r\n if (responseData.StreetSuffixName != undefined) {\r\n loaded.StreetSuffixName(responseData.StreetSuffixName);\r\n }\r\n if (responseData.PostOfficeBoxNumber != undefined) {\r\n loaded.PostOfficeBoxNumber(responseData.PostOfficeBoxNumber);\r\n }\r\n if (responseData.Municipality != undefined) {\r\n loaded.Municipality(responseData.Municipality);\r\n }\r\n if (responseData.GoverningDistrictName != undefined) {\r\n loaded.GoverningDistrictName(responseData.GoverningDistrictName);\r\n }\r\n if (responseData.CareOf != undefined) {\r\n loaded.CareOf(responseData.CareOf);\r\n }\r\n if (responseData.Miscellaneous1 != undefined) {\r\n loaded.Miscellaneous1(responseData.Miscellaneous1);\r\n }\r\n if (responseData.Miscellaneous2 != undefined) {\r\n loaded.Miscellaneous2(responseData.Miscellaneous2);\r\n }\r\n if (responseData.Miscellaneous3 != undefined) {\r\n loaded.Miscellaneous3(responseData.Miscellaneous3);\r\n }\r\n if (responseData.TextValue != undefined) {\r\n loaded.TextValue(responseData.TextValue);\r\n }\r\n if (responseData.HTMLValue != undefined) {\r\n loaded.HTMLValue(responseData.HTMLValue);\r\n }\r\n if (responseData.StreetSuffixID != undefined) {\r\n loaded.StreetSuffixID(responseData.StreetSuffixID);\r\n }\r\n if (responseData.MailingAddressTemplateID != undefined) {\r\n loaded.MailingAddressTemplateID(responseData.MailingAddressTemplateID);\r\n }\r\n if (responseData.UTCTimezoneID != undefined) {\r\n loaded.UTCTimezoneID(responseData.UTCTimezoneID);\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.UTCTimezone != null) {\r\n loaded.UTCTimezone(new smapi.community.UTCTimezoneModel().LoadFromResponse(responseData.UTCTimezone));\r\n }\r\n if (responseData.StreetSuffix != null) {\r\n loaded.StreetSuffix(new smapi.community.StreetSuffixModel().LoadFromResponse(responseData.StreetSuffix));\r\n }\r\n if (responseData.MailingAddressTemplate != null) {\r\n loaded.MailingAddressTemplate(new smapi.community.MailingAddressTemplateModel().LoadFromResponse(responseData.MailingAddressTemplate));\r\n }\r\n if (responseData.Contact != null) {\r\n loaded.Contact(new smapi.community.ContactModel().LoadFromResponse(responseData.Contact));\r\n }\r\n if (responseData.GoverningDistrict != null) {\r\n loaded.GoverningDistrict(new smapi.community.GoverningDistrictModel().LoadFromResponse(responseData.GoverningDistrict));\r\n }\r\n if (responseData.Country != null) {\r\n loaded.Country(new smapi.community.CountryModel().LoadFromResponse(responseData.Country));\r\n }\r\n if (responseData.AddressType != null) {\r\n loaded.AddressType(new smapi.community.AddressTypeAssociationModel().LoadFromResponse(responseData.AddressType));\r\n }\r\n if (responseData.Associations != null && responseData.Associations.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Associations.length; i++) {\r\n items.push(new smapi.community.AddressAssociationModel().LoadFromResponse(responseData.Associations[i]));\r\n }\r\n loaded.Associations(items);\r\n }\r\n if (responseData.TypeEntry != null) {\r\n loaded.TypeEntry(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.TypeEntry));\r\n }\r\n if (responseData.AddressTimingType != null) {\r\n loaded.AddressTimingType(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.AddressTimingType));\r\n }\r\n if (responseData.NoContactReason != null) {\r\n loaded.NoContactReason(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.NoContactReason));\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.CAMS.Community.Entity.MailingAddress', 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.ContactID.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.Address1.extend({\r\n maxLength: {\r\n params: 80,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '80')\r\n }\r\n });\r\n this.Address2.extend({\r\n maxLength: {\r\n params: 80,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '80')\r\n }\r\n });\r\n this.Address3.extend({\r\n maxLength: {\r\n params: 80,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '80')\r\n }\r\n });\r\n this.City.extend({\r\n maxLength: {\r\n params: 60,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '60')\r\n }\r\n });\r\n this.StateID.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.PostalCode.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.County.extend({\r\n maxLength: {\r\n params: 60,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '60')\r\n }\r\n });\r\n this.CountryID.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.TypeEntryID.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.AddressTypeID.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.EffectiveFrom.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.EffectiveTo.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ValidatedWhen.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AddressTimingTypeID.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.NoContactReasonID.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.NCOADateCheck.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NCOACode.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.Latitude.extend({\r\n min: {\r\n params: -179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Longitude.extend({\r\n min: {\r\n params: -179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GEOCode.extend({\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.UnitNumber.extend({\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.Floor.extend({\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.BuildingName.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.StreetNumber.extend({\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.StreetName.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.StreetDirection.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.StreetSuffixName.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.PostOfficeBoxNumber.extend({\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.Municipality.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.GoverningDistrictName.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.CareOf.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.Miscellaneous1.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.Miscellaneous2.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.Miscellaneous3.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.TextValue.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.HTMLValue.extend({\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.StreetSuffixID.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.MailingAddressTemplateID.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.UTCTimezoneID.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 PhoneNumberModel(options) {\r\n var defaults = {\r\n ContactID: 0,\r\n Number: '',\r\n Extension: '',\r\n CountryPrefixCode: '',\r\n AreaCityCode: '',\r\n TypeEntryID: null,\r\n EffectiveFrom: null,\r\n EffectiveTo: null,\r\n AddressTypeID: null,\r\n AddressTimingTypeID: null,\r\n DoNotContact: false,\r\n NoContactReasonID: null,\r\n PhoneCarrierID: 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.ContactID = ko.validatedObservable(settings.ContactID);\r\n this.Number = ko.validatedObservable(settings.Number);\r\n this.Extension = ko.validatedObservable(settings.Extension);\r\n this.CountryPrefixCode = ko.validatedObservable(settings.CountryPrefixCode);\r\n this.AreaCityCode = ko.validatedObservable(settings.AreaCityCode);\r\n this.TypeEntryID = ko.validatedObservable(settings.TypeEntryID);\r\n this.EffectiveFrom = ko.validatedObservable(settings.EffectiveFrom);\r\n this.EffectiveTo = ko.validatedObservable(settings.EffectiveTo);\r\n this.AddressTypeID = ko.validatedObservable(settings.AddressTypeID);\r\n this.AddressTimingTypeID = ko.validatedObservable(settings.AddressTimingTypeID);\r\n this.DoNotContact = ko.validatedObservable(settings.DoNotContact);\r\n this.NoContactReasonID = ko.validatedObservable(settings.NoContactReasonID);\r\n this.PhoneCarrierID = ko.validatedObservable(settings.PhoneCarrierID);\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.Contact = ko.observable();\r\n this.AddressType = ko.observable();\r\n this.PhoneCarrier = ko.observable();\r\n this.Associations = ko.observableArray([]);\r\n this.TypeEntry = ko.observable();\r\n this.AddressTimingType = ko.observable();\r\n this.NoContactReason = 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.ContactID != undefined) {\r\n loaded.ContactID(responseData.ContactID);\r\n }\r\n if (responseData.Number != undefined) {\r\n loaded.Number(responseData.Number);\r\n }\r\n if (responseData.Extension != undefined) {\r\n loaded.Extension(responseData.Extension);\r\n }\r\n if (responseData.CountryPrefixCode != undefined) {\r\n loaded.CountryPrefixCode(responseData.CountryPrefixCode);\r\n }\r\n if (responseData.AreaCityCode != undefined) {\r\n loaded.AreaCityCode(responseData.AreaCityCode);\r\n }\r\n if (responseData.TypeEntryID != undefined) {\r\n loaded.TypeEntryID(responseData.TypeEntryID);\r\n }\r\n if (responseData.EffectiveFrom != undefined) {\r\n loaded.EffectiveFrom(responseData.EffectiveFrom);\r\n }\r\n if (responseData.EffectiveTo != undefined) {\r\n loaded.EffectiveTo(responseData.EffectiveTo);\r\n }\r\n if (responseData.AddressTypeID != undefined) {\r\n loaded.AddressTypeID(responseData.AddressTypeID);\r\n }\r\n if (responseData.AddressTimingTypeID != undefined) {\r\n loaded.AddressTimingTypeID(responseData.AddressTimingTypeID);\r\n }\r\n if (responseData.DoNotContact != undefined) {\r\n loaded.DoNotContact(responseData.DoNotContact);\r\n }\r\n if (responseData.NoContactReasonID != undefined) {\r\n loaded.NoContactReasonID(responseData.NoContactReasonID);\r\n }\r\n if (responseData.PhoneCarrierID != undefined) {\r\n loaded.PhoneCarrierID(responseData.PhoneCarrierID);\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.Contact != null) {\r\n loaded.Contact(new smapi.community.ContactModel().LoadFromResponse(responseData.Contact));\r\n }\r\n if (responseData.AddressType != null) {\r\n loaded.AddressType(new smapi.community.AddressTypeAssociationModel().LoadFromResponse(responseData.AddressType));\r\n }\r\n if (responseData.PhoneCarrier != null) {\r\n loaded.PhoneCarrier(new smapi.community.PhoneCarrierModel().LoadFromResponse(responseData.PhoneCarrier));\r\n }\r\n if (responseData.Associations != null && responseData.Associations.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Associations.length; i++) {\r\n items.push(new smapi.community.AddressAssociationModel().LoadFromResponse(responseData.Associations[i]));\r\n }\r\n loaded.Associations(items);\r\n }\r\n if (responseData.TypeEntry != null) {\r\n loaded.TypeEntry(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.TypeEntry));\r\n }\r\n if (responseData.AddressTimingType != null) {\r\n loaded.AddressTimingType(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.AddressTimingType));\r\n }\r\n if (responseData.NoContactReason != null) {\r\n loaded.NoContactReason(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.NoContactReason));\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.CAMS.Community.Entity.PhoneNumber', 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.ContactID.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.Number.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.Extension.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.CountryPrefixCode.extend({\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.AreaCityCode.extend({\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.TypeEntryID.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.EffectiveFrom.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.EffectiveTo.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AddressTypeID.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.AddressTimingTypeID.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.NoContactReasonID.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.PhoneCarrierID.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 ContactNoteModel(options) {\r\n var defaults = {\r\n ContactID: 0,\r\n CategoryID: null,\r\n NoteDate: null,\r\n Subject: '',\r\n Note: '',\r\n UserContactNoteGID: null,\r\n ContactTypeID: 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.ContactID = ko.validatedObservable(settings.ContactID);\r\n this.CategoryID = ko.validatedObservable(settings.CategoryID);\r\n this.NoteDate = ko.validatedObservable(settings.NoteDate);\r\n this.Subject = ko.validatedObservable(settings.Subject);\r\n this.Note = ko.validatedObservable(settings.Note);\r\n this.UserContactNoteGID = ko.validatedObservable(settings.UserContactNoteGID);\r\n this.ContactTypeID = ko.validatedObservable(settings.ContactTypeID);\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.Contact = ko.observable();\r\n this.Category = ko.observable();\r\n this.ContactType = 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.ContactID != undefined) {\r\n loaded.ContactID(responseData.ContactID);\r\n }\r\n if (responseData.CategoryID != undefined) {\r\n loaded.CategoryID(responseData.CategoryID);\r\n }\r\n if (responseData.NoteDate != undefined) {\r\n loaded.NoteDate(responseData.NoteDate);\r\n }\r\n if (responseData.Subject != undefined) {\r\n loaded.Subject(responseData.Subject);\r\n }\r\n if (responseData.Note != undefined) {\r\n loaded.Note(responseData.Note);\r\n }\r\n if (responseData.UserContactNoteGID != undefined) {\r\n loaded.UserContactNoteGID(responseData.UserContactNoteGID);\r\n }\r\n if (responseData.ContactTypeID != undefined) {\r\n loaded.ContactTypeID(responseData.ContactTypeID);\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.Contact != null) {\r\n loaded.Contact(new smapi.community.ContactModel().LoadFromResponse(responseData.Contact));\r\n }\r\n if (responseData.Category != null) {\r\n loaded.Category(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Category));\r\n }\r\n if (responseData.ContactType != null) {\r\n loaded.ContactType(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.ContactType));\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.CAMS.Community.Entity.ContactNote', 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.ContactID.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.CategoryID.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.NoteDate.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.Subject.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 120,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '120')\r\n }\r\n });\r\n this.Note.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.UserContactNoteGID.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.ContactTypeID.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 ContactInterestModel(options) {\r\n var defaults = {\r\n ContactID: 0,\r\n EntryDate: null,\r\n CategoryID: null,\r\n InterestID: null,\r\n RankedChoice: 0,\r\n Narrative: '',\r\n ContactTypeID: 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.ContactID = ko.validatedObservable(settings.ContactID);\r\n this.EntryDate = ko.validatedObservable(settings.EntryDate);\r\n this.CategoryID = ko.validatedObservable(settings.CategoryID);\r\n this.InterestID = ko.validatedObservable(settings.InterestID);\r\n this.RankedChoice = ko.validatedObservable(settings.RankedChoice);\r\n this.Narrative = ko.validatedObservable(settings.Narrative);\r\n this.ContactTypeID = ko.validatedObservable(settings.ContactTypeID);\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.Contact = ko.observable();\r\n this.Category = ko.observable();\r\n this.Interests = ko.observable();\r\n this.ContactType = 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.ContactID != undefined) {\r\n loaded.ContactID(responseData.ContactID);\r\n }\r\n if (responseData.EntryDate != undefined) {\r\n loaded.EntryDate(responseData.EntryDate);\r\n }\r\n if (responseData.CategoryID != undefined) {\r\n loaded.CategoryID(responseData.CategoryID);\r\n }\r\n if (responseData.InterestID != undefined) {\r\n loaded.InterestID(responseData.InterestID);\r\n }\r\n if (responseData.RankedChoice != undefined) {\r\n loaded.RankedChoice(responseData.RankedChoice);\r\n }\r\n if (responseData.Narrative != undefined) {\r\n loaded.Narrative(responseData.Narrative);\r\n }\r\n if (responseData.ContactTypeID != undefined) {\r\n loaded.ContactTypeID(responseData.ContactTypeID);\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.Contact != null) {\r\n loaded.Contact(new smapi.community.ContactModel().LoadFromResponse(responseData.Contact));\r\n }\r\n if (responseData.Category != null) {\r\n loaded.Category(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Category));\r\n }\r\n if (responseData.Interests != null) {\r\n loaded.Interests(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Interests));\r\n }\r\n if (responseData.ContactType != null) {\r\n loaded.ContactType(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.ContactType));\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.CAMS.Community.Entity.ContactInterest', 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.ContactID.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.EntryDate.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.CategoryID.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.InterestID.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.RankedChoice.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.ContactTypeID.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 EventManagementModel(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.CAMS.Community.Entity.EventManagement', 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 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 EventTypeModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n EventManagementID: 0,\r\n EventTypeDate: null,\r\n Note: '',\r\n PersonID: 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.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.EventManagementID = ko.validatedObservable(settings.EventManagementID);\r\n this.EventTypeDate = ko.validatedObservable(settings.EventTypeDate);\r\n this.Note = ko.validatedObservable(settings.Note);\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\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.Person = ko.observable();\r\n this.EventManagement = 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.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.EventManagementID != undefined) {\r\n loaded.EventManagementID(responseData.EventManagementID);\r\n }\r\n if (responseData.EventTypeDate != undefined) {\r\n loaded.EventTypeDate(responseData.EventTypeDate);\r\n }\r\n if (responseData.Note != undefined) {\r\n loaded.Note(responseData.Note);\r\n }\r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\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.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.EventManagement != null) {\r\n loaded.EventManagement(new smapi.community.EventManagementModel().LoadFromResponse(responseData.EventManagement));\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.CAMS.Community.Entity.EventType', 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.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.EventManagementID.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.EventTypeDate.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.Note.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.PersonID.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 ContactGreetingTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n FormatRuleSetGID: 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.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.FormatRuleSetGID = ko.validatedObservable(settings.FormatRuleSetGID);\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.FormatRuleSetGID != undefined) {\r\n loaded.FormatRuleSetGID(responseData.FormatRuleSetGID);\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.CAMS.Community.Entity.ContactGreetingType', 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.FormatRuleSetGID.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.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 ContactPronounSetModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n FamiliarPersonal: '',\r\n FormalPersonal: '',\r\n FamiliarImpersonal: '',\r\n FormalImpersonal: '',\r\n FamiliarPosessive: '',\r\n FormalPosessive: '',\r\n FamiliarImpersonalPosessive: '',\r\n FormalImpersonalPosessive: '',\r\n FamiliarReflexive: '',\r\n FormalReflexive: '',\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.FamiliarPersonal = ko.validatedObservable(settings.FamiliarPersonal);\r\n this.FormalPersonal = ko.validatedObservable(settings.FormalPersonal);\r\n this.FamiliarImpersonal = ko.validatedObservable(settings.FamiliarImpersonal);\r\n this.FormalImpersonal = ko.validatedObservable(settings.FormalImpersonal);\r\n this.FamiliarPosessive = ko.validatedObservable(settings.FamiliarPosessive);\r\n this.FormalPosessive = ko.validatedObservable(settings.FormalPosessive);\r\n this.FamiliarImpersonalPosessive = ko.validatedObservable(settings.FamiliarImpersonalPosessive);\r\n this.FormalImpersonalPosessive = ko.validatedObservable(settings.FormalImpersonalPosessive);\r\n this.FamiliarReflexive = ko.validatedObservable(settings.FamiliarReflexive);\r\n this.FormalReflexive = ko.validatedObservable(settings.FormalReflexive);\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.FamiliarPersonal != undefined) {\r\n loaded.FamiliarPersonal(responseData.FamiliarPersonal);\r\n }\r\n if (responseData.FormalPersonal != undefined) {\r\n loaded.FormalPersonal(responseData.FormalPersonal);\r\n }\r\n if (responseData.FamiliarImpersonal != undefined) {\r\n loaded.FamiliarImpersonal(responseData.FamiliarImpersonal);\r\n }\r\n if (responseData.FormalImpersonal != undefined) {\r\n loaded.FormalImpersonal(responseData.FormalImpersonal);\r\n }\r\n if (responseData.FamiliarPosessive != undefined) {\r\n loaded.FamiliarPosessive(responseData.FamiliarPosessive);\r\n }\r\n if (responseData.FormalPosessive != undefined) {\r\n loaded.FormalPosessive(responseData.FormalPosessive);\r\n }\r\n if (responseData.FamiliarImpersonalPosessive != undefined) {\r\n loaded.FamiliarImpersonalPosessive(responseData.FamiliarImpersonalPosessive);\r\n }\r\n if (responseData.FormalImpersonalPosessive != undefined) {\r\n loaded.FormalImpersonalPosessive(responseData.FormalImpersonalPosessive);\r\n }\r\n if (responseData.FamiliarReflexive != undefined) {\r\n loaded.FamiliarReflexive(responseData.FamiliarReflexive);\r\n }\r\n if (responseData.FormalReflexive != undefined) {\r\n loaded.FormalReflexive(responseData.FormalReflexive);\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.CAMS.Community.Entity.ContactPronounSet', 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.FamiliarPersonal.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.FormalPersonal.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.FamiliarImpersonal.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.FormalImpersonal.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.FamiliarPosessive.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.FormalPosessive.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.FamiliarImpersonalPosessive.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.FormalImpersonalPosessive.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.FamiliarReflexive.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.FormalReflexive.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.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 ContactGreetingModel(options) {\r\n var defaults = {\r\n ContactID: 0,\r\n ContactGreetingTypeID: null,\r\n Greeting: '',\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.ContactID = ko.validatedObservable(settings.ContactID);\r\n this.ContactGreetingTypeID = ko.validatedObservable(settings.ContactGreetingTypeID);\r\n this.Greeting = ko.validatedObservable(settings.Greeting);\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.Contact = ko.observable();\r\n this.ContactGreetingType = 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.ContactID != undefined) {\r\n loaded.ContactID(responseData.ContactID);\r\n }\r\n if (responseData.ContactGreetingTypeID != undefined) {\r\n loaded.ContactGreetingTypeID(responseData.ContactGreetingTypeID);\r\n }\r\n if (responseData.Greeting != undefined) {\r\n loaded.Greeting(responseData.Greeting);\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.Contact != null) {\r\n loaded.Contact(new smapi.community.ContactModel().LoadFromResponse(responseData.Contact));\r\n }\r\n if (responseData.ContactGreetingType != null) {\r\n loaded.ContactGreetingType(new smapi.community.ContactGreetingTypeModel().LoadFromResponse(responseData.ContactGreetingType));\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.CAMS.Community.Entity.ContactGreeting', 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.ContactID.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.ContactGreetingTypeID.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.Greeting.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 MailingAddressTemplateModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n DefaultSiteTemplate: false,\r\n ShowForAllCountries: false,\r\n CapitalizeName: false,\r\n UseNamePrefix: false,\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.DefaultSiteTemplate = ko.validatedObservable(settings.DefaultSiteTemplate);\r\n this.ShowForAllCountries = ko.validatedObservable(settings.ShowForAllCountries);\r\n this.CapitalizeName = ko.validatedObservable(settings.CapitalizeName);\r\n this.UseNamePrefix = ko.validatedObservable(settings.UseNamePrefix);\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.Countries = ko.observableArray([]);\r\n this.Fields = 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.DefaultSiteTemplate != undefined) {\r\n loaded.DefaultSiteTemplate(responseData.DefaultSiteTemplate);\r\n }\r\n if (responseData.ShowForAllCountries != undefined) {\r\n loaded.ShowForAllCountries(responseData.ShowForAllCountries);\r\n }\r\n if (responseData.CapitalizeName != undefined) {\r\n loaded.CapitalizeName(responseData.CapitalizeName);\r\n }\r\n if (responseData.UseNamePrefix != undefined) {\r\n loaded.UseNamePrefix(responseData.UseNamePrefix);\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.Countries != null && responseData.Countries.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Countries.length; i++) {\r\n items.push(new smapi.community.MailingAddressTemplateCountryModel().LoadFromResponse(responseData.Countries[i]));\r\n }\r\n loaded.Countries(items);\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.community.MailingAddressTemplateFieldModel().LoadFromResponse(responseData.Fields[i]));\r\n }\r\n loaded.Fields(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.CAMS.Community.Entity.MailingAddressTemplate', 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.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 MailingAddressTemplateCountryModel(options) {\r\n var defaults = {\r\n DefaultCountryTemplate: false,\r\n CountryID: null,\r\n MailingAddressTemplateID: 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.DefaultCountryTemplate = ko.validatedObservable(settings.DefaultCountryTemplate);\r\n this.CountryID = ko.validatedObservable(settings.CountryID);\r\n this.MailingAddressTemplateID = ko.validatedObservable(settings.MailingAddressTemplateID);\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.Country = ko.observable();\r\n this.MailingAddressTemplate = 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.DefaultCountryTemplate != undefined) {\r\n loaded.DefaultCountryTemplate(responseData.DefaultCountryTemplate);\r\n }\r\n if (responseData.CountryID != undefined) {\r\n loaded.CountryID(responseData.CountryID);\r\n }\r\n if (responseData.MailingAddressTemplateID != undefined) {\r\n loaded.MailingAddressTemplateID(responseData.MailingAddressTemplateID);\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.Country != null) {\r\n loaded.Country(new smapi.community.CountryModel().LoadFromResponse(responseData.Country));\r\n }\r\n if (responseData.MailingAddressTemplate != null) {\r\n loaded.MailingAddressTemplate(new smapi.community.MailingAddressTemplateModel().LoadFromResponse(responseData.MailingAddressTemplate));\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.CAMS.Community.Entity.MailingAddressTemplateCountry', 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.CountryID.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.MailingAddressTemplateID.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 MailingAddressTemplateFieldModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n LabelResourceKey: '',\r\n MailingLabelRowOrdinal: 0,\r\n MailingLabelColumnOrdinal: 0,\r\n TemplateFormRowOrdinal: 0,\r\n UseInMailingLabel: false,\r\n CapitalizeInMailingLabel: false,\r\n AbbreviateInMailingLabel: false,\r\n MailingAddressTemplateID: null,\r\n IsRequired: false,\r\n CustomCSSClass: '',\r\n FieldTypeID: 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.LabelResourceKey = ko.validatedObservable(settings.LabelResourceKey);\r\n this.MailingLabelRowOrdinal = ko.validatedObservable(settings.MailingLabelRowOrdinal);\r\n this.MailingLabelColumnOrdinal = ko.validatedObservable(settings.MailingLabelColumnOrdinal);\r\n this.TemplateFormRowOrdinal = ko.validatedObservable(settings.TemplateFormRowOrdinal);\r\n this.UseInMailingLabel = ko.validatedObservable(settings.UseInMailingLabel);\r\n this.CapitalizeInMailingLabel = ko.validatedObservable(settings.CapitalizeInMailingLabel);\r\n this.AbbreviateInMailingLabel = ko.validatedObservable(settings.AbbreviateInMailingLabel);\r\n this.MailingAddressTemplateID = ko.validatedObservable(settings.MailingAddressTemplateID);\r\n this.IsRequired = ko.validatedObservable(settings.IsRequired);\r\n this.CustomCSSClass = ko.validatedObservable(settings.CustomCSSClass);\r\n this.FieldTypeID = ko.validatedObservable(settings.FieldTypeID);\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.MailingAddressTemplate = ko.observable();\r\n this.FieldType = 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.LabelResourceKey != undefined) {\r\n loaded.LabelResourceKey(responseData.LabelResourceKey);\r\n }\r\n if (responseData.MailingLabelRowOrdinal != undefined) {\r\n loaded.MailingLabelRowOrdinal(responseData.MailingLabelRowOrdinal);\r\n }\r\n if (responseData.MailingLabelColumnOrdinal != undefined) {\r\n loaded.MailingLabelColumnOrdinal(responseData.MailingLabelColumnOrdinal);\r\n }\r\n if (responseData.TemplateFormRowOrdinal != undefined) {\r\n loaded.TemplateFormRowOrdinal(responseData.TemplateFormRowOrdinal);\r\n }\r\n if (responseData.UseInMailingLabel != undefined) {\r\n loaded.UseInMailingLabel(responseData.UseInMailingLabel);\r\n }\r\n if (responseData.CapitalizeInMailingLabel != undefined) {\r\n loaded.CapitalizeInMailingLabel(responseData.CapitalizeInMailingLabel);\r\n }\r\n if (responseData.AbbreviateInMailingLabel != undefined) {\r\n loaded.AbbreviateInMailingLabel(responseData.AbbreviateInMailingLabel);\r\n }\r\n if (responseData.MailingAddressTemplateID != undefined) {\r\n loaded.MailingAddressTemplateID(responseData.MailingAddressTemplateID);\r\n }\r\n if (responseData.IsRequired != undefined) {\r\n loaded.IsRequired(responseData.IsRequired);\r\n }\r\n if (responseData.CustomCSSClass != undefined) {\r\n loaded.CustomCSSClass(responseData.CustomCSSClass);\r\n }\r\n if (responseData.FieldTypeID != undefined) {\r\n loaded.FieldTypeID(responseData.FieldTypeID);\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.MailingAddressTemplate != null) {\r\n loaded.MailingAddressTemplate(new smapi.community.MailingAddressTemplateModel().LoadFromResponse(responseData.MailingAddressTemplate));\r\n }\r\n if (responseData.FieldType != null) {\r\n loaded.FieldType(new smapi.community.MailingAddressFieldTypeModel().LoadFromResponse(responseData.FieldType));\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.CAMS.Community.Entity.MailingAddressTemplateField', 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.LabelResourceKey.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.MailingLabelRowOrdinal.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.MailingLabelColumnOrdinal.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.TemplateFormRowOrdinal.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.MailingAddressTemplateID.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.CustomCSSClass.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.FieldTypeID.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 MailingAddressTemplateFieldSeparatorModel(options) {\r\n var defaults = {\r\n Value: '',\r\n Field1ID: null,\r\n Field2ID: null,\r\n SeparatorTypeID: 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.Field1ID = ko.validatedObservable(settings.Field1ID);\r\n this.Field2ID = ko.validatedObservable(settings.Field2ID);\r\n this.SeparatorTypeID = ko.validatedObservable(settings.SeparatorTypeID);\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.Field1 = ko.observable();\r\n this.Field2 = ko.observable();\r\n this.SeparatorType = 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.Value != undefined) {\r\n loaded.Value(responseData.Value);\r\n }\r\n if (responseData.Field1ID != undefined) {\r\n loaded.Field1ID(responseData.Field1ID);\r\n }\r\n if (responseData.Field2ID != undefined) {\r\n loaded.Field2ID(responseData.Field2ID);\r\n }\r\n if (responseData.SeparatorTypeID != undefined) {\r\n loaded.SeparatorTypeID(responseData.SeparatorTypeID);\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.Field1 != null) {\r\n loaded.Field1(new smapi.community.MailingAddressTemplateFieldModel().LoadFromResponse(responseData.Field1));\r\n }\r\n if (responseData.Field2 != null) {\r\n loaded.Field2(new smapi.community.MailingAddressTemplateFieldModel().LoadFromResponse(responseData.Field2));\r\n }\r\n if (responseData.SeparatorType != null) {\r\n loaded.SeparatorType(new smapi.community.MailingAddressTemplateFieldSeparatorTypeModel().LoadFromResponse(responseData.SeparatorType));\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.CAMS.Community.Entity.MailingAddressTemplateFieldSeparator', 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 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.Field1ID.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.Field2ID.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.SeparatorTypeID.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 StreetSuffixModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n CountryID: 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.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.CountryID = ko.validatedObservable(settings.CountryID);\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.Country = 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.CountryID != undefined) {\r\n loaded.CountryID(responseData.CountryID);\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.Country != null) {\r\n loaded.Country(new smapi.community.CountryModel().LoadFromResponse(responseData.Country));\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.CAMS.Community.Entity.StreetSuffix', 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.CountryID.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 MailingAddressFieldTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n BoundFieldName: '',\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.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.BoundFieldName = ko.validatedObservable(settings.BoundFieldName);\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 \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.BoundFieldName != undefined) {\r\n loaded.BoundFieldName(responseData.BoundFieldName);\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 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.CAMS.Community.Entity.MailingAddressFieldType', 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.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.BoundFieldName.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 MailingAddressTemplateFieldSeparatorTypeModel(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.CAMS.Community.Entity.MailingAddressTemplateFieldSeparatorType', 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.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 HoldCategoryLocationModel(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 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.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 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.CAMS.Community.Entity.HoldCategoryLocation', 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.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 HoldCategoryModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n StopRegistration: false,\r\n StopOnlineRegistration: false,\r\n StopTranscript: false,\r\n StopGradeCard: false,\r\n StopStatement: false,\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.StopRegistration = ko.validatedObservable(settings.StopRegistration);\r\n this.StopOnlineRegistration = ko.validatedObservable(settings.StopOnlineRegistration);\r\n this.StopTranscript = ko.validatedObservable(settings.StopTranscript);\r\n this.StopGradeCard = ko.validatedObservable(settings.StopGradeCard);\r\n this.StopStatement = ko.validatedObservable(settings.StopStatement);\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.HoldLocation = 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.StopRegistration != undefined) {\r\n loaded.StopRegistration(responseData.StopRegistration);\r\n }\r\n if (responseData.StopOnlineRegistration != undefined) {\r\n loaded.StopOnlineRegistration(responseData.StopOnlineRegistration);\r\n }\r\n if (responseData.StopTranscript != undefined) {\r\n loaded.StopTranscript(responseData.StopTranscript);\r\n }\r\n if (responseData.StopGradeCard != undefined) {\r\n loaded.StopGradeCard(responseData.StopGradeCard);\r\n }\r\n if (responseData.StopStatement != undefined) {\r\n loaded.StopStatement(responseData.StopStatement);\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.HoldLocation != null && responseData.HoldLocation.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.HoldLocation.length; i++) {\r\n items.push(new smapi.community.HoldCategoryLocationModel().LoadFromResponse(responseData.HoldLocation[i]));\r\n }\r\n loaded.HoldLocation(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.CAMS.Community.Entity.HoldCategory', 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.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 HoldStatusModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n ISOCode: '',\r\n ExternalCode: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\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.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.ISOCode = ko.validatedObservable(settings.ISOCode);\r\n this.ExternalCode = ko.validatedObservable(settings.ExternalCode);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\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 \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.ISOCode != undefined) {\r\n loaded.ISOCode(responseData.ISOCode);\r\n }\r\n if (responseData.ExternalCode != undefined) {\r\n loaded.ExternalCode(responseData.ExternalCode);\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.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 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.CAMS.Community.Entity.HoldStatus', 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.ISOCode.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.ExternalCode.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.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.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 ContactHoldModel(options) {\r\n var defaults = {\r\n ContactID: 0,\r\n HoldCategoryID: 0,\r\n HoldStatusID: 0,\r\n StartDate: null,\r\n EndDate: null,\r\n StopRegistration: false,\r\n StopOnlineRegistration: false,\r\n StopTranscript: false,\r\n StopGradeCard: false,\r\n StopStatement: false,\r\n Description: '',\r\n VoidReason: '',\r\n VoidUserID: null,\r\n VoidDate: null,\r\n AlertsID: 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.ContactID = ko.validatedObservable(settings.ContactID);\r\n this.HoldCategoryID = ko.validatedObservable(settings.HoldCategoryID);\r\n this.HoldStatusID = ko.validatedObservable(settings.HoldStatusID);\r\n this.StartDate = ko.validatedObservable(settings.StartDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.StopRegistration = ko.validatedObservable(settings.StopRegistration);\r\n this.StopOnlineRegistration = ko.validatedObservable(settings.StopOnlineRegistration);\r\n this.StopTranscript = ko.validatedObservable(settings.StopTranscript);\r\n this.StopGradeCard = ko.validatedObservable(settings.StopGradeCard);\r\n this.StopStatement = ko.validatedObservable(settings.StopStatement);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.VoidReason = ko.validatedObservable(settings.VoidReason);\r\n this.VoidUserID = ko.validatedObservable(settings.VoidUserID);\r\n this.VoidDate = ko.validatedObservable(settings.VoidDate);\r\n this.AlertsID = ko.validatedObservable(settings.AlertsID);\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.Contact = ko.observable();\r\n this.HoldCategory = ko.observable();\r\n this.HoldStatus = ko.observable();\r\n this.VoidUser = ko.observable();\r\n this.Alert = 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.ContactID != undefined) {\r\n loaded.ContactID(responseData.ContactID);\r\n }\r\n if (responseData.HoldCategoryID != undefined) {\r\n loaded.HoldCategoryID(responseData.HoldCategoryID);\r\n }\r\n if (responseData.HoldStatusID != undefined) {\r\n loaded.HoldStatusID(responseData.HoldStatusID);\r\n }\r\n if (responseData.StartDate != undefined) {\r\n loaded.StartDate(responseData.StartDate);\r\n }\r\n if (responseData.EndDate != undefined) {\r\n loaded.EndDate(responseData.EndDate);\r\n }\r\n if (responseData.StopRegistration != undefined) {\r\n loaded.StopRegistration(responseData.StopRegistration);\r\n }\r\n if (responseData.StopOnlineRegistration != undefined) {\r\n loaded.StopOnlineRegistration(responseData.StopOnlineRegistration);\r\n }\r\n if (responseData.StopTranscript != undefined) {\r\n loaded.StopTranscript(responseData.StopTranscript);\r\n }\r\n if (responseData.StopGradeCard != undefined) {\r\n loaded.StopGradeCard(responseData.StopGradeCard);\r\n }\r\n if (responseData.StopStatement != undefined) {\r\n loaded.StopStatement(responseData.StopStatement);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.VoidReason != undefined) {\r\n loaded.VoidReason(responseData.VoidReason);\r\n }\r\n if (responseData.VoidUserID != undefined) {\r\n loaded.VoidUserID(responseData.VoidUserID);\r\n }\r\n if (responseData.VoidDate != undefined) {\r\n loaded.VoidDate(responseData.VoidDate);\r\n }\r\n if (responseData.AlertsID != undefined) {\r\n loaded.AlertsID(responseData.AlertsID);\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.Contact != null) {\r\n loaded.Contact(new smapi.community.ContactModel().LoadFromResponse(responseData.Contact));\r\n }\r\n if (responseData.HoldCategory != null) {\r\n loaded.HoldCategory(new smapi.community.HoldCategoryModel().LoadFromResponse(responseData.HoldCategory));\r\n }\r\n if (responseData.HoldStatus != null) {\r\n loaded.HoldStatus(new smapi.community.HoldStatusModel().LoadFromResponse(responseData.HoldStatus));\r\n }\r\n if (responseData.VoidUser != null) {\r\n loaded.VoidUser(new smapi.entities.UserModel().LoadFromResponse(responseData.VoidUser));\r\n }\r\n if (responseData.Alert != null) {\r\n loaded.Alert(new smapi.community.ContactAlertModel().LoadFromResponse(responseData.Alert));\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.CAMS.Community.Entity.ContactHold', 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.ContactID.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.HoldCategoryID.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.HoldStatusID.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.StartDate.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.EndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.VoidReason.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.VoidUserID.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.VoidDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AlertsID.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 ContactAlertModel(options) {\r\n var defaults = {\r\n ContactID: 0,\r\n StartDate: null,\r\n EndDate: null,\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.ContactID = ko.validatedObservable(settings.ContactID);\r\n this.StartDate = ko.validatedObservable(settings.StartDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\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 this.Contact = ko.observable();\r\n this.Holds = 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.ContactID != undefined) {\r\n loaded.ContactID(responseData.ContactID);\r\n }\r\n if (responseData.StartDate != undefined) {\r\n loaded.StartDate(responseData.StartDate);\r\n }\r\n if (responseData.EndDate != undefined) {\r\n loaded.EndDate(responseData.EndDate);\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 if (responseData.Contact != null) {\r\n loaded.Contact(new smapi.community.ContactModel().LoadFromResponse(responseData.Contact));\r\n }\r\n if (responseData.Holds != null && responseData.Holds.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Holds.length; i++) {\r\n items.push(new smapi.community.ContactHoldModel().LoadFromResponse(responseData.Holds[i]));\r\n }\r\n loaded.Holds(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.CAMS.Community.Entity.ContactAlert', 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.ContactID.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.StartDate.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.EndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 UserContactNoteModel(options) {\r\n var defaults = {\r\n ContactID: 0,\r\n NoteDate: null,\r\n Note: '',\r\n Starred: false,\r\n CopyToContactNote: 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.ContactID = ko.validatedObservable(settings.ContactID);\r\n this.NoteDate = ko.validatedObservable(settings.NoteDate);\r\n this.Note = ko.validatedObservable(settings.Note);\r\n this.Starred = ko.validatedObservable(settings.Starred);\r\n this.CopyToContactNote = ko.validatedObservable(settings.CopyToContactNote);\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.Contact = 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.ContactID != undefined) {\r\n loaded.ContactID(responseData.ContactID);\r\n }\r\n if (responseData.NoteDate != undefined) {\r\n loaded.NoteDate(responseData.NoteDate);\r\n }\r\n if (responseData.Note != undefined) {\r\n loaded.Note(responseData.Note);\r\n }\r\n if (responseData.Starred != undefined) {\r\n loaded.Starred(responseData.Starred);\r\n }\r\n if (responseData.CopyToContactNote != undefined) {\r\n loaded.CopyToContactNote(responseData.CopyToContactNote);\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.Contact != null) {\r\n loaded.Contact(new smapi.community.ContactModel().LoadFromResponse(responseData.Contact));\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.CAMS.Community.Entity.UserContactNote', 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.ContactID.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.NoteDate.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.Note.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 CRMRankModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\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.SortOrder = ko.validatedObservable(settings.SortOrder);\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.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.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.CAMS.Community.Entity.CRMRank', 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: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 ContactModel(options) {\r\n var defaults = {\r\n ContactType: null,\r\n DisplayName: '',\r\n ShowOnDirectory: false,\r\n DoNotContact: false,\r\n ContactPronounSetID: null,\r\n DefaultLocaleID: null,\r\n CRMRankID: 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.ContactType = ko.validatedObservable(settings.ContactType);\r\n this.DisplayName = ko.validatedObservable(settings.DisplayName);\r\n this.ShowOnDirectory = ko.validatedObservable(settings.ShowOnDirectory);\r\n this.DoNotContact = ko.validatedObservable(settings.DoNotContact);\r\n this.ContactPronounSetID = ko.validatedObservable(settings.ContactPronounSetID);\r\n this.DefaultLocaleID = ko.validatedObservable(settings.DefaultLocaleID);\r\n this.CRMRankID = ko.validatedObservable(settings.CRMRankID);\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.CRMRank = ko.observable();\r\n this.DefaultLocale = ko.observable();\r\n this.Addresses = ko.observableArray([]);\r\n this.PhoneNumbers = ko.observableArray([]);\r\n this.ElectronicAddresses = ko.observableArray([]);\r\n this.Pictures = ko.observableArray([]);\r\n this.Notes = ko.observableArray([]);\r\n this.Interests = ko.observableArray([]);\r\n this.Greetings = ko.observableArray([]);\r\n this.MyARelations = ko.observableArray([]);\r\n this.MyZRelations = ko.observableArray([]);\r\n this.Holds = ko.observableArray([]);\r\n this.Alerts = ko.observableArray([]);\r\n this.UserNotes = ko.observableArray([]);\r\n this.DocumentRepository = ko.observableArray([]);\r\n this.ContactPronounSet = 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.ContactType != undefined) {\r\n loaded.ContactType(responseData.ContactType);\r\n }\r\n if (responseData.DisplayName != undefined) {\r\n loaded.DisplayName(responseData.DisplayName);\r\n }\r\n if (responseData.ShowOnDirectory != undefined) {\r\n loaded.ShowOnDirectory(responseData.ShowOnDirectory);\r\n }\r\n if (responseData.DoNotContact != undefined) {\r\n loaded.DoNotContact(responseData.DoNotContact);\r\n }\r\n if (responseData.ContactPronounSetID != undefined) {\r\n loaded.ContactPronounSetID(responseData.ContactPronounSetID);\r\n }\r\n if (responseData.DefaultLocaleID != undefined) {\r\n loaded.DefaultLocaleID(responseData.DefaultLocaleID);\r\n }\r\n if (responseData.CRMRankID != undefined) {\r\n loaded.CRMRankID(responseData.CRMRankID);\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.CRMRank != null) {\r\n loaded.CRMRank(new smapi.community.CRMRankModel().LoadFromResponse(responseData.CRMRank));\r\n }\r\n if (responseData.DefaultLocale != null) {\r\n loaded.DefaultLocale(new smapi.entities.LocaleModel().LoadFromResponse(responseData.DefaultLocale));\r\n }\r\n if (responseData.Addresses != null && responseData.Addresses.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Addresses.length; i++) {\r\n items.push(new smapi.community.MailingAddressModel().LoadFromResponse(responseData.Addresses[i]));\r\n }\r\n loaded.Addresses(items);\r\n }\r\n if (responseData.PhoneNumbers != null && responseData.PhoneNumbers.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.PhoneNumbers.length; i++) {\r\n items.push(new smapi.community.PhoneNumberModel().LoadFromResponse(responseData.PhoneNumbers[i]));\r\n }\r\n loaded.PhoneNumbers(items);\r\n }\r\n if (responseData.ElectronicAddresses != null && responseData.ElectronicAddresses.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ElectronicAddresses.length; i++) {\r\n items.push(new smapi.community.ElectronicAddressModel().LoadFromResponse(responseData.ElectronicAddresses[i]));\r\n }\r\n loaded.ElectronicAddresses(items);\r\n }\r\n if (responseData.Pictures != null && responseData.Pictures.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Pictures.length; i++) {\r\n items.push(new smapi.community.ContactPictureModel().LoadFromResponse(responseData.Pictures[i]));\r\n }\r\n loaded.Pictures(items);\r\n }\r\n if (responseData.Notes != null && responseData.Notes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Notes.length; i++) {\r\n items.push(new smapi.community.ContactNoteModel().LoadFromResponse(responseData.Notes[i]));\r\n }\r\n loaded.Notes(items);\r\n }\r\n if (responseData.Interests != null && responseData.Interests.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Interests.length; i++) {\r\n items.push(new smapi.community.ContactInterestModel().LoadFromResponse(responseData.Interests[i]));\r\n }\r\n loaded.Interests(items);\r\n }\r\n if (responseData.Greetings != null && responseData.Greetings.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Greetings.length; i++) {\r\n items.push(new smapi.community.ContactGreetingModel().LoadFromResponse(responseData.Greetings[i]));\r\n }\r\n loaded.Greetings(items);\r\n }\r\n if (responseData.MyARelations != null && responseData.MyARelations.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.MyARelations.length; i++) {\r\n items.push(new smapi.community.ContactRelationshipModel().LoadFromResponse(responseData.MyARelations[i]));\r\n }\r\n loaded.MyARelations(items);\r\n }\r\n if (responseData.MyZRelations != null && responseData.MyZRelations.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.MyZRelations.length; i++) {\r\n items.push(new smapi.community.ContactRelationshipModel().LoadFromResponse(responseData.MyZRelations[i]));\r\n }\r\n loaded.MyZRelations(items);\r\n }\r\n if (responseData.Holds != null && responseData.Holds.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Holds.length; i++) {\r\n items.push(new smapi.community.ContactHoldModel().LoadFromResponse(responseData.Holds[i]));\r\n }\r\n loaded.Holds(items);\r\n }\r\n if (responseData.Alerts != null && responseData.Alerts.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Alerts.length; i++) {\r\n items.push(new smapi.community.ContactAlertModel().LoadFromResponse(responseData.Alerts[i]));\r\n }\r\n loaded.Alerts(items);\r\n }\r\n if (responseData.UserNotes != null && responseData.UserNotes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.UserNotes.length; i++) {\r\n items.push(new smapi.community.UserContactNoteModel().LoadFromResponse(responseData.UserNotes[i]));\r\n }\r\n loaded.UserNotes(items);\r\n }\r\n if (responseData.DocumentRepository != null && responseData.DocumentRepository.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.DocumentRepository.length; i++) {\r\n items.push(new smapi.community.DocumentRepositoryModel().LoadFromResponse(responseData.DocumentRepository[i]));\r\n }\r\n loaded.DocumentRepository(items);\r\n }\r\n if (responseData.ContactPronounSet != null) {\r\n loaded.ContactPronounSet(new smapi.community.ContactPronounSetModel().LoadFromResponse(responseData.ContactPronounSet));\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.CAMS.Community.Entity.Contact', 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.ContactType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_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: 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.ContactPronounSetID.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.DefaultLocaleID.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.CRMRankID.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 PersonPreviousModel(options) {\r\n var defaults = {\r\n PersonID: null,\r\n CategoryID: null,\r\n SalutationID: null,\r\n GivenName: '',\r\n MiddleName: '',\r\n Surname: '',\r\n SuffixID: null,\r\n GenderID: null,\r\n DateOfChange: 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.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.CategoryID = ko.validatedObservable(settings.CategoryID);\r\n this.SalutationID = ko.validatedObservable(settings.SalutationID);\r\n this.GivenName = ko.validatedObservable(settings.GivenName);\r\n this.MiddleName = ko.validatedObservable(settings.MiddleName);\r\n this.Surname = ko.validatedObservable(settings.Surname);\r\n this.SuffixID = ko.validatedObservable(settings.SuffixID);\r\n this.GenderID = ko.validatedObservable(settings.GenderID);\r\n this.DateOfChange = ko.validatedObservable(settings.DateOfChange);\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.Person = ko.observable();\r\n this.Category = ko.observable();\r\n this.Salutation = ko.observable();\r\n this.Suffix = ko.observable();\r\n this.Gender = 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.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.CategoryID != undefined) {\r\n loaded.CategoryID(responseData.CategoryID);\r\n }\r\n if (responseData.SalutationID != undefined) {\r\n loaded.SalutationID(responseData.SalutationID);\r\n }\r\n if (responseData.GivenName != undefined) {\r\n loaded.GivenName(responseData.GivenName);\r\n }\r\n if (responseData.MiddleName != undefined) {\r\n loaded.MiddleName(responseData.MiddleName);\r\n }\r\n if (responseData.Surname != undefined) {\r\n loaded.Surname(responseData.Surname);\r\n }\r\n if (responseData.SuffixID != undefined) {\r\n loaded.SuffixID(responseData.SuffixID);\r\n }\r\n if (responseData.GenderID != undefined) {\r\n loaded.GenderID(responseData.GenderID);\r\n }\r\n if (responseData.DateOfChange != undefined) {\r\n loaded.DateOfChange(responseData.DateOfChange);\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.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.Category != null) {\r\n loaded.Category(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Category));\r\n }\r\n if (responseData.Salutation != null) {\r\n loaded.Salutation(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Salutation));\r\n }\r\n if (responseData.Suffix != null) {\r\n loaded.Suffix(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Suffix));\r\n }\r\n if (responseData.Gender != null) {\r\n loaded.Gender(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Gender));\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.CAMS.Community.Entity.PersonPrevious', 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.PersonID.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.CategoryID.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.SalutationID.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.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: 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.MiddleName.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.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: 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.SuffixID.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.GenderID.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.DateOfChange.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 ContactPictureModel(options) {\r\n var defaults = {\r\n ContactID: 0,\r\n PictureTypeID: null,\r\n MIMEType: '',\r\n FileName: '',\r\n FileData: 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.ContactID = ko.validatedObservable(settings.ContactID);\r\n this.PictureTypeID = ko.validatedObservable(settings.PictureTypeID);\r\n this.MIMEType = ko.validatedObservable(settings.MIMEType);\r\n this.FileName = ko.validatedObservable(settings.FileName);\r\n this.FileData = ko.validatedObservable(settings.FileData);\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.Contact = ko.observable();\r\n this.PictureType = 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.ContactID != undefined) {\r\n loaded.ContactID(responseData.ContactID);\r\n }\r\n if (responseData.PictureTypeID != undefined) {\r\n loaded.PictureTypeID(responseData.PictureTypeID);\r\n }\r\n if (responseData.MIMEType != undefined) {\r\n loaded.MIMEType(responseData.MIMEType);\r\n }\r\n if (responseData.FileName != undefined) {\r\n loaded.FileName(responseData.FileName);\r\n }\r\n if (responseData.FileData != undefined) {\r\n loaded.FileData(responseData.FileData);\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.Contact != null) {\r\n loaded.Contact(new smapi.community.ContactModel().LoadFromResponse(responseData.Contact));\r\n }\r\n if (responseData.PictureType != null) {\r\n loaded.PictureType(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.PictureType));\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.CAMS.Community.Entity.ContactPicture', 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.ContactID.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.PictureTypeID.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.MIMEType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 250,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '250')\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.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 EmergencyContactModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n EmergencyContactTypeID: null,\r\n EmergencyContactName: '',\r\n Number: '',\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.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.EmergencyContactTypeID = ko.validatedObservable(settings.EmergencyContactTypeID);\r\n this.EmergencyContactName = ko.validatedObservable(settings.EmergencyContactName);\r\n this.Number = ko.validatedObservable(settings.Number);\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.Person = ko.observable();\r\n this.EmergencyContactType = 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.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.EmergencyContactTypeID != undefined) {\r\n loaded.EmergencyContactTypeID(responseData.EmergencyContactTypeID);\r\n }\r\n if (responseData.EmergencyContactName != undefined) {\r\n loaded.EmergencyContactName(responseData.EmergencyContactName);\r\n }\r\n if (responseData.Number != undefined) {\r\n loaded.Number(responseData.Number);\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.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.EmergencyContactType != null) {\r\n loaded.EmergencyContactType(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.EmergencyContactType));\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.CAMS.Community.Entity.EmergencyContact', 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.PersonID.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.EmergencyContactTypeID.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.EmergencyContactName.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.Number.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 FavoriteGroupModel(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.CAMS.Community.Entity.FavoriteGroup', 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: 250,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '250')\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 ContactFavoriteModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n ContactID: 0,\r\n FavoriteGroupID: 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.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.ContactID = ko.validatedObservable(settings.ContactID);\r\n this.FavoriteGroupID = ko.validatedObservable(settings.FavoriteGroupID);\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.FavoriteGroup = ko.observable();\r\n this.Person = ko.observable();\r\n this.Contact = 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.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.ContactID != undefined) {\r\n loaded.ContactID(responseData.ContactID);\r\n }\r\n if (responseData.FavoriteGroupID != undefined) {\r\n loaded.FavoriteGroupID(responseData.FavoriteGroupID);\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.FavoriteGroup != null) {\r\n loaded.FavoriteGroup(new smapi.community.FavoriteGroupModel().LoadFromResponse(responseData.FavoriteGroup));\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.Contact != null) {\r\n loaded.Contact(new smapi.community.ContactModel().LoadFromResponse(responseData.Contact));\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.CAMS.Community.Entity.ContactFavorite', 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.PersonID.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.ContactID.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.FavoriteGroupID.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 PersonIdentifierTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n IsEditDenied: false,\r\n IsDeleteDenied: 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.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.IsEditDenied = ko.validatedObservable(settings.IsEditDenied);\r\n this.IsDeleteDenied = ko.validatedObservable(settings.IsDeleteDenied);\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.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.IsEditDenied != undefined) {\r\n loaded.IsEditDenied(responseData.IsEditDenied);\r\n }\r\n if (responseData.IsDeleteDenied != undefined) {\r\n loaded.IsDeleteDenied(responseData.IsDeleteDenied);\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.CAMS.Community.Entity.PersonIdentifierType', 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.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.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 OrganizationIdentifierTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\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.SortOrder = ko.validatedObservable(settings.SortOrder);\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.OrganizationTypes = 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.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.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.OrganizationTypes != null && responseData.OrganizationTypes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.OrganizationTypes.length; i++) {\r\n items.push(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.OrganizationTypes[i]));\r\n }\r\n loaded.OrganizationTypes(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.CAMS.Community.Entity.OrganizationIdentifierType', 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.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.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 PersonIdentifierModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n Identifier: '',\r\n IdentifierTypeID: 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.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.Identifier = ko.validatedObservable(settings.Identifier);\r\n this.IdentifierTypeID = ko.validatedObservable(settings.IdentifierTypeID);\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.Person = ko.observable();\r\n this.IdentifierType = 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.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.Identifier != undefined) {\r\n loaded.Identifier(responseData.Identifier);\r\n }\r\n if (responseData.IdentifierTypeID != undefined) {\r\n loaded.IdentifierTypeID(responseData.IdentifierTypeID);\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.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.IdentifierType != null) {\r\n loaded.IdentifierType(new smapi.community.PersonIdentifierTypeModel().LoadFromResponse(responseData.IdentifierType));\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.CAMS.Community.Entity.PersonIdentifier', 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.PersonID.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.Identifier.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.IdentifierTypeID.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 PersonModel(options) {\r\n var defaults = {\r\n Surname: '',\r\n GivenName: '',\r\n MiddleName: '',\r\n PreferredGivenName: '',\r\n TaxID: '',\r\n GenderID: null,\r\n SalutationID: null,\r\n SuffixID: null,\r\n BirthDay: 0,\r\n BirthMonth: 0,\r\n BirthYear: 0,\r\n DateOfBirth: null,\r\n SavedAge: 0,\r\n DateOfDeath: null,\r\n Deceased: false,\r\n AgeCalculatedOn: null,\r\n LeadTypeID: null,\r\n ContactType: null,\r\n DisplayName: '',\r\n ShowOnDirectory: false,\r\n DoNotContact: false,\r\n ContactPronounSetID: null,\r\n DefaultLocaleID: null,\r\n CRMRankID: 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 SIN: ''\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.Surname = ko.validatedObservable(settings.Surname);\r\n this.GivenName = ko.validatedObservable(settings.GivenName);\r\n this.MiddleName = ko.validatedObservable(settings.MiddleName);\r\n this.PreferredGivenName = ko.validatedObservable(settings.PreferredGivenName);\r\n this.TaxID = ko.validatedObservable(settings.TaxID);\r\n this.GenderID = ko.validatedObservable(settings.GenderID);\r\n this.SalutationID = ko.validatedObservable(settings.SalutationID);\r\n this.SuffixID = ko.validatedObservable(settings.SuffixID);\r\n this.BirthDay = ko.validatedObservable(settings.BirthDay);\r\n this.BirthMonth = ko.validatedObservable(settings.BirthMonth);\r\n this.BirthYear = ko.validatedObservable(settings.BirthYear);\r\n this.DateOfBirth = ko.validatedObservable(settings.DateOfBirth);\r\n this.SavedAge = ko.validatedObservable(settings.SavedAge);\r\n this.DateOfDeath = ko.validatedObservable(settings.DateOfDeath);\r\n this.Deceased = ko.validatedObservable(settings.Deceased);\r\n this.AgeCalculatedOn = ko.validatedObservable(settings.AgeCalculatedOn);\r\n this.LeadTypeID = ko.validatedObservable(settings.LeadTypeID);\r\n this.ContactType = ko.validatedObservable(settings.ContactType);\r\n this.DisplayName = ko.validatedObservable(settings.DisplayName);\r\n this.ShowOnDirectory = ko.validatedObservable(settings.ShowOnDirectory);\r\n this.DoNotContact = ko.validatedObservable(settings.DoNotContact);\r\n this.ContactPronounSetID = ko.validatedObservable(settings.ContactPronounSetID);\r\n this.DefaultLocaleID = ko.validatedObservable(settings.DefaultLocaleID);\r\n this.CRMRankID = ko.validatedObservable(settings.CRMRankID);\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 this.SIN = ko.validatedObservable(settings.SIN);\r\n\r\n // Relationships as Observables and ObservableArrays\r\n this.LeadType = ko.observable();\r\n this.Previous = ko.observableArray([]);\r\n this.EmergencyContacts = ko.observableArray([]);\r\n this.DemographicData = ko.observableArray([]);\r\n this.Employment = ko.observableArray([]);\r\n this.AccessibilityNeed = ko.observableArray([]);\r\n this.ContactFavorites = ko.observableArray([]);\r\n this.IDs = ko.observableArray(settings.IDs);\r\n this.EventTypes = ko.observableArray([]);\r\n this.DepartmentalContacts = ko.observableArray([]);\r\n this.Gender = ko.observable();\r\n this.Salutation = ko.observable();\r\n this.Suffix = ko.observable();\r\n this.CRMRank = ko.observable();\r\n this.DefaultLocale = ko.observable();\r\n this.Addresses = ko.observableArray([]);\r\n this.PhoneNumbers = ko.observableArray([]);\r\n this.ElectronicAddresses = ko.observableArray([]);\r\n this.Pictures = ko.observableArray([]);\r\n this.Notes = ko.observableArray([]);\r\n this.Interests = ko.observableArray([]);\r\n this.Greetings = ko.observableArray([]);\r\n this.MyARelations = ko.observableArray([]);\r\n this.MyZRelations = ko.observableArray([]);\r\n this.Holds = ko.observableArray([]);\r\n this.Alerts = ko.observableArray([]);\r\n this.UserNotes = ko.observableArray([]);\r\n this.DocumentRepository = ko.observableArray([]);\r\n this.ContactPronounSet = 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.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.MiddleName != undefined) {\r\n loaded.MiddleName(responseData.MiddleName);\r\n }\r\n if (responseData.PreferredGivenName != undefined) {\r\n loaded.PreferredGivenName(responseData.PreferredGivenName);\r\n }\r\n if (responseData.TaxID != undefined) {\r\n loaded.TaxID(responseData.TaxID);\r\n }\r\n if (responseData.GenderID != undefined) {\r\n loaded.GenderID(responseData.GenderID);\r\n }\r\n if (responseData.SalutationID != undefined) {\r\n loaded.SalutationID(responseData.SalutationID);\r\n }\r\n if (responseData.SuffixID != undefined) {\r\n loaded.SuffixID(responseData.SuffixID);\r\n }\r\n if (responseData.BirthDay != undefined) {\r\n loaded.BirthDay(responseData.BirthDay);\r\n }\r\n if (responseData.BirthMonth != undefined) {\r\n loaded.BirthMonth(responseData.BirthMonth);\r\n }\r\n if (responseData.BirthYear != undefined) {\r\n loaded.BirthYear(responseData.BirthYear);\r\n }\r\n if (responseData.DateOfBirth != undefined) {\r\n loaded.DateOfBirth(responseData.DateOfBirth);\r\n }\r\n if (responseData.SavedAge != undefined) {\r\n loaded.SavedAge(responseData.SavedAge);\r\n }\r\n if (responseData.DateOfDeath != undefined) {\r\n loaded.DateOfDeath(responseData.DateOfDeath);\r\n }\r\n if (responseData.Deceased != undefined) {\r\n loaded.Deceased(responseData.Deceased);\r\n }\r\n if (responseData.AgeCalculatedOn != undefined) {\r\n loaded.AgeCalculatedOn(responseData.AgeCalculatedOn);\r\n }\r\n if (responseData.LeadTypeID != undefined) {\r\n loaded.LeadTypeID(responseData.LeadTypeID);\r\n }\r\n if (responseData.ContactType != undefined) {\r\n loaded.ContactType(responseData.ContactType);\r\n }\r\n if (responseData.DisplayName != undefined) {\r\n loaded.DisplayName(responseData.DisplayName);\r\n }\r\n if (responseData.ShowOnDirectory != undefined) {\r\n loaded.ShowOnDirectory(responseData.ShowOnDirectory);\r\n }\r\n if (responseData.DoNotContact != undefined) {\r\n loaded.DoNotContact(responseData.DoNotContact);\r\n }\r\n if (responseData.ContactPronounSetID != undefined) {\r\n loaded.ContactPronounSetID(responseData.ContactPronounSetID);\r\n }\r\n if (responseData.DefaultLocaleID != undefined) {\r\n loaded.DefaultLocaleID(responseData.DefaultLocaleID);\r\n }\r\n if (responseData.CRMRankID != undefined) {\r\n loaded.CRMRankID(responseData.CRMRankID);\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.SIN != undefined) {\r\n loaded.SIN(responseData.SIN);\r\n }\r\n if (responseData.LeadType != null) {\r\n loaded.LeadType(new smapi.community.LeadTypeModel().LoadFromResponse(responseData.LeadType));\r\n }\r\n if (responseData.Previous != null && responseData.Previous.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Previous.length; i++) {\r\n items.push(new smapi.community.PersonPreviousModel().LoadFromResponse(responseData.Previous[i]));\r\n }\r\n loaded.Previous(items);\r\n }\r\n if (responseData.EmergencyContacts != null && responseData.EmergencyContacts.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.EmergencyContacts.length; i++) {\r\n items.push(new smapi.community.EmergencyContactModel().LoadFromResponse(responseData.EmergencyContacts[i]));\r\n }\r\n loaded.EmergencyContacts(items);\r\n }\r\n if (responseData.DemographicData != null && responseData.DemographicData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.DemographicData.length; i++) {\r\n items.push(new smapi.community.DemographicDataModel().LoadFromResponse(responseData.DemographicData[i]));\r\n }\r\n loaded.DemographicData(items);\r\n }\r\n if (responseData.Employment != null && responseData.Employment.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Employment.length; i++) {\r\n items.push(new smapi.community.EmploymentModel().LoadFromResponse(responseData.Employment[i]));\r\n }\r\n loaded.Employment(items);\r\n }\r\n if (responseData.AccessibilityNeed != null && responseData.AccessibilityNeed.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AccessibilityNeed.length; i++) {\r\n items.push(new smapi.community.AccessibilityNeedModel().LoadFromResponse(responseData.AccessibilityNeed[i]));\r\n }\r\n loaded.AccessibilityNeed(items);\r\n }\r\n if (responseData.ContactFavorites != null && responseData.ContactFavorites.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ContactFavorites.length; i++) {\r\n items.push(new smapi.community.ContactFavoriteModel().LoadFromResponse(responseData.ContactFavorites[i]));\r\n }\r\n loaded.ContactFavorites(items);\r\n }\r\n if (responseData.IDs != null && responseData.IDs.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.IDs.length; i++) {\r\n items.push(new smapi.community.PersonIdentifierModel().LoadFromResponse(responseData.IDs[i]));\r\n }\r\n loaded.IDs(items);\r\n }\r\n if (responseData.EventTypes != null && responseData.EventTypes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.EventTypes.length; i++) {\r\n items.push(new smapi.community.EventTypeModel().LoadFromResponse(responseData.EventTypes[i]));\r\n }\r\n loaded.EventTypes(items);\r\n }\r\n if (responseData.DepartmentalContacts != null && responseData.DepartmentalContacts.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.DepartmentalContacts.length; i++) {\r\n items.push(new smapi.community.DepartmentalContactModel().LoadFromResponse(responseData.DepartmentalContacts[i]));\r\n }\r\n loaded.DepartmentalContacts(items);\r\n }\r\n if (responseData.Gender != null) {\r\n loaded.Gender(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Gender));\r\n }\r\n if (responseData.Salutation != null) {\r\n loaded.Salutation(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Salutation));\r\n }\r\n if (responseData.Suffix != null) {\r\n loaded.Suffix(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Suffix));\r\n }\r\n if (responseData.CRMRank != null) {\r\n loaded.CRMRank(new smapi.community.CRMRankModel().LoadFromResponse(responseData.CRMRank));\r\n }\r\n if (responseData.DefaultLocale != null) {\r\n loaded.DefaultLocale(new smapi.entities.LocaleModel().LoadFromResponse(responseData.DefaultLocale));\r\n }\r\n if (responseData.Addresses != null && responseData.Addresses.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Addresses.length; i++) {\r\n items.push(new smapi.community.MailingAddressModel().LoadFromResponse(responseData.Addresses[i]));\r\n }\r\n loaded.Addresses(items);\r\n }\r\n if (responseData.PhoneNumbers != null && responseData.PhoneNumbers.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.PhoneNumbers.length; i++) {\r\n items.push(new smapi.community.PhoneNumberModel().LoadFromResponse(responseData.PhoneNumbers[i]));\r\n }\r\n loaded.PhoneNumbers(items);\r\n }\r\n if (responseData.ElectronicAddresses != null && responseData.ElectronicAddresses.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ElectronicAddresses.length; i++) {\r\n items.push(new smapi.community.ElectronicAddressModel().LoadFromResponse(responseData.ElectronicAddresses[i]));\r\n }\r\n loaded.ElectronicAddresses(items);\r\n }\r\n if (responseData.Pictures != null && responseData.Pictures.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Pictures.length; i++) {\r\n items.push(new smapi.community.ContactPictureModel().LoadFromResponse(responseData.Pictures[i]));\r\n }\r\n loaded.Pictures(items);\r\n }\r\n if (responseData.Notes != null && responseData.Notes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Notes.length; i++) {\r\n items.push(new smapi.community.ContactNoteModel().LoadFromResponse(responseData.Notes[i]));\r\n }\r\n loaded.Notes(items);\r\n }\r\n if (responseData.Interests != null && responseData.Interests.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Interests.length; i++) {\r\n items.push(new smapi.community.ContactInterestModel().LoadFromResponse(responseData.Interests[i]));\r\n }\r\n loaded.Interests(items);\r\n }\r\n if (responseData.Greetings != null && responseData.Greetings.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Greetings.length; i++) {\r\n items.push(new smapi.community.ContactGreetingModel().LoadFromResponse(responseData.Greetings[i]));\r\n }\r\n loaded.Greetings(items);\r\n }\r\n if (responseData.MyARelations != null && responseData.MyARelations.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.MyARelations.length; i++) {\r\n items.push(new smapi.community.ContactRelationshipModel().LoadFromResponse(responseData.MyARelations[i]));\r\n }\r\n loaded.MyARelations(items);\r\n }\r\n if (responseData.MyZRelations != null && responseData.MyZRelations.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.MyZRelations.length; i++) {\r\n items.push(new smapi.community.ContactRelationshipModel().LoadFromResponse(responseData.MyZRelations[i]));\r\n }\r\n loaded.MyZRelations(items);\r\n }\r\n if (responseData.Holds != null && responseData.Holds.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Holds.length; i++) {\r\n items.push(new smapi.community.ContactHoldModel().LoadFromResponse(responseData.Holds[i]));\r\n }\r\n loaded.Holds(items);\r\n }\r\n if (responseData.Alerts != null && responseData.Alerts.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Alerts.length; i++) {\r\n items.push(new smapi.community.ContactAlertModel().LoadFromResponse(responseData.Alerts[i]));\r\n }\r\n loaded.Alerts(items);\r\n }\r\n if (responseData.UserNotes != null && responseData.UserNotes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.UserNotes.length; i++) {\r\n items.push(new smapi.community.UserContactNoteModel().LoadFromResponse(responseData.UserNotes[i]));\r\n }\r\n loaded.UserNotes(items);\r\n }\r\n if (responseData.DocumentRepository != null && responseData.DocumentRepository.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.DocumentRepository.length; i++) {\r\n items.push(new smapi.community.DocumentRepositoryModel().LoadFromResponse(responseData.DocumentRepository[i]));\r\n }\r\n loaded.DocumentRepository(items);\r\n }\r\n if (responseData.ContactPronounSet != null) {\r\n loaded.ContactPronounSet(new smapi.community.ContactPronounSetModel().LoadFromResponse(responseData.ContactPronounSet));\r\n }\r\n var matchedPeopleData = {\r\n defaults : defaults,\r\n self : self,\r\n responseData : responseData,\r\n loaded : loaded\r\n }\r\n sm.portal.vm.custom.callCustomization('ResponseHandlingForMatchedPeople', matchedPeopleData);\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.CAMS.Community.Entity.Person', 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.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: 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.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: 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.MiddleName.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.PreferredGivenName.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.TaxID.extend({\r\n pattern: {\r\n params: /^(\\d{3}-|\\*\\*\\*-)(\\d{2}-|\\*\\*-)(\\d{4})$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_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.GenderID.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.SalutationID.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.SuffixID.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.BirthDay.extend({\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.BirthMonth.extend({\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.BirthYear.extend({\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.DateOfBirth.extend({\r\n smLocalDate: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n },\r\n smDateOfBirth: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.Validate_MustBeProperDateOfBirth_Key)\r\n }\r\n });\r\n this.SavedAge.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.DateOfDeath.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AgeCalculatedOn.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.SIN.extend({\r\n pattern: {\r\n params: /^(\\d{3}|\\*\\*\\*-)(\\d{3}|\\*\\*\\*-)(\\d{3})$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_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.LeadTypeID.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.ContactType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_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: 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.ContactPronounSetID.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.DefaultLocaleID.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.CRMRankID.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 OrganizationIdentifierModel(options) {\r\n var defaults = {\r\n OrganizationID: 0,\r\n Identifier: '',\r\n IdentifierTypeID: 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.OrganizationID = ko.validatedObservable(settings.OrganizationID);\r\n this.Identifier = ko.validatedObservable(settings.Identifier);\r\n this.IdentifierTypeID = ko.validatedObservable(settings.IdentifierTypeID);\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.Organization = ko.observable();\r\n this.IdentifierType = 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.OrganizationID != undefined) {\r\n loaded.OrganizationID(responseData.OrganizationID);\r\n }\r\n if (responseData.Identifier != undefined) {\r\n loaded.Identifier(responseData.Identifier);\r\n }\r\n if (responseData.IdentifierTypeID != undefined) {\r\n loaded.IdentifierTypeID(responseData.IdentifierTypeID);\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.Organization != null) {\r\n loaded.Organization(new smapi.community.OrganizationModel().LoadFromResponse(responseData.Organization));\r\n }\r\n if (responseData.IdentifierType != null) {\r\n loaded.IdentifierType(new smapi.community.OrganizationIdentifierTypeModel().LoadFromResponse(responseData.IdentifierType));\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.CAMS.Community.Entity.OrganizationIdentifier', 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.OrganizationID.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.Identifier.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.IdentifierTypeID.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 OrganizationModel(options) {\r\n var defaults = {\r\n Description: '',\r\n LeadTypeID: null,\r\n ContactType: null,\r\n DisplayName: '',\r\n ShowOnDirectory: false,\r\n DoNotContact: false,\r\n ContactPronounSetID: null,\r\n DefaultLocaleID: null,\r\n CRMRankID: 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.Description = ko.validatedObservable(settings.Description);\r\n this.LeadTypeID = ko.validatedObservable(settings.LeadTypeID);\r\n this.ContactType = ko.validatedObservable(settings.ContactType);\r\n this.DisplayName = ko.validatedObservable(settings.DisplayName);\r\n this.ShowOnDirectory = ko.validatedObservable(settings.ShowOnDirectory);\r\n this.DoNotContact = ko.validatedObservable(settings.DoNotContact);\r\n this.ContactPronounSetID = ko.validatedObservable(settings.ContactPronounSetID);\r\n this.DefaultLocaleID = ko.validatedObservable(settings.DefaultLocaleID);\r\n this.CRMRankID = ko.validatedObservable(settings.CRMRankID);\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.IDs = ko.observableArray([]);\r\n this.LeadType = ko.observable();\r\n this.DepartmentalContacts = ko.observableArray([]);\r\n this.OrganizationContracts = ko.observableArray([]);\r\n this.OrganizationTypes = ko.observableArray([]);\r\n this.CRMRank = ko.observable();\r\n this.DefaultLocale = ko.observable();\r\n this.Addresses = ko.observableArray([]);\r\n this.PhoneNumbers = ko.observableArray([]);\r\n this.ElectronicAddresses = ko.observableArray([]);\r\n this.Pictures = ko.observableArray([]);\r\n this.Notes = ko.observableArray([]);\r\n this.Interests = ko.observableArray([]);\r\n this.Greetings = ko.observableArray([]);\r\n this.MyARelations = ko.observableArray([]);\r\n this.MyZRelations = ko.observableArray([]);\r\n this.Holds = ko.observableArray([]);\r\n this.Alerts = ko.observableArray([]);\r\n this.UserNotes = ko.observableArray([]);\r\n this.DocumentRepository = ko.observableArray([]);\r\n this.ContactPronounSet = 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.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.LeadTypeID != undefined) {\r\n loaded.LeadTypeID(responseData.LeadTypeID);\r\n }\r\n if (responseData.ContactType != undefined) {\r\n loaded.ContactType(responseData.ContactType);\r\n }\r\n if (responseData.DisplayName != undefined) {\r\n loaded.DisplayName(responseData.DisplayName);\r\n }\r\n if (responseData.ShowOnDirectory != undefined) {\r\n loaded.ShowOnDirectory(responseData.ShowOnDirectory);\r\n }\r\n if (responseData.DoNotContact != undefined) {\r\n loaded.DoNotContact(responseData.DoNotContact);\r\n }\r\n if (responseData.ContactPronounSetID != undefined) {\r\n loaded.ContactPronounSetID(responseData.ContactPronounSetID);\r\n }\r\n if (responseData.DefaultLocaleID != undefined) {\r\n loaded.DefaultLocaleID(responseData.DefaultLocaleID);\r\n }\r\n if (responseData.CRMRankID != undefined) {\r\n loaded.CRMRankID(responseData.CRMRankID);\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.IDs != null && responseData.IDs.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.IDs.length; i++) {\r\n items.push(new smapi.community.OrganizationIdentifierModel().LoadFromResponse(responseData.IDs[i]));\r\n }\r\n loaded.IDs(items);\r\n }\r\n if (responseData.LeadType != null) {\r\n loaded.LeadType(new smapi.community.LeadTypeModel().LoadFromResponse(responseData.LeadType));\r\n }\r\n if (responseData.DepartmentalContacts != null && responseData.DepartmentalContacts.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.DepartmentalContacts.length; i++) {\r\n items.push(new smapi.community.DepartmentalContactModel().LoadFromResponse(responseData.DepartmentalContacts[i]));\r\n }\r\n loaded.DepartmentalContacts(items);\r\n }\r\n if (responseData.OrganizationContracts != null && responseData.OrganizationContracts.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.OrganizationContracts.length; i++) {\r\n items.push(new smapi.community.ContractDocumentModel().LoadFromResponse(responseData.OrganizationContracts[i]));\r\n }\r\n loaded.OrganizationContracts(items);\r\n }\r\n if (responseData.OrganizationTypes != null && responseData.OrganizationTypes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.OrganizationTypes.length; i++) {\r\n items.push(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.OrganizationTypes[i]));\r\n }\r\n loaded.OrganizationTypes(items);\r\n }\r\n if (responseData.CRMRank != null) {\r\n loaded.CRMRank(new smapi.community.CRMRankModel().LoadFromResponse(responseData.CRMRank));\r\n }\r\n if (responseData.DefaultLocale != null) {\r\n loaded.DefaultLocale(new smapi.entities.LocaleModel().LoadFromResponse(responseData.DefaultLocale));\r\n }\r\n if (responseData.Addresses != null && responseData.Addresses.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Addresses.length; i++) {\r\n items.push(new smapi.community.MailingAddressModel().LoadFromResponse(responseData.Addresses[i]));\r\n }\r\n loaded.Addresses(items);\r\n }\r\n if (responseData.PhoneNumbers != null && responseData.PhoneNumbers.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.PhoneNumbers.length; i++) {\r\n items.push(new smapi.community.PhoneNumberModel().LoadFromResponse(responseData.PhoneNumbers[i]));\r\n }\r\n loaded.PhoneNumbers(items);\r\n }\r\n if (responseData.ElectronicAddresses != null && responseData.ElectronicAddresses.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ElectronicAddresses.length; i++) {\r\n items.push(new smapi.community.ElectronicAddressModel().LoadFromResponse(responseData.ElectronicAddresses[i]));\r\n }\r\n loaded.ElectronicAddresses(items);\r\n }\r\n if (responseData.Pictures != null && responseData.Pictures.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Pictures.length; i++) {\r\n items.push(new smapi.community.ContactPictureModel().LoadFromResponse(responseData.Pictures[i]));\r\n }\r\n loaded.Pictures(items);\r\n }\r\n if (responseData.Notes != null && responseData.Notes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Notes.length; i++) {\r\n items.push(new smapi.community.ContactNoteModel().LoadFromResponse(responseData.Notes[i]));\r\n }\r\n loaded.Notes(items);\r\n }\r\n if (responseData.Interests != null && responseData.Interests.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Interests.length; i++) {\r\n items.push(new smapi.community.ContactInterestModel().LoadFromResponse(responseData.Interests[i]));\r\n }\r\n loaded.Interests(items);\r\n }\r\n if (responseData.Greetings != null && responseData.Greetings.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Greetings.length; i++) {\r\n items.push(new smapi.community.ContactGreetingModel().LoadFromResponse(responseData.Greetings[i]));\r\n }\r\n loaded.Greetings(items);\r\n }\r\n if (responseData.MyARelations != null && responseData.MyARelations.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.MyARelations.length; i++) {\r\n items.push(new smapi.community.ContactRelationshipModel().LoadFromResponse(responseData.MyARelations[i]));\r\n }\r\n loaded.MyARelations(items);\r\n }\r\n if (responseData.MyZRelations != null && responseData.MyZRelations.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.MyZRelations.length; i++) {\r\n items.push(new smapi.community.ContactRelationshipModel().LoadFromResponse(responseData.MyZRelations[i]));\r\n }\r\n loaded.MyZRelations(items);\r\n }\r\n if (responseData.Holds != null && responseData.Holds.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Holds.length; i++) {\r\n items.push(new smapi.community.ContactHoldModel().LoadFromResponse(responseData.Holds[i]));\r\n }\r\n loaded.Holds(items);\r\n }\r\n if (responseData.Alerts != null && responseData.Alerts.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Alerts.length; i++) {\r\n items.push(new smapi.community.ContactAlertModel().LoadFromResponse(responseData.Alerts[i]));\r\n }\r\n loaded.Alerts(items);\r\n }\r\n if (responseData.UserNotes != null && responseData.UserNotes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.UserNotes.length; i++) {\r\n items.push(new smapi.community.UserContactNoteModel().LoadFromResponse(responseData.UserNotes[i]));\r\n }\r\n loaded.UserNotes(items);\r\n }\r\n if (responseData.DocumentRepository != null && responseData.DocumentRepository.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.DocumentRepository.length; i++) {\r\n items.push(new smapi.community.DocumentRepositoryModel().LoadFromResponse(responseData.DocumentRepository[i]));\r\n }\r\n loaded.DocumentRepository(items);\r\n }\r\n if (responseData.ContactPronounSet != null) {\r\n loaded.ContactPronounSet(new smapi.community.ContactPronounSetModel().LoadFromResponse(responseData.ContactPronounSet));\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.CAMS.Community.Entity.Organization', 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.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.LeadTypeID.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.ContactType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_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: 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.ContactPronounSetID.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.DefaultLocaleID.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.CRMRankID.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 ReligiousDenominationModel(options) {\r\n var defaults = {\r\n ReligionID: null,\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.ReligionID = ko.validatedObservable(settings.ReligionID);\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 this.Religion = 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.ReligionID != undefined) {\r\n loaded.ReligionID(responseData.ReligionID);\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 if (responseData.Religion != null) {\r\n loaded.Religion(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Religion));\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.CAMS.Community.Entity.ReligiousDenomination', 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.ReligionID.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.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 PlaceOfWorshipModel(options) {\r\n var defaults = {\r\n OrganizationID: 0,\r\n ReligionID: null,\r\n DenominationID: 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.OrganizationID = ko.validatedObservable(settings.OrganizationID);\r\n this.ReligionID = ko.validatedObservable(settings.ReligionID);\r\n this.DenominationID = ko.validatedObservable(settings.DenominationID);\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.Organization = ko.observable();\r\n this.Denomination = ko.observable();\r\n this.Religion = 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.OrganizationID != undefined) {\r\n loaded.OrganizationID(responseData.OrganizationID);\r\n }\r\n if (responseData.ReligionID != undefined) {\r\n loaded.ReligionID(responseData.ReligionID);\r\n }\r\n if (responseData.DenominationID != undefined) {\r\n loaded.DenominationID(responseData.DenominationID);\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.Organization != null) {\r\n loaded.Organization(new smapi.community.OrganizationModel().LoadFromResponse(responseData.Organization));\r\n }\r\n if (responseData.Denomination != null) {\r\n loaded.Denomination(new smapi.community.ReligiousDenominationModel().LoadFromResponse(responseData.Denomination));\r\n }\r\n if (responseData.Religion != null) {\r\n loaded.Religion(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Religion));\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.CAMS.Community.Entity.PlaceOfWorship', 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.OrganizationID.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.ReligionID.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.DenominationID.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 RelationshipTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n RulesetRelationshipTypeID: null,\r\n ContactFormatRuleSetGID: null,\r\n NavigatorScreenGID: null,\r\n ReciprocialTypeID: null,\r\n RelationshipCategoryID: 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.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.RulesetRelationshipTypeID = ko.validatedObservable(settings.RulesetRelationshipTypeID);\r\n this.ContactFormatRuleSetGID = ko.validatedObservable(settings.ContactFormatRuleSetGID);\r\n this.NavigatorScreenGID = ko.validatedObservable(settings.NavigatorScreenGID);\r\n this.ReciprocialTypeID = ko.validatedObservable(settings.ReciprocialTypeID);\r\n this.RelationshipCategoryID = ko.validatedObservable(settings.RelationshipCategoryID);\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.ReciprocialType = ko.observable();\r\n this.RelationshipCategory = 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.RulesetRelationshipTypeID != undefined) {\r\n loaded.RulesetRelationshipTypeID(responseData.RulesetRelationshipTypeID);\r\n }\r\n if (responseData.ContactFormatRuleSetGID != undefined) {\r\n loaded.ContactFormatRuleSetGID(responseData.ContactFormatRuleSetGID);\r\n }\r\n if (responseData.NavigatorScreenGID != undefined) {\r\n loaded.NavigatorScreenGID(responseData.NavigatorScreenGID);\r\n }\r\n if (responseData.ReciprocialTypeID != undefined) {\r\n loaded.ReciprocialTypeID(responseData.ReciprocialTypeID);\r\n }\r\n if (responseData.RelationshipCategoryID != undefined) {\r\n loaded.RelationshipCategoryID(responseData.RelationshipCategoryID);\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.ReciprocialType != null) {\r\n loaded.ReciprocialType(new smapi.community.RelationshipTypeModel().LoadFromResponse(responseData.ReciprocialType));\r\n }\r\n if (responseData.RelationshipCategory != null) {\r\n loaded.RelationshipCategory(new smapi.community.RelationshipCategoryModel().LoadFromResponse(responseData.RelationshipCategory));\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.CAMS.Community.Entity.RelationshipType', 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.RulesetRelationshipTypeID.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.ContactFormatRuleSetGID.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.NavigatorScreenGID.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.ReciprocialTypeID.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.RelationshipCategoryID.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 RelationshipCategoryModel(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 this.RelationshipTypes = 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.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.RelationshipTypes != null && responseData.RelationshipTypes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.RelationshipTypes.length; i++) {\r\n items.push(new smapi.community.RelationshipTypeModel().LoadFromResponse(responseData.RelationshipTypes[i]));\r\n }\r\n loaded.RelationshipTypes(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.CAMS.Community.Entity.RelationshipCategory', 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.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 ContactRelationshipModel(options) {\r\n var defaults = {\r\n RelationshipTypeID: null,\r\n NodeAID: null,\r\n NodeZID: null,\r\n BeginDate: null,\r\n EndDate: null,\r\n NavigatorScreenGID: null,\r\n ContactType: null,\r\n DisplayName: '',\r\n ShowOnDirectory: false,\r\n DoNotContact: false,\r\n ContactPronounSetID: null,\r\n DefaultLocaleID: null,\r\n CRMRankID: 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.RelationshipTypeID = ko.validatedObservable(settings.RelationshipTypeID);\r\n this.NodeAID = ko.validatedObservable(settings.NodeAID);\r\n this.NodeZID = ko.validatedObservable(settings.NodeZID);\r\n this.BeginDate = ko.validatedObservable(settings.BeginDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.NavigatorScreenGID = ko.validatedObservable(settings.NavigatorScreenGID);\r\n this.ContactType = ko.validatedObservable(settings.ContactType);\r\n this.DisplayName = ko.validatedObservable(settings.DisplayName);\r\n this.ShowOnDirectory = ko.validatedObservable(settings.ShowOnDirectory);\r\n this.DoNotContact = ko.validatedObservable(settings.DoNotContact);\r\n this.ContactPronounSetID = ko.validatedObservable(settings.ContactPronounSetID);\r\n this.DefaultLocaleID = ko.validatedObservable(settings.DefaultLocaleID);\r\n this.CRMRankID = ko.validatedObservable(settings.CRMRankID);\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.NodeA = ko.observable();\r\n this.NodeZ = ko.observable();\r\n this.RelationshipType = ko.observable();\r\n this.CRMRank = ko.observable();\r\n this.DefaultLocale = ko.observable();\r\n this.Addresses = ko.observableArray([]);\r\n this.PhoneNumbers = ko.observableArray([]);\r\n this.ElectronicAddresses = ko.observableArray([]);\r\n this.Pictures = ko.observableArray([]);\r\n this.Notes = ko.observableArray([]);\r\n this.Interests = ko.observableArray([]);\r\n this.Greetings = ko.observableArray([]);\r\n this.MyARelations = ko.observableArray([]);\r\n this.MyZRelations = ko.observableArray([]);\r\n this.Holds = ko.observableArray([]);\r\n this.Alerts = ko.observableArray([]);\r\n this.UserNotes = ko.observableArray([]);\r\n this.DocumentRepository = ko.observableArray([]);\r\n this.ContactPronounSet = 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.RelationshipTypeID != undefined) {\r\n loaded.RelationshipTypeID(responseData.RelationshipTypeID);\r\n }\r\n if (responseData.NodeAID != undefined) {\r\n loaded.NodeAID(responseData.NodeAID);\r\n }\r\n if (responseData.NodeZID != undefined) {\r\n loaded.NodeZID(responseData.NodeZID);\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.NavigatorScreenGID != undefined) {\r\n loaded.NavigatorScreenGID(responseData.NavigatorScreenGID);\r\n }\r\n if (responseData.ContactType != undefined) {\r\n loaded.ContactType(responseData.ContactType);\r\n }\r\n if (responseData.DisplayName != undefined) {\r\n loaded.DisplayName(responseData.DisplayName);\r\n }\r\n if (responseData.ShowOnDirectory != undefined) {\r\n loaded.ShowOnDirectory(responseData.ShowOnDirectory);\r\n }\r\n if (responseData.DoNotContact != undefined) {\r\n loaded.DoNotContact(responseData.DoNotContact);\r\n }\r\n if (responseData.ContactPronounSetID != undefined) {\r\n loaded.ContactPronounSetID(responseData.ContactPronounSetID);\r\n }\r\n if (responseData.DefaultLocaleID != undefined) {\r\n loaded.DefaultLocaleID(responseData.DefaultLocaleID);\r\n }\r\n if (responseData.CRMRankID != undefined) {\r\n loaded.CRMRankID(responseData.CRMRankID);\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.NodeA != null) {\r\n loaded.NodeA(new smapi.community.ContactModel().LoadFromResponse(responseData.NodeA));\r\n }\r\n if (responseData.NodeZ != null) {\r\n loaded.NodeZ(new smapi.community.ContactModel().LoadFromResponse(responseData.NodeZ));\r\n }\r\n if (responseData.RelationshipType != null) {\r\n loaded.RelationshipType(new smapi.community.RelationshipTypeModel().LoadFromResponse(responseData.RelationshipType));\r\n }\r\n if (responseData.CRMRank != null) {\r\n loaded.CRMRank(new smapi.community.CRMRankModel().LoadFromResponse(responseData.CRMRank));\r\n }\r\n if (responseData.DefaultLocale != null) {\r\n loaded.DefaultLocale(new smapi.entities.LocaleModel().LoadFromResponse(responseData.DefaultLocale));\r\n }\r\n if (responseData.Addresses != null && responseData.Addresses.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Addresses.length; i++) {\r\n items.push(new smapi.community.MailingAddressModel().LoadFromResponse(responseData.Addresses[i]));\r\n }\r\n loaded.Addresses(items);\r\n }\r\n if (responseData.PhoneNumbers != null && responseData.PhoneNumbers.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.PhoneNumbers.length; i++) {\r\n items.push(new smapi.community.PhoneNumberModel().LoadFromResponse(responseData.PhoneNumbers[i]));\r\n }\r\n loaded.PhoneNumbers(items);\r\n }\r\n if (responseData.ElectronicAddresses != null && responseData.ElectronicAddresses.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ElectronicAddresses.length; i++) {\r\n items.push(new smapi.community.ElectronicAddressModel().LoadFromResponse(responseData.ElectronicAddresses[i]));\r\n }\r\n loaded.ElectronicAddresses(items);\r\n }\r\n if (responseData.Pictures != null && responseData.Pictures.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Pictures.length; i++) {\r\n items.push(new smapi.community.ContactPictureModel().LoadFromResponse(responseData.Pictures[i]));\r\n }\r\n loaded.Pictures(items);\r\n }\r\n if (responseData.Notes != null && responseData.Notes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Notes.length; i++) {\r\n items.push(new smapi.community.ContactNoteModel().LoadFromResponse(responseData.Notes[i]));\r\n }\r\n loaded.Notes(items);\r\n }\r\n if (responseData.Interests != null && responseData.Interests.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Interests.length; i++) {\r\n items.push(new smapi.community.ContactInterestModel().LoadFromResponse(responseData.Interests[i]));\r\n }\r\n loaded.Interests(items);\r\n }\r\n if (responseData.Greetings != null && responseData.Greetings.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Greetings.length; i++) {\r\n items.push(new smapi.community.ContactGreetingModel().LoadFromResponse(responseData.Greetings[i]));\r\n }\r\n loaded.Greetings(items);\r\n }\r\n if (responseData.MyARelations != null && responseData.MyARelations.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.MyARelations.length; i++) {\r\n items.push(new smapi.community.ContactRelationshipModel().LoadFromResponse(responseData.MyARelations[i]));\r\n }\r\n loaded.MyARelations(items);\r\n }\r\n if (responseData.MyZRelations != null && responseData.MyZRelations.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.MyZRelations.length; i++) {\r\n items.push(new smapi.community.ContactRelationshipModel().LoadFromResponse(responseData.MyZRelations[i]));\r\n }\r\n loaded.MyZRelations(items);\r\n }\r\n if (responseData.Holds != null && responseData.Holds.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Holds.length; i++) {\r\n items.push(new smapi.community.ContactHoldModel().LoadFromResponse(responseData.Holds[i]));\r\n }\r\n loaded.Holds(items);\r\n }\r\n if (responseData.Alerts != null && responseData.Alerts.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Alerts.length; i++) {\r\n items.push(new smapi.community.ContactAlertModel().LoadFromResponse(responseData.Alerts[i]));\r\n }\r\n loaded.Alerts(items);\r\n }\r\n if (responseData.UserNotes != null && responseData.UserNotes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.UserNotes.length; i++) {\r\n items.push(new smapi.community.UserContactNoteModel().LoadFromResponse(responseData.UserNotes[i]));\r\n }\r\n loaded.UserNotes(items);\r\n }\r\n if (responseData.DocumentRepository != null && responseData.DocumentRepository.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.DocumentRepository.length; i++) {\r\n items.push(new smapi.community.DocumentRepositoryModel().LoadFromResponse(responseData.DocumentRepository[i]));\r\n }\r\n loaded.DocumentRepository(items);\r\n }\r\n if (responseData.ContactPronounSet != null) {\r\n loaded.ContactPronounSet(new smapi.community.ContactPronounSetModel().LoadFromResponse(responseData.ContactPronounSet));\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.CAMS.Community.Entity.ContactRelationship', 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.RelationshipTypeID.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.NodeAID.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.NodeZID.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.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.NavigatorScreenGID.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.ContactType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_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: 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.ContactPronounSetID.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.DefaultLocaleID.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.CRMRankID.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 ComputerModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Manufacturer: '',\r\n RAMSize: 0,\r\n HarddriveSize: 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.Manufacturer = ko.validatedObservable(settings.Manufacturer);\r\n this.RAMSize = ko.validatedObservable(settings.RAMSize);\r\n this.HarddriveSize = ko.validatedObservable(settings.HarddriveSize);\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.Manufacturer != undefined) {\r\n loaded.Manufacturer(responseData.Manufacturer);\r\n }\r\n if (responseData.RAMSize != undefined) {\r\n loaded.RAMSize(responseData.RAMSize);\r\n }\r\n if (responseData.HarddriveSize != undefined) {\r\n loaded.HarddriveSize(responseData.HarddriveSize);\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.CAMS.Community.Entity.Computer', 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.Manufacturer.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.RAMSize.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.HarddriveSize.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 DemographicDataModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n ParentMaritalStatusID: null,\r\n IsHispanic: false,\r\n ReligionID: null,\r\n MaritalStatusID: null,\r\n BirthCountryID: null,\r\n BirthStateID: null,\r\n BirthCountyID: null,\r\n BirthCity: '',\r\n ResidentCountryID: null,\r\n ResidentStateID: null,\r\n ResidentCountyID: null,\r\n OriginStateID: null,\r\n OriginCountyID: null,\r\n Veteran: false,\r\n IndigenousPersonDeclarationID:null,\r\n IsGuardiansAttendedcollege: false,\r\n NumOfDependents: 0,\r\n NumOfDependentsInHousehold: 0,\r\n DriversLicenseStateID: null,\r\n DriversLicense: '',\r\n PlaceOfWorshipID: null,\r\n LiveWithID: null,\r\n ConvictedFelon: false,\r\n CriminalConviction: 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.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.ParentMaritalStatusID = ko.validatedObservable(settings.ParentMaritalStatusID);\r\n this.IsHispanic = ko.validatedObservable(settings.IsHispanic);\r\n this.ReligionID = ko.validatedObservable(settings.ReligionID);\r\n this.MaritalStatusID = ko.validatedObservable(settings.MaritalStatusID);\r\n this.BirthCountryID = ko.validatedObservable(settings.BirthCountryID);\r\n this.BirthStateID = ko.validatedObservable(settings.BirthStateID);\r\n this.BirthCountyID = ko.validatedObservable(settings.BirthCountyID);\r\n this.BirthCity = ko.validatedObservable(settings.BirthCity);\r\n this.IndigenousPersonDeclarationID = ko.validatedObservable(settings.IndigenousPersonDeclarationID);\r\n this.IsGuardiansAttendedcollege = ko.validatedObservable(settings.IsGuardiansAttendedcollege);\r\n this.ResidentCountryID = ko.validatedObservable(settings.ResidentCountryID);\r\n this.ResidentStateID = ko.validatedObservable(settings.ResidentStateID);\r\n this.ResidentCountyID = ko.validatedObservable(settings.ResidentCountyID);\r\n this.OriginStateID = ko.validatedObservable(settings.OriginStateID);\r\n this.OriginCountyID = ko.validatedObservable(settings.OriginCountyID);\r\n this.Veteran = ko.validatedObservable(settings.Veteran);\r\n this.NumOfDependents = ko.validatedObservable(settings.NumOfDependents);\r\n this.NumOfDependentsInHousehold = ko.validatedObservable(settings.NumOfDependentsInHousehold);\r\n this.DriversLicenseStateID = ko.validatedObservable(settings.DriversLicenseStateID);\r\n this.DriversLicense = ko.validatedObservable(settings.DriversLicense);\r\n this.PlaceOfWorshipID = ko.validatedObservable(settings.PlaceOfWorshipID);\r\n this.LiveWithID = ko.validatedObservable(settings.LiveWithID);\r\n this.ConvictedFelon = ko.validatedObservable(settings.ConvictedFelon);\r\n this.CriminalConviction = ko.validatedObservable(settings.CriminalConviction);\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.Person = ko.observable();\r\n this.BirthCountry = ko.observable();\r\n this.BirthGoverningDistrict = ko.observable();\r\n this.ResidentCountry = ko.observable();\r\n this.ResidentGoverningDistrict = ko.observable();\r\n this.OriginGoverningDistrict = ko.observable();\r\n this.DriversLicenseGoverningDistrict = ko.observable();\r\n this.PlaceOfWorship = ko.observable();\r\n this.Citizenships = ko.observableArray([]);\r\n this.MilitaryService = ko.observableArray([]);\r\n this.Languages = ko.observableArray([]);\r\n this.ParentMaritalStatus = ko.observable();\r\n this.EthnicOrigins = ko.observableArray([]);\r\n this.Religion = ko.observable();\r\n this.MaritalStatus = ko.observable();\r\n this.BirthCounty = ko.observable();\r\n this.ResidentCounty = ko.observable();\r\n this.OriginCounty = ko.observable();\r\n this.LiveWith = 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.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.ParentMaritalStatusID != undefined) {\r\n loaded.ParentMaritalStatusID(responseData.ParentMaritalStatusID);\r\n }\r\n if (responseData.IsHispanic != undefined) {\r\n loaded.IsHispanic(responseData.IsHispanic);\r\n }\r\n if (responseData.ReligionID != undefined) {\r\n loaded.ReligionID(responseData.ReligionID);\r\n }\r\n if (responseData.MaritalStatusID != undefined) {\r\n loaded.MaritalStatusID(responseData.MaritalStatusID);\r\n }\r\n if (responseData.BirthCountryID != undefined) {\r\n loaded.BirthCountryID(responseData.BirthCountryID);\r\n }\r\n if (responseData.BirthStateID != undefined) {\r\n loaded.BirthStateID(responseData.BirthStateID);\r\n }\r\n if (responseData.BirthCountyID != undefined) {\r\n loaded.BirthCountyID(responseData.BirthCountyID);\r\n }\r\n if (responseData.BirthCity != undefined) {\r\n loaded.BirthCity(responseData.BirthCity);\r\n }\r\n if (responseData.IndigenousPersonDeclarationID != undefined) {\r\n loaded.IndigenousPersonDeclarationID(responseData.IndigenousPersonDeclarationID);\r\n }\r\n if (responseData.IsGuardiansAttendedcollege != undefined) {\r\n loaded.IsGuardiansAttendedcollege(responseData.IsGuardiansAttendedcollege);\r\n }\r\n if (responseData.ResidentCountryID != undefined) {\r\n loaded.ResidentCountryID(responseData.ResidentCountryID);\r\n }\r\n if (responseData.ResidentStateID != undefined) {\r\n loaded.ResidentStateID(responseData.ResidentStateID);\r\n }\r\n if (responseData.ResidentCountyID != undefined) {\r\n loaded.ResidentCountyID(responseData.ResidentCountyID);\r\n }\r\n if (responseData.OriginStateID != undefined) {\r\n loaded.OriginStateID(responseData.OriginStateID);\r\n }\r\n if (responseData.OriginCountyID != undefined) {\r\n loaded.OriginCountyID(responseData.OriginCountyID);\r\n }\r\n if (responseData.Veteran != undefined) {\r\n loaded.Veteran(responseData.Veteran);\r\n }\r\n if (responseData.NumOfDependents != undefined) {\r\n loaded.NumOfDependents(responseData.NumOfDependents);\r\n }\r\n if (responseData.NumOfDependentsInHousehold != undefined) {\r\n loaded.NumOfDependentsInHousehold(responseData.NumOfDependentsInHousehold);\r\n }\r\n if (responseData.DriversLicenseStateID != undefined) {\r\n loaded.DriversLicenseStateID(responseData.DriversLicenseStateID);\r\n }\r\n if (responseData.DriversLicense != undefined) {\r\n loaded.DriversLicense(responseData.DriversLicense);\r\n }\r\n if (responseData.PlaceOfWorshipID != undefined) {\r\n loaded.PlaceOfWorshipID(responseData.PlaceOfWorshipID);\r\n }\r\n if (responseData.LiveWithID != undefined) {\r\n loaded.LiveWithID(responseData.LiveWithID);\r\n }\r\n if (responseData.ConvictedFelon != undefined) {\r\n loaded.ConvictedFelon(responseData.ConvictedFelon);\r\n }\r\n if (responseData.CriminalConviction != undefined) {\r\n loaded.CriminalConviction(responseData.CriminalConviction);\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.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.BirthCountry != null) {\r\n loaded.BirthCountry(new smapi.community.CountryModel().LoadFromResponse(responseData.BirthCountry));\r\n }\r\n if (responseData.BirthGoverningDistrict != null) {\r\n loaded.BirthGoverningDistrict(new smapi.community.GoverningDistrictModel().LoadFromResponse(responseData.BirthGoverningDistrict));\r\n }\r\n if (responseData.ResidentCountry != null) {\r\n loaded.ResidentCountry(new smapi.community.CountryModel().LoadFromResponse(responseData.ResidentCountry));\r\n }\r\n if (responseData.ResidentGoverningDistrict != null) {\r\n loaded.ResidentGoverningDistrict(new smapi.community.GoverningDistrictModel().LoadFromResponse(responseData.ResidentGoverningDistrict));\r\n }\r\n if (responseData.OriginGoverningDistrict != null) {\r\n loaded.OriginGoverningDistrict(new smapi.community.GoverningDistrictModel().LoadFromResponse(responseData.OriginGoverningDistrict));\r\n }\r\n if (responseData.DriversLicenseGoverningDistrict != null) {\r\n loaded.DriversLicenseGoverningDistrict(new smapi.community.GoverningDistrictModel().LoadFromResponse(responseData.DriversLicenseGoverningDistrict));\r\n }\r\n if (responseData.PlaceOfWorship != null) {\r\n loaded.PlaceOfWorship(new smapi.community.PlaceOfWorshipModel().LoadFromResponse(responseData.PlaceOfWorship));\r\n }\r\n if (responseData.Citizenships != null && responseData.Citizenships.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Citizenships.length; i++) {\r\n items.push(new smapi.community.CitizenshipModel().LoadFromResponse(responseData.Citizenships[i]));\r\n }\r\n loaded.Citizenships(items);\r\n }\r\n if (responseData.MilitaryService != null && responseData.MilitaryService.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.MilitaryService.length; i++) {\r\n items.push(new smapi.community.MilitaryServiceModel().LoadFromResponse(responseData.MilitaryService[i]));\r\n }\r\n loaded.MilitaryService(items);\r\n }\r\n if (responseData.Languages != null && responseData.Languages.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Languages.length; i++) {\r\n items.push(new smapi.community.LanguagesModel().LoadFromResponse(responseData.Languages[i]));\r\n }\r\n loaded.Languages(items);\r\n }\r\n if (responseData.ParentMaritalStatus != null) {\r\n loaded.ParentMaritalStatus(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.ParentMaritalStatus));\r\n }\r\n if (responseData.EthnicOrigins != null && responseData.EthnicOrigins.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.EthnicOrigins.length; i++) {\r\n items.push(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.EthnicOrigins[i]));\r\n }\r\n loaded.EthnicOrigins(items);\r\n }\r\n if (responseData.Religion != null) {\r\n loaded.Religion(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Religion));\r\n }\r\n if (responseData.MaritalStatus != null) {\r\n loaded.MaritalStatus(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.MaritalStatus));\r\n }\r\n if (responseData.BirthCounty != null) {\r\n loaded.BirthCounty(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.BirthCounty));\r\n }\r\n if (responseData.ResidentCounty != null) {\r\n loaded.ResidentCounty(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.ResidentCounty));\r\n }\r\n if (responseData.OriginCounty != null) {\r\n loaded.OriginCounty(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.OriginCounty));\r\n }\r\n if (responseData.LiveWith != null) {\r\n loaded.LiveWith(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.LiveWith));\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.CAMS.Community.Entity.DemographicData', 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.PersonID.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.ParentMaritalStatusID.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.ReligionID.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.MaritalStatusID.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.BirthCountryID.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.BirthStateID.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.BirthCountyID.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.BirthCity.extend({\r\n maxLength: {\r\n params: 60,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '60')\r\n }\r\n });\r\n this.ResidentCountryID.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.ResidentStateID.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.ResidentCountyID.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.OriginStateID.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.OriginCountyID.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.NumOfDependents.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.NumOfDependentsInHousehold.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.DriversLicenseStateID.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.DriversLicense.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.PlaceOfWorshipID.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.LiveWithID.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 CitizenshipModel(options) {\r\n var defaults = {\r\n DemographicDataID: 0,\r\n CountryID: 0,\r\n NationalID: '',\r\n PassportNumber: '',\r\n PassportExpiration: null,\r\n PermanentResidentStatusID: null,\r\n VisaTypeID: null,\r\n RequireVisa: false,\r\n VisaExpirationDate: null,\r\n AlienIDNumber: '',\r\n PermanentResident: false,\r\n VisaExpirationDateNotSupplied: false,\r\n IsPrimary: 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 DateOfEntryToUK: null,\r\n PassportIssuePlace: '',\r\n VisaNumber: '',\r\n EntryDateIntoCanada: '',\r\n WorkPermitNumber: '',\r\n WorkPermitExpirationDate: '',\r\n StudyPermitNumber: '',\r\n StudyPermitExpirationDate: '',\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.DemographicDataID = ko.validatedObservable(settings.DemographicDataID);\r\n this.CountryID = ko.validatedObservable(settings.CountryID);\r\n this.NationalID = ko.validatedObservable(settings.NationalID);\r\n this.PassportNumber = ko.validatedObservable(settings.PassportNumber);\r\n this.PassportExpiration = ko.validatedObservable(settings.PassportExpiration);\r\n this.PermanentResidentStatusID = ko.validatedObservable(settings.PermanentResidentStatusID);\r\n this.VisaTypeID = ko.validatedObservable(settings.VisaTypeID);\r\n this.RequireVisa = ko.validatedObservable(settings.RequireVisa);\r\n this.VisaExpirationDate = ko.validatedObservable(settings.VisaExpirationDate);\r\n this.AlienIDNumber = ko.validatedObservable(settings.AlienIDNumber);\r\n this.PermanentResident = ko.validatedObservable(settings.PermanentResident);\r\n this.VisaExpirationDateNotSupplied = ko.validatedObservable(settings.VisaExpirationDateNotSupplied);\r\n this.IsPrimary = ko.validatedObservable(settings.IsPrimary);\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 this.DateOfEntryToUK = ko.validatedObservable(settings.DateOfEntryToUK);\r\n this.PassportIssuePlace = ko.validatedObservable(settings.PassportIssuePlace);\r\n this.VisaNumber = ko.validatedObservable(settings.VisaNumber);\r\n this.EntryDateIntoCanada = ko.validatedObservable(settings.EntryDateIntoCanada);\r\n this.WorkPermitNumber = ko.validatedObservable(settings.WorkPermitNumber);\r\n this.WorkPermitExpirationDate = ko.validatedObservable(settings.WorkPermitExpirationDate);\r\n this.StudyPermitNumber = ko.validatedObservable(settings.StudyPermitNumber);\r\n this.StudyPermitExpirationDate = ko.validatedObservable(settings.StudyPermitExpirationDate);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.DemographicData = ko.observable();\r\n this.Country = ko.observable();\r\n this.PermanentResidentStatus = ko.observable();\r\n this.VisaType = 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.DemographicDataID != undefined) {\r\n loaded.DemographicDataID(responseData.DemographicDataID);\r\n }\r\n if (responseData.CountryID != undefined) {\r\n loaded.CountryID(responseData.CountryID);\r\n }\r\n if (responseData.NationalID != undefined) {\r\n loaded.NationalID(responseData.NationalID);\r\n }\r\n if (responseData.PassportNumber != undefined) {\r\n loaded.PassportNumber(responseData.PassportNumber);\r\n }\r\n if (responseData.PassportExpiration != undefined) {\r\n loaded.PassportExpiration(responseData.PassportExpiration);\r\n }\r\n if (responseData.PermanentResidentStatusID != undefined) {\r\n loaded.PermanentResidentStatusID(responseData.PermanentResidentStatusID);\r\n }\r\n if (responseData.VisaTypeID != undefined) {\r\n loaded.VisaTypeID(responseData.VisaTypeID);\r\n }\r\n if (responseData.RequireVisa != undefined) {\r\n loaded.RequireVisa(responseData.RequireVisa);\r\n }\r\n if (responseData.VisaExpirationDate != undefined) {\r\n loaded.VisaExpirationDate(responseData.VisaExpirationDate);\r\n }\r\n if (responseData.EntryDateIntoCanada != undefined) {\r\n loaded.EntryDateIntoCanada(responseData.EntryDateIntoCanada);\r\n }\r\n if (responseData.WorkPermitNumber != undefined) {\r\n loaded.WorkPermitNumber(responseData.WorkPermitNumber);\r\n }\r\n if (responseData.WorkPermitExpirationDate != undefined) {\r\n loaded.WorkPermitExpirationDate(responseData.WorkPermitExpirationDate);\r\n }\r\n if (responseData.StudyPermitNumber != undefined) {\r\n loaded.StudyPermitNumber(responseData.StudyPermitNumber);\r\n }\r\n if (responseData.StudyPermitExpirationDate != undefined) {\r\n loaded.StudyPermitExpirationDate(responseData.StudyPermitExpirationDate);\r\n }\r\n if (responseData.AlienIDNumber != undefined) {\r\n loaded.AlienIDNumber(responseData.AlienIDNumber);\r\n }\r\n if (responseData.PermanentResident != undefined) {\r\n loaded.PermanentResident(responseData.PermanentResident);\r\n }\r\n if (responseData.VisaExpirationDateNotSupplied != undefined) {\r\n loaded.VisaExpirationDateNotSupplied(responseData.VisaExpirationDateNotSupplied);\r\n }\r\n if (responseData.IsPrimary != undefined) {\r\n loaded.IsPrimary(responseData.IsPrimary);\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.DemographicData != null) {\r\n loaded.DemographicData(new smapi.community.DemographicDataModel().LoadFromResponse(responseData.DemographicData));\r\n }\r\n if (responseData.Country != null) {\r\n loaded.Country(new smapi.community.CountryModel().LoadFromResponse(responseData.Country));\r\n }\r\n if (responseData.PermanentResidentStatus != null) {\r\n loaded.PermanentResidentStatus(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.PermanentResidentStatus));\r\n }\r\n if (responseData.VisaType != null) {\r\n loaded.VisaType(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.VisaType));\r\n }\r\n if (responseData.DateOfEntryToUK != undefined) {\r\n loaded.DateOfEntryToUK(responseData.DateOfEntryToUK);\r\n }\r\n if (responseData.PassportIssuePlace != undefined) {\r\n loaded.PassportIssuePlace(responseData.PassportIssuePlace);\r\n }\r\n if (responseData.VisaNumber != undefined) {\r\n loaded.VisaNumber(responseData.VisaNumber);\r\n }\r\n var custDta = {\r\n defaults: defaults,\r\n settings : settings,\r\n self : self,\r\n responseData : responseData,\r\n loaded : loaded\r\n }\r\n sm.portal.vm.custom.callCustomization('ResponseHandlingForCitizenModel', custDta);\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.CAMS.Community.Entity.Citizenship', 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.DemographicDataID.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.CountryID.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.NationalID.extend({\r\n maxLength: {\r\n params: 60,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '60')\r\n }\r\n });\r\n this.PassportNumber.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.PassportExpiration.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.PermanentResidentStatusID.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.VisaTypeID.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.VisaExpirationDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AlienIDNumber.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 this.DateOfEntryToUK.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.PassportIssuePlace.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.VisaNumber.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 \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 MilitaryClassificationModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n SortOrder: 0,\r\n BranchID: 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.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BranchID = ko.validatedObservable(settings.BranchID);\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.Branch = 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.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BranchID != undefined) {\r\n loaded.BranchID(responseData.BranchID);\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.Branch != null) {\r\n loaded.Branch(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Branch));\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.CAMS.Community.Entity.MilitaryClassification', 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.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.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.BranchID.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 MilitaryPayGradeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\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.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\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.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\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.CAMS.Community.Entity.MilitaryPayGrade', 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.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.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 MilitaryRankModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n SortOrder: 0,\r\n BranchID: 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.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BranchID = ko.validatedObservable(settings.BranchID);\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.Branch = 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.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BranchID != undefined) {\r\n loaded.BranchID(responseData.BranchID);\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.Branch != null) {\r\n loaded.Branch(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Branch));\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.CAMS.Community.Entity.MilitaryRank', 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.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.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.BranchID.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 MilitaryServiceModel(options) {\r\n var defaults = {\r\n DemographicDataID: 0,\r\n BranchID: 0,\r\n MilitaryStatusID: null,\r\n DateOfServiceFrom: null,\r\n DateOfServiceTo: null,\r\n MilitaryRankID: null,\r\n MilitaryPayGradeID: null,\r\n MilitaryClassificationID: null,\r\n PrimaryAFSC: '',\r\n SecondaryAFSC: '',\r\n TertiaryAFSC: '',\r\n QuaternaryAFSC: '',\r\n Unit: '',\r\n DateOfRank: null,\r\n PromotionLineNumber: 0,\r\n EligibleForReinstatement: false,\r\n EnlistmentDateTo: null,\r\n EnlistmentDateFrom: 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.DemographicDataID = ko.validatedObservable(settings.DemographicDataID);\r\n this.BranchID = ko.validatedObservable(settings.BranchID);\r\n this.MilitaryStatusID = ko.validatedObservable(settings.MilitaryStatusID);\r\n this.DateOfServiceFrom = ko.validatedObservable(settings.DateOfServiceFrom);\r\n this.DateOfServiceTo = ko.validatedObservable(settings.DateOfServiceTo);\r\n this.MilitaryRankID = ko.validatedObservable(settings.MilitaryRankID);\r\n this.MilitaryPayGradeID = ko.validatedObservable(settings.MilitaryPayGradeID);\r\n this.MilitaryClassificationID = ko.validatedObservable(settings.MilitaryClassificationID);\r\n this.PrimaryAFSC = ko.validatedObservable(settings.PrimaryAFSC);\r\n this.SecondaryAFSC = ko.validatedObservable(settings.SecondaryAFSC);\r\n this.TertiaryAFSC = ko.validatedObservable(settings.TertiaryAFSC);\r\n this.QuaternaryAFSC = ko.validatedObservable(settings.QuaternaryAFSC);\r\n this.Unit = ko.validatedObservable(settings.Unit);\r\n this.DateOfRank = ko.validatedObservable(settings.DateOfRank);\r\n this.PromotionLineNumber = ko.validatedObservable(settings.PromotionLineNumber);\r\n this.EligibleForReinstatement = ko.validatedObservable(settings.EligibleForReinstatement);\r\n this.EnlistmentDateTo = ko.validatedObservable(settings.EnlistmentDateTo);\r\n this.EnlistmentDateFrom = ko.validatedObservable(settings.EnlistmentDateFrom);\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.DemographicData = ko.observable();\r\n this.MilitaryRank = ko.observable();\r\n this.MilitaryPayGrade = ko.observable();\r\n this.MilitaryClassification = ko.observable();\r\n this.Branch = ko.observable();\r\n this.MilitaryStatus = 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.DemographicDataID != undefined) {\r\n loaded.DemographicDataID(responseData.DemographicDataID);\r\n }\r\n if (responseData.BranchID != undefined) {\r\n loaded.BranchID(responseData.BranchID);\r\n }\r\n if (responseData.MilitaryStatusID != undefined) {\r\n loaded.MilitaryStatusID(responseData.MilitaryStatusID);\r\n }\r\n if (responseData.DateOfServiceFrom != undefined) {\r\n loaded.DateOfServiceFrom(responseData.DateOfServiceFrom);\r\n }\r\n if (responseData.DateOfServiceTo != undefined) {\r\n loaded.DateOfServiceTo(responseData.DateOfServiceTo);\r\n }\r\n if (responseData.MilitaryRankID != undefined) {\r\n loaded.MilitaryRankID(responseData.MilitaryRankID);\r\n }\r\n if (responseData.MilitaryPayGradeID != undefined) {\r\n loaded.MilitaryPayGradeID(responseData.MilitaryPayGradeID);\r\n }\r\n if (responseData.MilitaryClassificationID != undefined) {\r\n loaded.MilitaryClassificationID(responseData.MilitaryClassificationID);\r\n }\r\n if (responseData.PrimaryAFSC != undefined) {\r\n loaded.PrimaryAFSC(responseData.PrimaryAFSC);\r\n }\r\n if (responseData.SecondaryAFSC != undefined) {\r\n loaded.SecondaryAFSC(responseData.SecondaryAFSC);\r\n }\r\n if (responseData.TertiaryAFSC != undefined) {\r\n loaded.TertiaryAFSC(responseData.TertiaryAFSC);\r\n }\r\n if (responseData.QuaternaryAFSC != undefined) {\r\n loaded.QuaternaryAFSC(responseData.QuaternaryAFSC);\r\n }\r\n if (responseData.Unit != undefined) {\r\n loaded.Unit(responseData.Unit);\r\n }\r\n if (responseData.DateOfRank != undefined) {\r\n loaded.DateOfRank(responseData.DateOfRank);\r\n }\r\n if (responseData.PromotionLineNumber != undefined) {\r\n loaded.PromotionLineNumber(responseData.PromotionLineNumber);\r\n }\r\n if (responseData.EligibleForReinstatement != undefined) {\r\n loaded.EligibleForReinstatement(responseData.EligibleForReinstatement);\r\n }\r\n if (responseData.EnlistmentDateTo != undefined) {\r\n loaded.EnlistmentDateTo(responseData.EnlistmentDateTo);\r\n }\r\n if (responseData.EnlistmentDateFrom != undefined) {\r\n loaded.EnlistmentDateFrom(responseData.EnlistmentDateFrom);\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.DemographicData != null) {\r\n loaded.DemographicData(new smapi.community.DemographicDataModel().LoadFromResponse(responseData.DemographicData));\r\n }\r\n if (responseData.MilitaryRank != null) {\r\n loaded.MilitaryRank(new smapi.community.MilitaryRankModel().LoadFromResponse(responseData.MilitaryRank));\r\n }\r\n if (responseData.MilitaryPayGrade != null) {\r\n loaded.MilitaryPayGrade(new smapi.community.MilitaryPayGradeModel().LoadFromResponse(responseData.MilitaryPayGrade));\r\n }\r\n if (responseData.MilitaryClassification != null) {\r\n loaded.MilitaryClassification(new smapi.community.MilitaryClassificationModel().LoadFromResponse(responseData.MilitaryClassification));\r\n }\r\n if (responseData.Branch != null) {\r\n loaded.Branch(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Branch));\r\n }\r\n if (responseData.MilitaryStatus != null) {\r\n loaded.MilitaryStatus(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.MilitaryStatus));\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.CAMS.Community.Entity.MilitaryService', 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.DemographicDataID.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.BranchID.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.MilitaryStatusID.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.DateOfServiceFrom.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.DateOfServiceTo.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.MilitaryRankID.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.MilitaryPayGradeID.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.MilitaryClassificationID.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.PrimaryAFSC.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.SecondaryAFSC.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.TertiaryAFSC.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.QuaternaryAFSC.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.Unit.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.DateOfRank.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.PromotionLineNumber.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.EnlistmentDateTo.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.EnlistmentDateFrom.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 LanguagesModel(options) {\r\n var defaults = {\r\n DemographicDataID: 0,\r\n LanguageID: 0,\r\n Proficiency: '',\r\n IsPrimary: false,\r\n EducationReceived: '',\r\n QualificationsObtained: '',\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.DemographicDataID = ko.validatedObservable(settings.DemographicDataID);\r\n this.LanguageID = ko.validatedObservable(settings.LanguageID);\r\n this.Proficiency = ko.validatedObservable(settings.Proficiency);\r\n this.IsPrimary = ko.validatedObservable(settings.IsPrimary);\r\n this.EducationReceived = ko.validatedObservable(settings.EducationReceived);\r\n this.QualificationsObtained = ko.validatedObservable(settings.QualificationsObtained);\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.DemographicData = ko.observable();\r\n this.Language = 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.DemographicDataID != undefined) {\r\n loaded.DemographicDataID(responseData.DemographicDataID);\r\n }\r\n if (responseData.LanguageID != undefined) {\r\n loaded.LanguageID(responseData.LanguageID);\r\n }\r\n if (responseData.Proficiency != undefined) {\r\n loaded.Proficiency(responseData.Proficiency);\r\n }\r\n if (responseData.IsPrimary != undefined) {\r\n loaded.IsPrimary(responseData.IsPrimary);\r\n }\r\n if (responseData.EducationReceived != undefined) {\r\n loaded.EducationReceived(responseData.EducationReceived);\r\n }\r\n if (responseData.QualificationsObtained != undefined) {\r\n loaded.QualificationsObtained(responseData.QualificationsObtained);\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.DemographicData != null) {\r\n loaded.DemographicData(new smapi.community.DemographicDataModel().LoadFromResponse(responseData.DemographicData));\r\n }\r\n if (responseData.Language != null) {\r\n loaded.Language(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Language));\r\n }\r\n var custData = {\r\n defaults : defaults,\r\n self : self,\r\n settings : settings,\r\n responseData : responseData,\r\n loaded : loaded\r\n }\r\n sm.portal.vm.custom.callCustomization('ResponseHandlingForLanguageModel', custData); \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.CAMS.Community.Entity.Languages', 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.DemographicDataID.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.LanguageID.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.Proficiency.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.EducationReceived.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n maxLength: {\r\n params: 250,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '250')\r\n }\r\n });\r\n this.QualificationsObtained.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n maxLength: {\r\n params: 250,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '250')\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 SocietyModuleSettingsModel(options) {\r\n var defaults = {\r\n ApplicationName: '',\r\n SiteName: '',\r\n UnknownEmailAddress: '',\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.UnknownEmailAddress = ko.validatedObservable(settings.UnknownEmailAddress);\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.UnknownEmailAddress != undefined) {\r\n loaded.UnknownEmailAddress(responseData.UnknownEmailAddress);\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.CAMS.Community.Entity.SocietyModuleSettings', 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.UnknownEmailAddress.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 PhoneCarrierModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n Organization: '',\r\n SMSGatewayFormat: '',\r\n MMSGatewayFormat: '',\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.Organization = ko.validatedObservable(settings.Organization);\r\n this.SMSGatewayFormat = ko.validatedObservable(settings.SMSGatewayFormat);\r\n this.MMSGatewayFormat = ko.validatedObservable(settings.MMSGatewayFormat);\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.Organization != undefined) {\r\n loaded.Organization(responseData.Organization);\r\n }\r\n if (responseData.SMSGatewayFormat != undefined) {\r\n loaded.SMSGatewayFormat(responseData.SMSGatewayFormat);\r\n }\r\n if (responseData.MMSGatewayFormat != undefined) {\r\n loaded.MMSGatewayFormat(responseData.MMSGatewayFormat);\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.CAMS.Community.Entity.PhoneCarrier', 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: 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.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.Organization.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.SMSGatewayFormat.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.MMSGatewayFormat.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.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 AddressVerificationProviderModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n Global: false,\r\n Precendence: false,\r\n GeoCodeOnAV: false,\r\n CanSearchAddresses: false,\r\n GeoCodeOnSearch: false,\r\n DefaultProvider: false,\r\n ConfigurationEntityID: 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.Global = ko.validatedObservable(settings.Global);\r\n this.Precendence = ko.validatedObservable(settings.Precendence);\r\n this.GeoCodeOnAV = ko.validatedObservable(settings.GeoCodeOnAV);\r\n this.CanSearchAddresses = ko.validatedObservable(settings.CanSearchAddresses);\r\n this.GeoCodeOnSearch = ko.validatedObservable(settings.GeoCodeOnSearch);\r\n this.DefaultProvider = ko.validatedObservable(settings.DefaultProvider);\r\n this.ConfigurationEntityID = ko.validatedObservable(settings.ConfigurationEntityID);\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.ConfigurationEntity = ko.observable();\r\n this.CountriesCovered = 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.Global != undefined) {\r\n loaded.Global(responseData.Global);\r\n }\r\n if (responseData.Precendence != undefined) {\r\n loaded.Precendence(responseData.Precendence);\r\n }\r\n if (responseData.GeoCodeOnAV != undefined) {\r\n loaded.GeoCodeOnAV(responseData.GeoCodeOnAV);\r\n }\r\n if (responseData.CanSearchAddresses != undefined) {\r\n loaded.CanSearchAddresses(responseData.CanSearchAddresses);\r\n }\r\n if (responseData.GeoCodeOnSearch != undefined) {\r\n loaded.GeoCodeOnSearch(responseData.GeoCodeOnSearch);\r\n }\r\n if (responseData.DefaultProvider != undefined) {\r\n loaded.DefaultProvider(responseData.DefaultProvider);\r\n }\r\n if (responseData.ConfigurationEntityID != undefined) {\r\n loaded.ConfigurationEntityID(responseData.ConfigurationEntityID);\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.ConfigurationEntity != null) {\r\n loaded.ConfigurationEntity(new smapi.entities.EntityModel().LoadFromResponse(responseData.ConfigurationEntity));\r\n }\r\n if (responseData.CountriesCovered != null && responseData.CountriesCovered.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.CountriesCovered.length; i++) {\r\n items.push(new smapi.community.CountryModel().LoadFromResponse(responseData.CountriesCovered[i]));\r\n }\r\n loaded.CountriesCovered(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.CAMS.Community.Entity.AddressVerificationProvider', 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.ConfigurationEntityID.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 SatoriAddOnsModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n ProductKeyID: '',\r\n SatoriID: 0,\r\n CountryID: 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.ProductKeyID = ko.validatedObservable(settings.ProductKeyID);\r\n this.SatoriID = ko.validatedObservable(settings.SatoriID);\r\n this.CountryID = ko.validatedObservable(settings.CountryID);\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.Satori = ko.observable();\r\n this.Country = 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.ProductKeyID != undefined) {\r\n loaded.ProductKeyID(responseData.ProductKeyID);\r\n }\r\n if (responseData.SatoriID != undefined) {\r\n loaded.SatoriID(responseData.SatoriID);\r\n }\r\n if (responseData.CountryID != undefined) {\r\n loaded.CountryID(responseData.CountryID);\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.Satori != null) {\r\n loaded.Satori(new smapi.community.SatoriModel().LoadFromResponse(responseData.Satori));\r\n }\r\n if (responseData.Country != null) {\r\n loaded.Country(new smapi.community.CountryModel().LoadFromResponse(responseData.Country));\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.CAMS.Community.Entity.SatoriAddOns', 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 maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ProductKeyID.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.SatoriID.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.CountryID.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 SatoriModel(options) {\r\n var defaults = {\r\n ProductKeyId: '',\r\n GeoCodeKeyId: '',\r\n ProductKeyExpDate: null,\r\n GeoCodeKeyExpDate: null,\r\n AVSingleWebServiceURL: '',\r\n AVBatchWebServiceURL: '',\r\n NCOAWebServiceURL: '',\r\n MailRoomServerHost: '',\r\n PortNumber: 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.ProductKeyId = ko.validatedObservable(settings.ProductKeyId);\r\n this.GeoCodeKeyId = ko.validatedObservable(settings.GeoCodeKeyId);\r\n this.ProductKeyExpDate = ko.validatedObservable(settings.ProductKeyExpDate);\r\n this.GeoCodeKeyExpDate = ko.validatedObservable(settings.GeoCodeKeyExpDate);\r\n this.AVSingleWebServiceURL = ko.validatedObservable(settings.AVSingleWebServiceURL);\r\n this.AVBatchWebServiceURL = ko.validatedObservable(settings.AVBatchWebServiceURL);\r\n this.NCOAWebServiceURL = ko.validatedObservable(settings.NCOAWebServiceURL);\r\n this.MailRoomServerHost = ko.validatedObservable(settings.MailRoomServerHost);\r\n this.PortNumber = ko.validatedObservable(settings.PortNumber);\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.SatoriAddOns = 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.ProductKeyId != undefined) {\r\n loaded.ProductKeyId(responseData.ProductKeyId);\r\n }\r\n if (responseData.GeoCodeKeyId != undefined) {\r\n loaded.GeoCodeKeyId(responseData.GeoCodeKeyId);\r\n }\r\n if (responseData.ProductKeyExpDate != undefined) {\r\n loaded.ProductKeyExpDate(responseData.ProductKeyExpDate);\r\n }\r\n if (responseData.GeoCodeKeyExpDate != undefined) {\r\n loaded.GeoCodeKeyExpDate(responseData.GeoCodeKeyExpDate);\r\n }\r\n if (responseData.AVSingleWebServiceURL != undefined) {\r\n loaded.AVSingleWebServiceURL(responseData.AVSingleWebServiceURL);\r\n }\r\n if (responseData.AVBatchWebServiceURL != undefined) {\r\n loaded.AVBatchWebServiceURL(responseData.AVBatchWebServiceURL);\r\n }\r\n if (responseData.NCOAWebServiceURL != undefined) {\r\n loaded.NCOAWebServiceURL(responseData.NCOAWebServiceURL);\r\n }\r\n if (responseData.MailRoomServerHost != undefined) {\r\n loaded.MailRoomServerHost(responseData.MailRoomServerHost);\r\n }\r\n if (responseData.PortNumber != undefined) {\r\n loaded.PortNumber(responseData.PortNumber);\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.SatoriAddOns != null && responseData.SatoriAddOns.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.SatoriAddOns.length; i++) {\r\n items.push(new smapi.community.SatoriAddOnsModel().LoadFromResponse(responseData.SatoriAddOns[i]));\r\n }\r\n loaded.SatoriAddOns(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.CAMS.Community.Entity.Satori', 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.ProductKeyId.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.GeoCodeKeyId.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.ProductKeyExpDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.GeoCodeKeyExpDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AVSingleWebServiceURL.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.AVBatchWebServiceURL.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.NCOAWebServiceURL.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.MailRoomServerHost.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.PortNumber.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 LoqateModel(options) {\r\n var defaults = {\r\n LqtKey: '',\r\n Geocode: false,\r\n Search: false,\r\n SearchAndGeocode: false,\r\n ServiceUrl: '',\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.LqtKey = ko.validatedObservable(settings.LqtKey);\r\n this.Geocode = ko.validatedObservable(settings.Geocode);\r\n this.Search = ko.validatedObservable(settings.Search);\r\n this.SearchAndGeocode = ko.validatedObservable(settings.SearchAndGeocode);\r\n this.ServiceUrl = ko.validatedObservable(settings.ServiceUrl);\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.LqtKey != undefined) {\r\n loaded.LqtKey(responseData.LqtKey);\r\n }\r\n if (responseData.Geocode != undefined) {\r\n loaded.Geocode(responseData.Geocode);\r\n }\r\n if (responseData.Search != undefined) {\r\n loaded.Search(responseData.Search);\r\n }\r\n if (responseData.SearchAndGeocode != undefined) {\r\n loaded.SearchAndGeocode(responseData.SearchAndGeocode);\r\n }\r\n if (responseData.ServiceUrl != undefined) {\r\n loaded.ServiceUrl(responseData.ServiceUrl);\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.CAMS.Community.Entity.Loqate', 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.LqtKey.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.ServiceUrl.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 GoverningDistrictTypeModel(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.CAMS.Community.Entity.GoverningDistrictType', 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.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 GoverningDistrictModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n ISOCode: '',\r\n BusinessMeaningName: '',\r\n GoverningDistrictTypeID: null,\r\n CountryID: 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.ISOCode = ko.validatedObservable(settings.ISOCode);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.GoverningDistrictTypeID = ko.validatedObservable(settings.GoverningDistrictTypeID);\r\n this.CountryID = ko.validatedObservable(settings.CountryID);\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.GoverningDistrictType = ko.observable();\r\n this.Country = 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.ISOCode != undefined) {\r\n loaded.ISOCode(responseData.ISOCode);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.GoverningDistrictTypeID != undefined) {\r\n loaded.GoverningDistrictTypeID(responseData.GoverningDistrictTypeID);\r\n }\r\n if (responseData.CountryID != undefined) {\r\n loaded.CountryID(responseData.CountryID);\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.GoverningDistrictType != null) {\r\n loaded.GoverningDistrictType(new smapi.community.GoverningDistrictTypeModel().LoadFromResponse(responseData.GoverningDistrictType));\r\n }\r\n if (responseData.Country != null) {\r\n loaded.Country(new smapi.community.CountryModel().LoadFromResponse(responseData.Country));\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.CAMS.Community.Entity.GoverningDistrict', 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.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: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ISOCode.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.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.GoverningDistrictTypeID.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.CountryID.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 LeadTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\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.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\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 \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.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 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.CAMS.Community.Entity.LeadType', 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.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 ContactListCriteriaGroupModel(options) {\r\n var defaults = {\r\n SortOrder: 0,\r\n ContactListID: 0,\r\n ExternalOperator: null,\r\n InternalOperator: 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.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.ContactListID = ko.validatedObservable(settings.ContactListID);\r\n this.ExternalOperator = ko.validatedObservable(settings.ExternalOperator);\r\n this.InternalOperator = ko.validatedObservable(settings.InternalOperator);\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.ContactList = ko.observable();\r\n this.Criteria = 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.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.ContactListID != undefined) {\r\n loaded.ContactListID(responseData.ContactListID);\r\n }\r\n if (responseData.ExternalOperator != undefined) {\r\n loaded.ExternalOperator(responseData.ExternalOperator);\r\n }\r\n if (responseData.InternalOperator != undefined) {\r\n loaded.InternalOperator(responseData.InternalOperator);\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.ContactList != null) {\r\n loaded.ContactList(new smapi.community.ContactListModel().LoadFromResponse(responseData.ContactList));\r\n }\r\n if (responseData.Criteria != null && responseData.Criteria.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Criteria.length; i++) {\r\n items.push(new smapi.entities.TRSExpressionFilterModel().LoadFromResponse(responseData.Criteria[i]));\r\n }\r\n loaded.Criteria(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.CAMS.Community.Entity.ContactListCriteriaGroup', 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.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.ContactListID.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.ExternalOperator.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.InternalOperator.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 ContactListModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n ModuleID: null,\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.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ModuleID = ko.validatedObservable(settings.ModuleID);\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.Module = ko.observable();\r\n this.CriteriaGroups = 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.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ModuleID != undefined) {\r\n loaded.ModuleID(responseData.ModuleID);\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.Module != null) {\r\n loaded.Module(new smapi.entities.ModuleModel().LoadFromResponse(responseData.Module));\r\n }\r\n if (responseData.CriteriaGroups != null && responseData.CriteriaGroups.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.CriteriaGroups.length; i++) {\r\n items.push(new smapi.community.ContactListCriteriaGroupModel().LoadFromResponse(responseData.CriteriaGroups[i]));\r\n }\r\n loaded.CriteriaGroups(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.CAMS.Community.Entity.ContactList', 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.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.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 ListCriteriaConditionCategoryModel(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.CAMS.Community.Entity.ListCriteriaConditionCategory', 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.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 ListCriteriaConditionModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n ExpectedDataType: '',\r\n CategoryID: null,\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.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ExpectedDataType = ko.validatedObservable(settings.ExpectedDataType);\r\n this.CategoryID = ko.validatedObservable(settings.CategoryID);\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.Category = 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.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ExpectedDataType != undefined) {\r\n loaded.ExpectedDataType(responseData.ExpectedDataType);\r\n }\r\n if (responseData.CategoryID != undefined) {\r\n loaded.CategoryID(responseData.CategoryID);\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.Category != null) {\r\n loaded.Category(new smapi.community.ListCriteriaConditionCategoryModel().LoadFromResponse(responseData.Category));\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.CAMS.Community.Entity.ListCriteriaCondition', 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.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.ExpectedDataType.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.CategoryID.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.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 DocumentModel(options) {\r\n var defaults = {\r\n ContactID: 0,\r\n DocumentDate: null,\r\n ExpirationDate: null,\r\n Name: '',\r\n DocumentTypeID: null,\r\n DocumentContentsTypeID: null,\r\n DocumentURL: '',\r\n ExternalDocumentID: '',\r\n Contents: null,\r\n MIMEType: '',\r\n ThumbnailContents: null,\r\n ThumbnailMIMEType: '',\r\n FileName: '',\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.ContactID = ko.validatedObservable(settings.ContactID);\r\n this.DocumentDate = ko.validatedObservable(settings.DocumentDate);\r\n this.ExpirationDate = ko.validatedObservable(settings.ExpirationDate);\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.DocumentTypeID = ko.validatedObservable(settings.DocumentTypeID);\r\n this.DocumentContentsTypeID = ko.validatedObservable(settings.DocumentContentsTypeID);\r\n this.DocumentURL = ko.validatedObservable(settings.DocumentURL);\r\n this.ExternalDocumentID = ko.validatedObservable(settings.ExternalDocumentID);\r\n this.Contents = ko.validatedObservable(settings.Contents);\r\n this.MIMEType = ko.validatedObservable(settings.MIMEType);\r\n this.ThumbnailContents = ko.validatedObservable(settings.ThumbnailContents);\r\n this.ThumbnailMIMEType = ko.validatedObservable(settings.ThumbnailMIMEType);\r\n this.FileName = ko.validatedObservable(settings.FileName);\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.Contact = ko.observable();\r\n this.DocumentType = ko.observable();\r\n this.DocumentContentsType = 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.ContactID != undefined) {\r\n loaded.ContactID(responseData.ContactID);\r\n }\r\n if (responseData.DocumentDate != undefined) {\r\n loaded.DocumentDate(responseData.DocumentDate);\r\n }\r\n if (responseData.ExpirationDate != undefined) {\r\n loaded.ExpirationDate(responseData.ExpirationDate);\r\n }\r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.DocumentTypeID != undefined) {\r\n loaded.DocumentTypeID(responseData.DocumentTypeID);\r\n }\r\n if (responseData.DocumentContentsTypeID != undefined) {\r\n loaded.DocumentContentsTypeID(responseData.DocumentContentsTypeID);\r\n }\r\n if (responseData.DocumentURL != undefined) {\r\n loaded.DocumentURL(responseData.DocumentURL);\r\n }\r\n if (responseData.ExternalDocumentID != undefined) {\r\n loaded.ExternalDocumentID(responseData.ExternalDocumentID);\r\n }\r\n if (responseData.Contents != undefined) {\r\n loaded.Contents(responseData.Contents);\r\n }\r\n if (responseData.MIMEType != undefined) {\r\n loaded.MIMEType(responseData.MIMEType);\r\n }\r\n if (responseData.ThumbnailContents != undefined) {\r\n loaded.ThumbnailContents(responseData.ThumbnailContents);\r\n }\r\n if (responseData.ThumbnailMIMEType != undefined) {\r\n loaded.ThumbnailMIMEType(responseData.ThumbnailMIMEType);\r\n }\r\n if (responseData.FileName != undefined) {\r\n loaded.FileName(responseData.FileName);\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.Contact != null) {\r\n loaded.Contact(new smapi.community.ContactModel().LoadFromResponse(responseData.Contact));\r\n }\r\n if (responseData.DocumentType != null) {\r\n loaded.DocumentType(new smapi.community.DocumentTypeModel().LoadFromResponse(responseData.DocumentType));\r\n }\r\n if (responseData.DocumentContentsType != null) {\r\n loaded.DocumentContentsType(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.DocumentContentsType));\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.CAMS.Community.Entity.Document', 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.ContactID.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.DocumentDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ExpirationDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.Name.extend({\r\n maxLength: {\r\n params: 120,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '120')\r\n }\r\n });\r\n this.DocumentTypeID.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.DocumentContentsTypeID.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.DocumentURL.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.ExternalDocumentID.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.MIMEType.extend({\r\n maxLength: {\r\n params: 300,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '300')\r\n }\r\n });\r\n this.ThumbnailMIMEType.extend({\r\n maxLength: {\r\n params: 300,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '300')\r\n }\r\n });\r\n this.FileName.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 DocumentTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n CanExpire: false,\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.CanExpire = ko.validatedObservable(settings.CanExpire);\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.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.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.CanExpire != undefined) {\r\n loaded.CanExpire(responseData.CanExpire);\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.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.CAMS.Community.Entity.DocumentType', 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.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 DocumentRepositoryTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n InclusionRulesetID: null,\r\n CompletionRulesetID: 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.InclusionRulesetID = ko.validatedObservable(settings.InclusionRulesetID);\r\n this.CompletionRulesetID = ko.validatedObservable(settings.CompletionRulesetID);\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.InclusionRuleset = ko.observable();\r\n this.CompletionRuleset = ko.observable();\r\n this.DataChangedWatchers = 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.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.InclusionRulesetID != undefined) {\r\n loaded.InclusionRulesetID(responseData.InclusionRulesetID);\r\n }\r\n if (responseData.CompletionRulesetID != undefined) {\r\n loaded.CompletionRulesetID(responseData.CompletionRulesetID);\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.InclusionRuleset != null) {\r\n loaded.InclusionRuleset(new smapi.entities.TRSRuleSetModel().LoadFromResponse(responseData.InclusionRuleset));\r\n }\r\n if (responseData.CompletionRuleset != null) {\r\n loaded.CompletionRuleset(new smapi.entities.TRSRuleSetModel().LoadFromResponse(responseData.CompletionRuleset));\r\n }\r\n if (responseData.DataChangedWatchers != null && responseData.DataChangedWatchers.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.DataChangedWatchers.length; i++) {\r\n items.push(new smapi.entities.DataChangedWatcherModel().LoadFromResponse(responseData.DataChangedWatchers[i]));\r\n }\r\n loaded.DataChangedWatchers(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.CAMS.Community.Entity.DocumentRepositoryType', 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 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.InclusionRulesetID.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.CompletionRulesetID.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 DocumentRepositoryModel(options) {\r\n var defaults = {\r\n DocumentRepositoryTypeID: 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.DocumentRepositoryTypeID = ko.validatedObservable(settings.DocumentRepositoryTypeID);\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.DocumentRepositoryType = ko.observable();\r\n this.DocumentPlaceholder = 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.DocumentRepositoryTypeID != undefined) {\r\n loaded.DocumentRepositoryTypeID(responseData.DocumentRepositoryTypeID);\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.DocumentRepositoryType != null) {\r\n loaded.DocumentRepositoryType(new smapi.community.DocumentRepositoryTypeModel().LoadFromResponse(responseData.DocumentRepositoryType));\r\n }\r\n if (responseData.DocumentPlaceholder != null && responseData.DocumentPlaceholder.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.DocumentPlaceholder.length; i++) {\r\n items.push(new smapi.community.DocumentPlaceholderModel().LoadFromResponse(responseData.DocumentPlaceholder[i]));\r\n }\r\n loaded.DocumentPlaceholder(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.CAMS.Community.Entity.DocumentRepository', 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.DocumentRepositoryTypeID.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 DocumentPlaceholderModel(options) {\r\n var defaults = {\r\n DocumentRepositoryID: 0,\r\n DateAdded: null,\r\n DateFulfilled: null,\r\n ExpirationDate: null,\r\n ProcessStage: '',\r\n DocumentTypeID: 0,\r\n InclusionRulesetID: null,\r\n CompletionRulesetID: 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.DocumentRepositoryID = ko.validatedObservable(settings.DocumentRepositoryID);\r\n this.DateAdded = ko.validatedObservable(settings.DateAdded);\r\n this.DateFulfilled = ko.validatedObservable(settings.DateFulfilled);\r\n this.ExpirationDate = ko.validatedObservable(settings.ExpirationDate);\r\n this.ProcessStage = ko.validatedObservable(settings.ProcessStage);\r\n this.DocumentTypeID = ko.validatedObservable(settings.DocumentTypeID);\r\n this.InclusionRulesetID = ko.validatedObservable(settings.InclusionRulesetID);\r\n this.CompletionRulesetID = ko.validatedObservable(settings.CompletionRulesetID);\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.DocumentRepository = ko.observable();\r\n this.DocumentType = ko.observable();\r\n this.InclusionRuleset = ko.observable();\r\n this.CompletionRuleset = ko.observable();\r\n this.Documents = 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.DocumentRepositoryID != undefined) {\r\n loaded.DocumentRepositoryID(responseData.DocumentRepositoryID);\r\n }\r\n if (responseData.DateAdded != undefined) {\r\n loaded.DateAdded(responseData.DateAdded);\r\n }\r\n if (responseData.DateFulfilled != undefined) {\r\n loaded.DateFulfilled(responseData.DateFulfilled);\r\n }\r\n if (responseData.ExpirationDate != undefined) {\r\n loaded.ExpirationDate(responseData.ExpirationDate);\r\n }\r\n if (responseData.ProcessStage != undefined) {\r\n loaded.ProcessStage(responseData.ProcessStage);\r\n }\r\n if (responseData.DocumentTypeID != undefined) {\r\n loaded.DocumentTypeID(responseData.DocumentTypeID);\r\n }\r\n if (responseData.InclusionRulesetID != undefined) {\r\n loaded.InclusionRulesetID(responseData.InclusionRulesetID);\r\n }\r\n if (responseData.CompletionRulesetID != undefined) {\r\n loaded.CompletionRulesetID(responseData.CompletionRulesetID);\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.DocumentRepository != null) {\r\n loaded.DocumentRepository(new smapi.community.DocumentRepositoryModel().LoadFromResponse(responseData.DocumentRepository));\r\n }\r\n if (responseData.DocumentType != null) {\r\n loaded.DocumentType(new smapi.community.DocumentTypeModel().LoadFromResponse(responseData.DocumentType));\r\n }\r\n if (responseData.InclusionRuleset != null) {\r\n loaded.InclusionRuleset(new smapi.entities.TRSRuleSetModel().LoadFromResponse(responseData.InclusionRuleset));\r\n }\r\n if (responseData.CompletionRuleset != null) {\r\n loaded.CompletionRuleset(new smapi.entities.TRSRuleSetModel().LoadFromResponse(responseData.CompletionRuleset));\r\n }\r\n if (responseData.Documents != null && responseData.Documents.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Documents.length; i++) {\r\n items.push(new smapi.community.DocumentModel().LoadFromResponse(responseData.Documents[i]));\r\n }\r\n loaded.Documents(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.CAMS.Community.Entity.DocumentPlaceholder', 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.DocumentRepositoryID.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.DateAdded.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.DateFulfilled.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ExpirationDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ProcessStage.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.DocumentTypeID.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.InclusionRulesetID.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.CompletionRulesetID.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 PersonMatchingActionTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n SortOrder: 0,\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.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\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 \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.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\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 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.CAMS.Community.Entity.PersonMatchingActionType', 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.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.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 PersonMatchedModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n MatchedActionTypeID: 0,\r\n MatchedPersonID: 0,\r\n MatchingCriteriaID: 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.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.MatchedActionTypeID = ko.validatedObservable(settings.MatchedActionTypeID);\r\n this.MatchedPersonID = ko.validatedObservable(settings.MatchedPersonID);\r\n this.MatchingCriteriaID = ko.validatedObservable(settings.MatchingCriteriaID);\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.Person = ko.observable();\r\n this.ActionType = ko.observable();\r\n this.MatchedPerson = ko.observable();\r\n this.MatchingCriteria = 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.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.MatchedActionTypeID != undefined) {\r\n loaded.MatchedActionTypeID(responseData.MatchedActionTypeID);\r\n }\r\n if (responseData.MatchedPersonID != undefined) {\r\n loaded.MatchedPersonID(responseData.MatchedPersonID);\r\n }\r\n if (responseData.MatchingCriteriaID != undefined) {\r\n loaded.MatchingCriteriaID(responseData.MatchingCriteriaID);\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.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.ActionType != null) {\r\n loaded.ActionType(new smapi.community.PersonMatchingActionTypeModel().LoadFromResponse(responseData.ActionType));\r\n }\r\n if (responseData.MatchedPerson != null) {\r\n loaded.MatchedPerson(new smapi.community.PersonModel().LoadFromResponse(responseData.MatchedPerson));\r\n }\r\n if (responseData.MatchingCriteria != null) {\r\n loaded.MatchingCriteria(new smapi.community.MatchingCriteriaModel().LoadFromResponse(responseData.MatchingCriteria));\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.CAMS.Community.Entity.PersonMatched', 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.PersonID.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.MatchedActionTypeID.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.MatchedPersonID.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.MatchingCriteriaID.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 WebContentModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n HtmlFragment: '',\r\n Sequence: 0,\r\n CategoryID: 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.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.HtmlFragment = ko.validatedObservable(settings.HtmlFragment);\r\n this.Sequence = ko.validatedObservable(settings.Sequence);\r\n this.CategoryID = ko.validatedObservable(settings.CategoryID);\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.Category = 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.HtmlFragment != undefined) {\r\n loaded.HtmlFragment(responseData.HtmlFragment);\r\n }\r\n if (responseData.Sequence != undefined) {\r\n loaded.Sequence(responseData.Sequence);\r\n }\r\n if (responseData.CategoryID != undefined) {\r\n loaded.CategoryID(responseData.CategoryID);\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.Category != null) {\r\n loaded.Category(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Category));\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.CAMS.Community.Entity.WebContent', 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.Sequence.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.CategoryID.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 CommonModuleSettingsModel(options) {\r\n var defaults = {\r\n ApplicationName: '',\r\n SiteName: '',\r\n ImageNowStudentDrawerUrlToken: '',\r\n StateID: null,\r\n USCollege: false,\r\n SchoolAcronym: '',\r\n SystemCountryID: null,\r\n DefaultStartTime: null,\r\n DefaultEndTime: 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.ApplicationName = ko.validatedObservable(settings.ApplicationName);\r\n this.SiteName = ko.validatedObservable(settings.SiteName);\r\n this.ImageNowStudentDrawerUrlToken = ko.validatedObservable(settings.ImageNowStudentDrawerUrlToken);\r\n this.StateID = ko.validatedObservable(settings.StateID);\r\n this.USCollege = ko.validatedObservable(settings.USCollege);\r\n this.SchoolAcronym = ko.validatedObservable(settings.SchoolAcronym);\r\n this.SystemCountryID = ko.validatedObservable(settings.SystemCountryID);\r\n this.DefaultStartTime = ko.validatedObservable(settings.DefaultStartTime);\r\n this.DefaultEndTime = ko.validatedObservable(settings.DefaultEndTime);\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.GoverningDistrict = ko.observable();\r\n this.SystemCountry = 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.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.ImageNowStudentDrawerUrlToken != undefined) {\r\n loaded.ImageNowStudentDrawerUrlToken(responseData.ImageNowStudentDrawerUrlToken);\r\n }\r\n if (responseData.StateID != undefined) {\r\n loaded.StateID(responseData.StateID);\r\n }\r\n if (responseData.USCollege != undefined) {\r\n loaded.USCollege(responseData.USCollege);\r\n }\r\n if (responseData.SchoolAcronym != undefined) {\r\n loaded.SchoolAcronym(responseData.SchoolAcronym);\r\n }\r\n if (responseData.SystemCountryID != undefined) {\r\n loaded.SystemCountryID(responseData.SystemCountryID);\r\n }\r\n if (responseData.DefaultStartTime != undefined) {\r\n loaded.DefaultStartTime(responseData.DefaultStartTime);\r\n }\r\n if (responseData.DefaultEndTime != undefined) {\r\n loaded.DefaultEndTime(responseData.DefaultEndTime);\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.GoverningDistrict != null) {\r\n loaded.GoverningDistrict(new smapi.community.GoverningDistrictModel().LoadFromResponse(responseData.GoverningDistrict));\r\n }\r\n if (responseData.SystemCountry != null) {\r\n loaded.SystemCountry(new smapi.community.CountryModel().LoadFromResponse(responseData.SystemCountry));\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.CAMS.Community.Entity.CommonModuleSettings', 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.ImageNowStudentDrawerUrlToken.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.StateID.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.SchoolAcronym.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.SystemCountryID.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.DefaultStartTime.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.DefaultEndTime.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 PeriodModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n StartDate: null,\r\n EndDate: null,\r\n SortOrder: '',\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.StartDate = ko.validatedObservable(settings.StartDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\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.StartDate != undefined) {\r\n loaded.StartDate(responseData.StartDate);\r\n }\r\n if (responseData.EndDate != undefined) {\r\n loaded.EndDate(responseData.EndDate);\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.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.CAMS.Community.Entity.Period', 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.StartDate.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.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: 12,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '12')\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: 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 UserTaskNoteModel(options) {\r\n var defaults = {\r\n UserTaskID: 0,\r\n NoteDate: null,\r\n Starred: false,\r\n Note: '',\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.UserTaskID = ko.validatedObservable(settings.UserTaskID);\r\n this.NoteDate = ko.validatedObservable(settings.NoteDate);\r\n this.Starred = ko.validatedObservable(settings.Starred);\r\n this.Note = ko.validatedObservable(settings.Note);\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.UserTask = 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.UserTaskID != undefined) {\r\n loaded.UserTaskID(responseData.UserTaskID);\r\n }\r\n if (responseData.NoteDate != undefined) {\r\n loaded.NoteDate(responseData.NoteDate);\r\n }\r\n if (responseData.Starred != undefined) {\r\n loaded.Starred(responseData.Starred);\r\n }\r\n if (responseData.Note != undefined) {\r\n loaded.Note(responseData.Note);\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.UserTask != null) {\r\n loaded.UserTask(new smapi.community.UserTaskModel().LoadFromResponse(responseData.UserTask));\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.CAMS.Community.Entity.UserTaskNote', 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.UserTaskID.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.NoteDate.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.Note.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 UserTaskModel(options) {\r\n var defaults = {\r\n MVCArea: '',\r\n MVCController: '',\r\n MVCAction: '',\r\n JSONParams: '',\r\n Tentative: false,\r\n Priority: 0,\r\n Comments: '',\r\n DueDate: null,\r\n OriginalDueDate: null,\r\n RescheduleCount: 0,\r\n StartDate: null,\r\n EndDate: null,\r\n CompletionDate: null,\r\n WorkflowInstanceID: null,\r\n CorrelationID: '',\r\n InstanceGID: null,\r\n InstanceString: '',\r\n InstanceEntityID: null,\r\n TaskTypeID: 0,\r\n StatusID: 0,\r\n ParentUserTaskID: null,\r\n ContextContactID: null,\r\n ContextEntityID: null,\r\n ContextGID: 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.MVCArea = ko.validatedObservable(settings.MVCArea);\r\n this.MVCController = ko.validatedObservable(settings.MVCController);\r\n this.MVCAction = ko.validatedObservable(settings.MVCAction);\r\n this.JSONParams = ko.validatedObservable(settings.JSONParams);\r\n this.Tentative = ko.validatedObservable(settings.Tentative);\r\n this.Priority = ko.validatedObservable(settings.Priority);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.OriginalDueDate = ko.validatedObservable(settings.OriginalDueDate);\r\n this.RescheduleCount = ko.validatedObservable(settings.RescheduleCount);\r\n this.StartDate = ko.validatedObservable(settings.StartDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.CompletionDate = ko.validatedObservable(settings.CompletionDate);\r\n this.WorkflowInstanceID = ko.validatedObservable(settings.WorkflowInstanceID);\r\n this.CorrelationID = ko.validatedObservable(settings.CorrelationID);\r\n this.InstanceGID = ko.validatedObservable(settings.InstanceGID);\r\n this.InstanceString = ko.validatedObservable(settings.InstanceString);\r\n this.InstanceEntityID = ko.validatedObservable(settings.InstanceEntityID);\r\n this.TaskTypeID = ko.validatedObservable(settings.TaskTypeID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.ParentUserTaskID = ko.validatedObservable(settings.ParentUserTaskID);\r\n this.ContextContactID = ko.validatedObservable(settings.ContextContactID);\r\n this.ContextEntityID = ko.validatedObservable(settings.ContextEntityID);\r\n this.ContextGID = ko.validatedObservable(settings.ContextGID);\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.TaskType = ko.observable();\r\n this.InstanceEntity = ko.observable();\r\n this.Status = ko.observable();\r\n this.ParentUserTask = ko.observable();\r\n this.ChildTasks = ko.observableArray([]);\r\n this.ContextContact = ko.observable();\r\n this.ContextEntity = ko.observable();\r\n this.Notes = 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.MVCArea != undefined) {\r\n loaded.MVCArea(responseData.MVCArea);\r\n }\r\n if (responseData.MVCController != undefined) {\r\n loaded.MVCController(responseData.MVCController);\r\n }\r\n if (responseData.MVCAction != undefined) {\r\n loaded.MVCAction(responseData.MVCAction);\r\n }\r\n if (responseData.JSONParams != undefined) {\r\n loaded.JSONParams(responseData.JSONParams);\r\n }\r\n if (responseData.Tentative != undefined) {\r\n loaded.Tentative(responseData.Tentative);\r\n }\r\n if (responseData.Priority != undefined) {\r\n loaded.Priority(responseData.Priority);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.OriginalDueDate != undefined) {\r\n loaded.OriginalDueDate(responseData.OriginalDueDate);\r\n }\r\n if (responseData.RescheduleCount != undefined) {\r\n loaded.RescheduleCount(responseData.RescheduleCount);\r\n }\r\n if (responseData.StartDate != undefined) {\r\n loaded.StartDate(responseData.StartDate);\r\n }\r\n if (responseData.EndDate != undefined) {\r\n loaded.EndDate(responseData.EndDate);\r\n }\r\n if (responseData.CompletionDate != undefined) {\r\n loaded.CompletionDate(responseData.CompletionDate);\r\n }\r\n if (responseData.WorkflowInstanceID != undefined) {\r\n loaded.WorkflowInstanceID(responseData.WorkflowInstanceID);\r\n }\r\n if (responseData.CorrelationID != undefined) {\r\n loaded.CorrelationID(responseData.CorrelationID);\r\n }\r\n if (responseData.InstanceGID != undefined) {\r\n loaded.InstanceGID(responseData.InstanceGID);\r\n }\r\n if (responseData.InstanceString != undefined) {\r\n loaded.InstanceString(responseData.InstanceString);\r\n }\r\n if (responseData.InstanceEntityID != undefined) {\r\n loaded.InstanceEntityID(responseData.InstanceEntityID);\r\n }\r\n if (responseData.TaskTypeID != undefined) {\r\n loaded.TaskTypeID(responseData.TaskTypeID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.ParentUserTaskID != undefined) {\r\n loaded.ParentUserTaskID(responseData.ParentUserTaskID);\r\n }\r\n if (responseData.ContextContactID != undefined) {\r\n loaded.ContextContactID(responseData.ContextContactID);\r\n }\r\n if (responseData.ContextEntityID != undefined) {\r\n loaded.ContextEntityID(responseData.ContextEntityID);\r\n }\r\n if (responseData.ContextGID != undefined) {\r\n loaded.ContextGID(responseData.ContextGID);\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.TaskType != null) {\r\n loaded.TaskType(new smapi.community.TaskTypeModel().LoadFromResponse(responseData.TaskType));\r\n }\r\n if (responseData.InstanceEntity != null) {\r\n loaded.InstanceEntity(new smapi.entities.EntityModel().LoadFromResponse(responseData.InstanceEntity));\r\n }\r\n if (responseData.Status != null) {\r\n loaded.Status(new smapi.community.TaskStatusModel().LoadFromResponse(responseData.Status));\r\n }\r\n if (responseData.ParentUserTask != null) {\r\n loaded.ParentUserTask(new smapi.community.UserTaskModel().LoadFromResponse(responseData.ParentUserTask));\r\n }\r\n if (responseData.ChildTasks != null && responseData.ChildTasks.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ChildTasks.length; i++) {\r\n items.push(new smapi.community.UserTaskModel().LoadFromResponse(responseData.ChildTasks[i]));\r\n }\r\n loaded.ChildTasks(items);\r\n }\r\n if (responseData.ContextContact != null) {\r\n loaded.ContextContact(new smapi.community.ContactModel().LoadFromResponse(responseData.ContextContact));\r\n }\r\n if (responseData.ContextEntity != null) {\r\n loaded.ContextEntity(new smapi.entities.EntityModel().LoadFromResponse(responseData.ContextEntity));\r\n }\r\n if (responseData.Notes != null && responseData.Notes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Notes.length; i++) {\r\n items.push(new smapi.community.UserTaskNoteModel().LoadFromResponse(responseData.Notes[i]));\r\n }\r\n loaded.Notes(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.CAMS.Community.Entity.UserTask', 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.MVCArea.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.MVCController.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.MVCAction.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.JSONParams.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.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.Comments.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.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.OriginalDueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.RescheduleCount.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.StartDate.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.CompletionDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.WorkflowInstanceID.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.CorrelationID.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.InstanceGID.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.InstanceString.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.InstanceEntityID.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.TaskTypeID.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.StatusID.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.ParentUserTaskID.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.ContextContactID.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.ContextEntityID.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.ContextGID.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.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 TaskTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n DefaultMVCArea: '',\r\n DefaultMVCController: '',\r\n DefaultMVCAction: '',\r\n SortOrder: 0,\r\n DefaultPriority: 0,\r\n DefaultOwnerGroupID: 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.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.DefaultMVCArea = ko.validatedObservable(settings.DefaultMVCArea);\r\n this.DefaultMVCController = ko.validatedObservable(settings.DefaultMVCController);\r\n this.DefaultMVCAction = ko.validatedObservable(settings.DefaultMVCAction);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.DefaultPriority = ko.validatedObservable(settings.DefaultPriority);\r\n this.DefaultOwnerGroupID = ko.validatedObservable(settings.DefaultOwnerGroupID);\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.DefaultOwnerGroup = ko.observable();\r\n this.AvailableStatuses = 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.DefaultMVCArea != undefined) {\r\n loaded.DefaultMVCArea(responseData.DefaultMVCArea);\r\n }\r\n if (responseData.DefaultMVCController != undefined) {\r\n loaded.DefaultMVCController(responseData.DefaultMVCController);\r\n }\r\n if (responseData.DefaultMVCAction != undefined) {\r\n loaded.DefaultMVCAction(responseData.DefaultMVCAction);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.DefaultPriority != undefined) {\r\n loaded.DefaultPriority(responseData.DefaultPriority);\r\n }\r\n if (responseData.DefaultOwnerGroupID != undefined) {\r\n loaded.DefaultOwnerGroupID(responseData.DefaultOwnerGroupID);\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.DefaultOwnerGroup != null) {\r\n loaded.DefaultOwnerGroup(new smapi.entities.GroupModel().LoadFromResponse(responseData.DefaultOwnerGroup));\r\n }\r\n if (responseData.AvailableStatuses != null && responseData.AvailableStatuses.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AvailableStatuses.length; i++) {\r\n items.push(new smapi.community.TaskStatusModel().LoadFromResponse(responseData.AvailableStatuses[i]));\r\n }\r\n loaded.AvailableStatuses(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.CAMS.Community.Entity.TaskType', 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.DefaultMVCArea.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.DefaultMVCController.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.DefaultMVCAction.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.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.DefaultPriority.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.DefaultOwnerGroupID.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 TaskStatusModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n ForceObsolete: false,\r\n ForcesParentStatus: false,\r\n ImpactsParentsCounts: false,\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.ForceObsolete = ko.validatedObservable(settings.ForceObsolete);\r\n this.ForcesParentStatus = ko.validatedObservable(settings.ForcesParentStatus);\r\n this.ImpactsParentsCounts = ko.validatedObservable(settings.ImpactsParentsCounts);\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.ForceObsolete != undefined) {\r\n loaded.ForceObsolete(responseData.ForceObsolete);\r\n }\r\n if (responseData.ForcesParentStatus != undefined) {\r\n loaded.ForcesParentStatus(responseData.ForcesParentStatus);\r\n }\r\n if (responseData.ImpactsParentsCounts != undefined) {\r\n loaded.ImpactsParentsCounts(responseData.ImpactsParentsCounts);\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.CAMS.Community.Entity.TaskStatus', 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.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 FavoriteModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BaseURL: '',\r\n MVCActionID: null,\r\n JSONParams: '',\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.BaseURL = ko.validatedObservable(settings.BaseURL);\r\n this.MVCActionID = ko.validatedObservable(settings.MVCActionID);\r\n this.JSONParams = ko.validatedObservable(settings.JSONParams);\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.ApplicableModules = 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.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BaseURL != undefined) {\r\n loaded.BaseURL(responseData.BaseURL);\r\n }\r\n if (responseData.MVCActionID != undefined) {\r\n loaded.MVCActionID(responseData.MVCActionID);\r\n }\r\n if (responseData.JSONParams != undefined) {\r\n loaded.JSONParams(responseData.JSONParams);\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.ApplicableModules != null && responseData.ApplicableModules.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ApplicableModules.length; i++) {\r\n items.push(new smapi.entities.ModuleModel().LoadFromResponse(responseData.ApplicableModules[i]));\r\n }\r\n loaded.ApplicableModules(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.CAMS.Community.Entity.Favorite', 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 maxLength: {\r\n params: 255,\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.BaseURL.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_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.JSONParams.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 TargetThresholdCatagoryModel(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.CAMS.Community.Entity.TargetThresholdCatagory', 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.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 TargetThresholdModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n ExpressionID: null,\r\n ModuleID: null,\r\n ThresholdEntityFieldID: null,\r\n ThresholdExpressionPath: '',\r\n ThresholdExpressionPathDisplay: '',\r\n ThresholdExpressionPathValue: '',\r\n TargetThresholdCatagoryID: 0,\r\n AssociatedValue: 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.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ExpressionID = ko.validatedObservable(settings.ExpressionID);\r\n this.ModuleID = ko.validatedObservable(settings.ModuleID);\r\n this.ThresholdEntityFieldID = ko.validatedObservable(settings.ThresholdEntityFieldID);\r\n this.ThresholdExpressionPath = ko.validatedObservable(settings.ThresholdExpressionPath);\r\n this.ThresholdExpressionPathDisplay = ko.validatedObservable(settings.ThresholdExpressionPathDisplay);\r\n this.ThresholdExpressionPathValue = ko.validatedObservable(settings.ThresholdExpressionPathValue);\r\n this.TargetThresholdCatagoryID = ko.validatedObservable(settings.TargetThresholdCatagoryID);\r\n this.AssociatedValue = ko.validatedObservable(settings.AssociatedValue);\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.Expression = ko.observable();\r\n this.Module = ko.observable();\r\n this.ThresholdEntityField = ko.observable();\r\n this.ThresholdValues = ko.observableArray([]);\r\n this.ThresholdConditions = ko.observableArray([]);\r\n this.TargetThresholdCatagory = 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.ExpressionID != undefined) {\r\n loaded.ExpressionID(responseData.ExpressionID);\r\n }\r\n if (responseData.ModuleID != undefined) {\r\n loaded.ModuleID(responseData.ModuleID);\r\n }\r\n if (responseData.ThresholdEntityFieldID != undefined) {\r\n loaded.ThresholdEntityFieldID(responseData.ThresholdEntityFieldID);\r\n }\r\n if (responseData.ThresholdExpressionPath != undefined) {\r\n loaded.ThresholdExpressionPath(responseData.ThresholdExpressionPath);\r\n }\r\n if (responseData.ThresholdExpressionPathDisplay != undefined) {\r\n loaded.ThresholdExpressionPathDisplay(responseData.ThresholdExpressionPathDisplay);\r\n }\r\n if (responseData.ThresholdExpressionPathValue != undefined) {\r\n loaded.ThresholdExpressionPathValue(responseData.ThresholdExpressionPathValue);\r\n }\r\n if (responseData.TargetThresholdCatagoryID != undefined) {\r\n loaded.TargetThresholdCatagoryID(responseData.TargetThresholdCatagoryID);\r\n }\r\n if (responseData.AssociatedValue != undefined) {\r\n loaded.AssociatedValue(responseData.AssociatedValue);\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.Expression != null) {\r\n loaded.Expression(new smapi.entities.TRSExpressionModel().LoadFromResponse(responseData.Expression));\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.ThresholdEntityField != null) {\r\n loaded.ThresholdEntityField(new smapi.entities.EntityFieldModel().LoadFromResponse(responseData.ThresholdEntityField));\r\n }\r\n if (responseData.ThresholdValues != null && responseData.ThresholdValues.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ThresholdValues.length; i++) {\r\n items.push(new smapi.community.TargetThresholdValueModel().LoadFromResponse(responseData.ThresholdValues[i]));\r\n }\r\n loaded.ThresholdValues(items);\r\n }\r\n if (responseData.ThresholdConditions != null && responseData.ThresholdConditions.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ThresholdConditions.length; i++) {\r\n items.push(new smapi.community.ThresholdConditionModel().LoadFromResponse(responseData.ThresholdConditions[i]));\r\n }\r\n loaded.ThresholdConditions(items);\r\n }\r\n if (responseData.TargetThresholdCatagory != null) {\r\n loaded.TargetThresholdCatagory(new smapi.community.TargetThresholdCatagoryModel().LoadFromResponse(responseData.TargetThresholdCatagory));\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.CAMS.Community.Entity.TargetThreshold', 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.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.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.ThresholdEntityFieldID.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.ThresholdExpressionPath.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.ThresholdExpressionPathDisplay.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.TargetThresholdCatagoryID.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.AssociatedValue.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 TargetThresholdValueModel(options) {\r\n var defaults = {\r\n StartDate: null,\r\n EndDate: null,\r\n LowerThreshold: 0,\r\n UpperThreshold: 0,\r\n TargetThresholdID: null,\r\n PeriodID: null,\r\n AssociatedValue: 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.StartDate = ko.validatedObservable(settings.StartDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.LowerThreshold = ko.validatedObservable(settings.LowerThreshold);\r\n this.UpperThreshold = ko.validatedObservable(settings.UpperThreshold);\r\n this.TargetThresholdID = ko.validatedObservable(settings.TargetThresholdID);\r\n this.PeriodID = ko.validatedObservable(settings.PeriodID);\r\n this.AssociatedValue = ko.validatedObservable(settings.AssociatedValue);\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.Period = ko.observable();\r\n this.TargetThreshold = 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.StartDate != undefined) {\r\n loaded.StartDate(responseData.StartDate);\r\n }\r\n if (responseData.EndDate != undefined) {\r\n loaded.EndDate(responseData.EndDate);\r\n }\r\n if (responseData.LowerThreshold != undefined) {\r\n loaded.LowerThreshold(responseData.LowerThreshold);\r\n }\r\n if (responseData.UpperThreshold != undefined) {\r\n loaded.UpperThreshold(responseData.UpperThreshold);\r\n }\r\n if (responseData.TargetThresholdID != undefined) {\r\n loaded.TargetThresholdID(responseData.TargetThresholdID);\r\n }\r\n if (responseData.PeriodID != undefined) {\r\n loaded.PeriodID(responseData.PeriodID);\r\n }\r\n if (responseData.AssociatedValue != undefined) {\r\n loaded.AssociatedValue(responseData.AssociatedValue);\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.Period != null) {\r\n loaded.Period(new smapi.community.PeriodModel().LoadFromResponse(responseData.Period));\r\n }\r\n if (responseData.TargetThreshold != null) {\r\n loaded.TargetThreshold(new smapi.community.TargetThresholdModel().LoadFromResponse(responseData.TargetThreshold));\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.CAMS.Community.Entity.TargetThresholdValue', 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.StartDate.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.LowerThreshold.extend({\r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.UpperThreshold.extend({\r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TargetThresholdID.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.PeriodID.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.AssociatedValue.extend({\r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 ThresholdConditionModel(options) {\r\n var defaults = {\r\n EntityFieldID: null,\r\n ExpressionID: null,\r\n ComparisonOperator: null,\r\n ComparisonValue: '',\r\n LogicalOperator: null,\r\n SortOrder: 0,\r\n AdvancedFieldName: '',\r\n ExpressionPath: '',\r\n ExpressionValue: '',\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.ExpressionID = ko.validatedObservable(settings.ExpressionID);\r\n this.ComparisonOperator = ko.validatedObservable(settings.ComparisonOperator);\r\n this.ComparisonValue = ko.validatedObservable(settings.ComparisonValue);\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.ExpressionValue = ko.validatedObservable(settings.ExpressionValue);\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.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.ExpressionID != undefined) {\r\n loaded.ExpressionID(responseData.ExpressionID);\r\n }\r\n if (responseData.ComparisonOperator != undefined) {\r\n loaded.ComparisonOperator(responseData.ComparisonOperator);\r\n }\r\n if (responseData.ComparisonValue != undefined) {\r\n loaded.ComparisonValue(responseData.ComparisonValue);\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.ExpressionValue != undefined) {\r\n loaded.ExpressionValue(responseData.ExpressionValue);\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.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.CAMS.Community.Entity.ThresholdCondition', 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.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.ComparisonOperator.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_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.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 PeriodicityModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n TimeSpan: 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.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.TimeSpan = ko.validatedObservable(settings.TimeSpan);\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.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.TimeSpan != undefined) {\r\n loaded.TimeSpan(responseData.TimeSpan);\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.CAMS.Community.Entity.Periodicity', 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: 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.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: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 WarmupUrlModel(options) {\r\n var defaults = {\r\n Url: '',\r\n IsRelative: false,\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.Url = ko.validatedObservable(settings.Url);\r\n this.IsRelative = ko.validatedObservable(settings.IsRelative);\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.Url != undefined) {\r\n loaded.Url(responseData.Url);\r\n }\r\n if (responseData.IsRelative != undefined) {\r\n loaded.IsRelative(responseData.IsRelative);\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.CAMS.Community.Entity.WarmupUrl', 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.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: 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.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 RequestHeaderModel(options) {\r\n var defaults = {\r\n RequestUserID: 0,\r\n Url: '',\r\n IPAddress: '',\r\n RequestTime: null,\r\n ResponseTime: null,\r\n QueryString: '',\r\n RequestForm: '',\r\n RequestSession: '',\r\n TotalRequestTime: null,\r\n ContextEntityGID: null,\r\n ContextEntityId: 0,\r\n SessionHeaderID: null,\r\n RequestTypeID: 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.RequestUserID = ko.validatedObservable(settings.RequestUserID);\r\n this.Url = ko.validatedObservable(settings.Url);\r\n this.IPAddress = ko.validatedObservable(settings.IPAddress);\r\n this.RequestTime = ko.validatedObservable(settings.RequestTime);\r\n this.ResponseTime = ko.validatedObservable(settings.ResponseTime);\r\n this.QueryString = ko.validatedObservable(settings.QueryString);\r\n this.RequestForm = ko.validatedObservable(settings.RequestForm);\r\n this.RequestSession = ko.validatedObservable(settings.RequestSession);\r\n this.TotalRequestTime = ko.validatedObservable(settings.TotalRequestTime);\r\n this.ContextEntityGID = ko.validatedObservable(settings.ContextEntityGID);\r\n this.ContextEntityId = ko.validatedObservable(settings.ContextEntityId);\r\n this.SessionHeaderID = ko.validatedObservable(settings.SessionHeaderID);\r\n this.RequestTypeID = ko.validatedObservable(settings.RequestTypeID);\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.RequestUser = ko.observable();\r\n this.SessionHeader = ko.observable();\r\n this.RequestType = 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.RequestUserID != undefined) {\r\n loaded.RequestUserID(responseData.RequestUserID);\r\n }\r\n if (responseData.Url != undefined) {\r\n loaded.Url(responseData.Url);\r\n }\r\n if (responseData.IPAddress != undefined) {\r\n loaded.IPAddress(responseData.IPAddress);\r\n }\r\n if (responseData.RequestTime != undefined) {\r\n loaded.RequestTime(responseData.RequestTime);\r\n }\r\n if (responseData.ResponseTime != undefined) {\r\n loaded.ResponseTime(responseData.ResponseTime);\r\n }\r\n if (responseData.QueryString != undefined) {\r\n loaded.QueryString(responseData.QueryString);\r\n }\r\n if (responseData.RequestForm != undefined) {\r\n loaded.RequestForm(responseData.RequestForm);\r\n }\r\n if (responseData.RequestSession != undefined) {\r\n loaded.RequestSession(responseData.RequestSession);\r\n }\r\n if (responseData.TotalRequestTime != undefined) {\r\n loaded.TotalRequestTime(responseData.TotalRequestTime);\r\n }\r\n if (responseData.ContextEntityGID != undefined) {\r\n loaded.ContextEntityGID(responseData.ContextEntityGID);\r\n }\r\n if (responseData.ContextEntityId != undefined) {\r\n loaded.ContextEntityId(responseData.ContextEntityId);\r\n }\r\n if (responseData.SessionHeaderID != undefined) {\r\n loaded.SessionHeaderID(responseData.SessionHeaderID);\r\n }\r\n if (responseData.RequestTypeID != undefined) {\r\n loaded.RequestTypeID(responseData.RequestTypeID);\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.RequestUser != null) {\r\n loaded.RequestUser(new smapi.entities.UserModel().LoadFromResponse(responseData.RequestUser));\r\n }\r\n if (responseData.SessionHeader != null) {\r\n loaded.SessionHeader(new smapi.community.SessionHeaderModel().LoadFromResponse(responseData.SessionHeader));\r\n }\r\n if (responseData.RequestType != null) {\r\n loaded.RequestType(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.RequestType));\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.CAMS.Community.Entity.RequestHeader', 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.RequestUserID.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.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: 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.IPAddress.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.RequestTime.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ResponseTime.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.RequestSession.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.ContextEntityGID.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.ContextEntityId.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.SessionHeaderID.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.RequestTypeID.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 SessionHeaderModel(options) {\r\n var defaults = {\r\n SessionID: '',\r\n LocaleID: 0,\r\n Contents: 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.SessionID = ko.validatedObservable(settings.SessionID);\r\n this.LocaleID = ko.validatedObservable(settings.LocaleID);\r\n this.Contents = ko.validatedObservable(settings.Contents);\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.Requests = 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.SessionID != undefined) {\r\n loaded.SessionID(responseData.SessionID);\r\n }\r\n if (responseData.LocaleID != undefined) {\r\n loaded.LocaleID(responseData.LocaleID);\r\n }\r\n if (responseData.Contents != undefined) {\r\n loaded.Contents(responseData.Contents);\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.Requests != null && responseData.Requests.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Requests.length; i++) {\r\n items.push(new smapi.community.RequestHeaderModel().LoadFromResponse(responseData.Requests[i]));\r\n }\r\n loaded.Requests(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.CAMS.Community.Entity.SessionHeader', 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.SessionID.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.LocaleID.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.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 RequestExceptionModel(options) {\r\n var defaults = {\r\n ErrorMessage: '',\r\n ErrorTime: null,\r\n ErrorCode: 0,\r\n Source: '',\r\n RequestHeaderID: 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.ErrorMessage = ko.validatedObservable(settings.ErrorMessage);\r\n this.ErrorTime = ko.validatedObservable(settings.ErrorTime);\r\n this.ErrorCode = ko.validatedObservable(settings.ErrorCode);\r\n this.Source = ko.validatedObservable(settings.Source);\r\n this.RequestHeaderID = ko.validatedObservable(settings.RequestHeaderID);\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.RequestHeader = 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.ErrorMessage != undefined) {\r\n loaded.ErrorMessage(responseData.ErrorMessage);\r\n }\r\n if (responseData.ErrorTime != undefined) {\r\n loaded.ErrorTime(responseData.ErrorTime);\r\n }\r\n if (responseData.ErrorCode != undefined) {\r\n loaded.ErrorCode(responseData.ErrorCode);\r\n }\r\n if (responseData.Source != undefined) {\r\n loaded.Source(responseData.Source);\r\n }\r\n if (responseData.RequestHeaderID != undefined) {\r\n loaded.RequestHeaderID(responseData.RequestHeaderID);\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.RequestHeader != null) {\r\n loaded.RequestHeader(new smapi.community.RequestHeaderModel().LoadFromResponse(responseData.RequestHeader));\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.CAMS.Community.Entity.RequestException', 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.ErrorMessage.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.ErrorTime.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ErrorCode.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.Source.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.RequestHeaderID.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 RequestUrlProcessModel(options) {\r\n var defaults = {\r\n Url: '',\r\n RequestTypeID: 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.Url = ko.validatedObservable(settings.Url);\r\n this.RequestTypeID = ko.validatedObservable(settings.RequestTypeID);\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.RequestType = 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.Url != undefined) {\r\n loaded.Url(responseData.Url);\r\n }\r\n if (responseData.RequestTypeID != undefined) {\r\n loaded.RequestTypeID(responseData.RequestTypeID);\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.RequestType != null) {\r\n loaded.RequestType(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.RequestType));\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.CAMS.Community.Entity.RequestUrlProcess', 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.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: 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.RequestTypeID.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 DisplayNameOptionsModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n Value: 0,\r\n Formula: '',\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.Value = ko.validatedObservable(settings.Value);\r\n this.Formula = ko.validatedObservable(settings.Formula);\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.Value != undefined) {\r\n loaded.Value(responseData.Value);\r\n }\r\n if (responseData.Formula != undefined) {\r\n loaded.Formula(responseData.Formula);\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.CAMS.Community.Entity.DisplayNameOptions', 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.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.Formula.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.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 MatchingCriteriaModel(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.CAMS.Community.Entity.MatchingCriteria', 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.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 EducationAndQualificationTypeModel(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.CAMS.Community.Entity.EducationAndQualificationType', 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: 250,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '250')\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: 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 TeachingPositionTypeModel(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.CAMS.Community.Entity.TeachingPositionType', 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: 250,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '250')\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: 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 UnitOfTimeModel(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.CAMS.Community.Entity.UnitOfTime', 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 maxLength: {\r\n params: 255,\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 DepartmentContactTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\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.SortOrder = ko.validatedObservable(settings.SortOrder);\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.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.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.CAMS.Community.Entity.DepartmentContactType', 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 maxLength: {\r\n params: 255,\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.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 ExternalOrganizationDepartmentModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\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.SortOrder = ko.validatedObservable(settings.SortOrder);\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.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.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.CAMS.Community.Entity.ExternalOrganizationDepartment', 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 maxLength: {\r\n params: 255,\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.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 DepartmentalContactModel(options) {\r\n var defaults = {\r\n OrganizationID: 0,\r\n DepartmentID: 0,\r\n ExternalContactID: null,\r\n ExternalContactTitle: '',\r\n DepartmentContactTypeID: null,\r\n ExternalContactEmail: '',\r\n InternalContactID: 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.OrganizationID = ko.validatedObservable(settings.OrganizationID);\r\n this.DepartmentID = ko.validatedObservable(settings.DepartmentID);\r\n this.ExternalContactID = ko.validatedObservable(settings.ExternalContactID);\r\n this.ExternalContactTitle = ko.validatedObservable(settings.ExternalContactTitle);\r\n this.DepartmentContactTypeID = ko.validatedObservable(settings.DepartmentContactTypeID);\r\n this.ExternalContactEmail = ko.validatedObservable(settings.ExternalContactEmail);\r\n this.InternalContactID = ko.validatedObservable(settings.InternalContactID);\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.Organization = ko.observable();\r\n this.Department = ko.observable();\r\n this.ExternalContact = ko.observable();\r\n this.DepartmentContactType = ko.observable();\r\n this.InternalContact = 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.OrganizationID != undefined) {\r\n loaded.OrganizationID(responseData.OrganizationID);\r\n }\r\n if (responseData.DepartmentID != undefined) {\r\n loaded.DepartmentID(responseData.DepartmentID);\r\n }\r\n if (responseData.ExternalContactID != undefined) {\r\n loaded.ExternalContactID(responseData.ExternalContactID);\r\n }\r\n if (responseData.ExternalContactTitle != undefined) {\r\n loaded.ExternalContactTitle(responseData.ExternalContactTitle);\r\n }\r\n if (responseData.DepartmentContactTypeID != undefined) {\r\n loaded.DepartmentContactTypeID(responseData.DepartmentContactTypeID);\r\n }\r\n if (responseData.ExternalContactEmail != undefined) {\r\n loaded.ExternalContactEmail(responseData.ExternalContactEmail);\r\n }\r\n if (responseData.InternalContactID != undefined) {\r\n loaded.InternalContactID(responseData.InternalContactID);\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.Organization != null) {\r\n loaded.Organization(new smapi.community.OrganizationModel().LoadFromResponse(responseData.Organization));\r\n }\r\n if (responseData.Department != null) {\r\n loaded.Department(new smapi.community.ExternalOrganizationDepartmentModel().LoadFromResponse(responseData.Department));\r\n }\r\n if (responseData.ExternalContact != null) {\r\n loaded.ExternalContact(new smapi.community.PersonModel().LoadFromResponse(responseData.ExternalContact));\r\n }\r\n if (responseData.DepartmentContactType != null) {\r\n loaded.DepartmentContactType(new smapi.community.DepartmentContactTypeModel().LoadFromResponse(responseData.DepartmentContactType));\r\n }\r\n if (responseData.InternalContact != null) {\r\n loaded.InternalContact(new smapi.community.PersonModel().LoadFromResponse(responseData.InternalContact));\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.CAMS.Community.Entity.DepartmentalContact', 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.OrganizationID.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.DepartmentID.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.ExternalContactID.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.ExternalContactTitle.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.DepartmentContactTypeID.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.ExternalContactEmail.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.InternalContactID.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 AccessibilityNeedTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\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.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\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.Conditions = 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.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\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.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.GlossaryModel().LoadFromResponse(responseData.Conditions[i]));\r\n }\r\n loaded.Conditions(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.CAMS.Community.Entity.AccessibilityNeedType', 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.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 AccessibilityNeedModel(options) {\r\n var defaults = {\r\n PersonID: null,\r\n AccessibilityNeedTypeID: 0,\r\n DisabilityStatusID: 0,\r\n Description: '',\r\n BeginDate: null,\r\n EndDate: null,\r\n EffectsAssessments: false,\r\n ProvisionalNeeds: '',\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.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.AccessibilityNeedTypeID = ko.validatedObservable(settings.AccessibilityNeedTypeID);\r\n this.DisabilityStatusID = ko.validatedObservable(settings.DisabilityStatusID);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BeginDate = ko.validatedObservable(settings.BeginDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.EffectsAssessments = ko.validatedObservable(settings.EffectsAssessments);\r\n this.ProvisionalNeeds = ko.validatedObservable(settings.ProvisionalNeeds);\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.Person = ko.observable();\r\n this.AccessibilityNeedType = ko.observable();\r\n this.DisabilityStatus = 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.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.AccessibilityNeedTypeID != undefined) {\r\n loaded.AccessibilityNeedTypeID(responseData.AccessibilityNeedTypeID);\r\n }\r\n if (responseData.DisabilityStatusID != undefined) {\r\n loaded.DisabilityStatusID(responseData.DisabilityStatusID);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\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.EffectsAssessments != undefined) {\r\n loaded.EffectsAssessments(responseData.EffectsAssessments);\r\n }\r\n if (responseData.ProvisionalNeeds != undefined) {\r\n loaded.ProvisionalNeeds(responseData.ProvisionalNeeds);\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.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.AccessibilityNeedType != null) {\r\n loaded.AccessibilityNeedType(new smapi.community.AccessibilityNeedTypeModel().LoadFromResponse(responseData.AccessibilityNeedType));\r\n }\r\n if (responseData.DisabilityStatus != null) {\r\n loaded.DisabilityStatus(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.DisabilityStatus));\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.CAMS.Community.Entity.AccessibilityNeed', 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.PersonID.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.AccessibilityNeedTypeID.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.DisabilityStatusID.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.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.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.ProvisionalNeeds.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 EmploymentModel(options) {\r\n var defaults = {\r\n PersonID: null,\r\n EmployerID: null,\r\n Title: '',\r\n BeginDate: null,\r\n EndDate: null,\r\n ContactNumber: '',\r\n Supervisor: '',\r\n EmploymentStatusID: null,\r\n OccupationID: null,\r\n DutyAFSC: '',\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 FlexiFieldValues: null\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.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.EmployerID = ko.validatedObservable(settings.EmployerID);\r\n this.Title = ko.validatedObservable(settings.Title);\r\n this.BeginDate = ko.validatedObservable(settings.BeginDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.ContactNumber = ko.validatedObservable(settings.ContactNumber);\r\n this.Supervisor = ko.validatedObservable(settings.Supervisor);\r\n this.EmploymentStatusID = ko.validatedObservable(settings.EmploymentStatusID);\r\n this.OccupationID = ko.validatedObservable(settings.OccupationID);\r\n this.DutyAFSC = ko.validatedObservable(settings.DutyAFSC);\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 this.FlexiFieldValues = ko.observable(settings.FlexiFieldValues);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.Organization = ko.observable();\r\n this.EmploymentStatus = ko.observable();\r\n this.Occupation = 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.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.EmployerID != undefined) {\r\n loaded.EmployerID(responseData.EmployerID);\r\n }\r\n if (responseData.Title != undefined) {\r\n loaded.Title(responseData.Title);\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.ContactNumber != undefined) {\r\n loaded.ContactNumber(responseData.ContactNumber);\r\n }\r\n if (responseData.Supervisor != undefined) {\r\n loaded.Supervisor(responseData.Supervisor);\r\n }\r\n if (responseData.EmploymentStatusID != undefined) {\r\n loaded.EmploymentStatusID(responseData.EmploymentStatusID);\r\n }\r\n if (responseData.OccupationID != undefined) {\r\n loaded.OccupationID(responseData.OccupationID);\r\n }\r\n if (responseData.DutyAFSC != undefined) {\r\n loaded.DutyAFSC(responseData.DutyAFSC);\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.FlexiFieldValues != undefined) {\r\n loaded.FlexiFieldValues(responseData.FlexiFieldValues);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.Organization != null) {\r\n loaded.Organization(new smapi.community.OrganizationModel().LoadFromResponse(responseData.Organization));\r\n }\r\n if (responseData.EmploymentStatus != null) {\r\n loaded.EmploymentStatus(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.EmploymentStatus));\r\n }\r\n if (responseData.Occupation != null) {\r\n loaded.Occupation(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.Occupation));\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.CAMS.Community.Entity.Employment', 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.PersonID.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.EmployerID.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.Title.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.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.ContactNumber.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.Supervisor.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.EmploymentStatusID.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.OccupationID.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.DutyAFSC.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 ContractTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n CanExpire: false,\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.CanExpire = ko.validatedObservable(settings.CanExpire);\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.CanExpire != undefined) {\r\n loaded.CanExpire(responseData.CanExpire);\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.CAMS.Community.Entity.ContractType', 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.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 ContractDocumentModel(options) {\r\n var defaults = {\r\n OrganizationID: 0,\r\n ContractID: 0,\r\n ContractDocumentTypeID: 0,\r\n ContractTitle: '',\r\n StartDate: null,\r\n EndDate: null,\r\n Comment: '',\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.OrganizationID = ko.validatedObservable(settings.OrganizationID);\r\n this.ContractID = ko.validatedObservable(settings.ContractID);\r\n this.ContractDocumentTypeID = ko.validatedObservable(settings.ContractDocumentTypeID);\r\n this.ContractTitle = ko.validatedObservable(settings.ContractTitle);\r\n this.StartDate = ko.validatedObservable(settings.StartDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.Comment = ko.validatedObservable(settings.Comment);\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.Organization = ko.observable();\r\n this.ContractDocumentType = ko.observable();\r\n this.Contract = 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.OrganizationID != undefined) {\r\n loaded.OrganizationID(responseData.OrganizationID);\r\n }\r\n if (responseData.ContractID != undefined) {\r\n loaded.ContractID(responseData.ContractID);\r\n }\r\n if (responseData.ContractDocumentTypeID != undefined) {\r\n loaded.ContractDocumentTypeID(responseData.ContractDocumentTypeID);\r\n }\r\n if (responseData.ContractTitle != undefined) {\r\n loaded.ContractTitle(responseData.ContractTitle);\r\n }\r\n if (responseData.StartDate != undefined) {\r\n loaded.StartDate(responseData.StartDate);\r\n }\r\n if (responseData.EndDate != undefined) {\r\n loaded.EndDate(responseData.EndDate);\r\n }\r\n if (responseData.Comment != undefined) {\r\n loaded.Comment(responseData.Comment);\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.Organization != null) {\r\n loaded.Organization(new smapi.community.OrganizationModel().LoadFromResponse(responseData.Organization));\r\n }\r\n if (responseData.ContractDocumentType != null) {\r\n loaded.ContractDocumentType(new smapi.community.ContractTypeModel().LoadFromResponse(responseData.ContractDocumentType));\r\n }\r\n if (responseData.Contract != null) {\r\n loaded.Contract(new smapi.community.DocumentModel().LoadFromResponse(responseData.Contract));\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.CAMS.Community.Entity.ContractDocument', 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.OrganizationID.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.ContractID.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.ContractDocumentTypeID.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.ContractTitle.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.StartDate.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.Comment.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.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 OrganizationContactRelationshipModel(options) {\r\n var defaults = {\r\n OrganizationID: 0,\r\n RelationshipTypeID: null,\r\n ContactID: 0,\r\n Title: '',\r\n InternalExternal: '',\r\n DepartmentID: null,\r\n DepartmentContactTypeID: null,\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.OrganizationID = ko.validatedObservable(settings.OrganizationID);\r\n this.RelationshipTypeID = ko.validatedObservable(settings.RelationshipTypeID);\r\n this.ContactID = ko.validatedObservable(settings.ContactID);\r\n this.Title = ko.validatedObservable(settings.Title);\r\n this.InternalExternal = ko.validatedObservable(settings.InternalExternal);\r\n this.DepartmentID = ko.validatedObservable(settings.DepartmentID);\r\n this.DepartmentContactTypeID = ko.validatedObservable(settings.DepartmentContactTypeID);\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.Contact = ko.observable();\r\n this.Department = ko.observable();\r\n this.Organization = ko.observable();\r\n this.DepartmentContactType = ko.observable();\r\n this.RelationshipType = 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.OrganizationID != undefined) {\r\n loaded.OrganizationID(responseData.OrganizationID);\r\n }\r\n if (responseData.RelationshipTypeID != undefined) {\r\n loaded.RelationshipTypeID(responseData.RelationshipTypeID);\r\n }\r\n if (responseData.ContactID != undefined) {\r\n loaded.ContactID(responseData.ContactID);\r\n }\r\n if (responseData.Title != undefined) {\r\n loaded.Title(responseData.Title);\r\n }\r\n if (responseData.InternalExternal != undefined) {\r\n loaded.InternalExternal(responseData.InternalExternal);\r\n }\r\n if (responseData.DepartmentID != undefined) {\r\n loaded.DepartmentID(responseData.DepartmentID);\r\n }\r\n if (responseData.DepartmentContactTypeID != undefined) {\r\n loaded.DepartmentContactTypeID(responseData.DepartmentContactTypeID);\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.Contact != null) {\r\n loaded.Contact(new smapi.community.ContactModel().LoadFromResponse(responseData.Contact));\r\n }\r\n if (responseData.Department != null) {\r\n loaded.Department(new smapi.community.ExternalOrganizationDepartmentModel().LoadFromResponse(responseData.Department));\r\n }\r\n if (responseData.Organization != null) {\r\n loaded.Organization(new smapi.community.OrganizationModel().LoadFromResponse(responseData.Organization));\r\n }\r\n if (responseData.DepartmentContactType != null) {\r\n loaded.DepartmentContactType(new smapi.community.DepartmentContactTypeModel().LoadFromResponse(responseData.DepartmentContactType));\r\n }\r\n if (responseData.RelationshipType != null) {\r\n loaded.RelationshipType(new smapi.community.RelationshipTypeModel().LoadFromResponse(responseData.RelationshipType));\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.CAMS.Community.Entity.OrganizationContactRelationship', 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.OrganizationID.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.RelationshipTypeID.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.ContactID.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.Title.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.InternalExternal.extend({\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.DepartmentID.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.DepartmentContactTypeID.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.Email.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 DocumentPermissionTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\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.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\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 \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.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 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.CAMS.Community.Entity.DocumentPermissionType', 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.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 CustomerTransactionEnterpriseDocumentKeyModel(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.CAMS.Community.Entity.CustomerTransactionEnterpriseDocumentKey', 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.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.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 ReversalTransactionEnterpriseDocumentKeyModel(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.CAMS.Community.Entity.ReversalTransactionEnterpriseDocumentKey', 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.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.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.community.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 function HesaQualificationResultModel(options) {\r\n var defaults = {\r\n PersonID: null,\r\n QualificationGrade: '',\r\n QualificationYear: null,\r\n QualificationSubjectID: null,\r\n QualificationSittingID: null,\r\n QualificationTypeID: 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.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.QualificationGrade = ko.validatedObservable(settings.QualificationGrade);\r\n this.QualificationYear = ko.validatedObservable(settings.QualificationYear);\r\n this.QualificationSubjectID = ko.validatedObservable(settings.QualificationSubjectID);\r\n this.QualificationSittingID = ko.validatedObservable(settings.QualificationSittingID);\r\n this.QualificationTypeID = ko.validatedObservable(settings.QualificationTypeID);\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.Person = ko.observable();\r\n this.Organization = ko.observable();\r\n this.EmploymentStatus = ko.observable();\r\n this.Occupation = 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 loaded.APILink(responseData.APILink);\r\n }\r\n\r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.QualificationGrade != undefined) {\r\n loaded.QualificationGrade(responseData.QualificationGrade);\r\n }\r\n if (responseData.QualificationYear != undefined) {\r\n loaded.QualificationYear(responseData.QualificationYear);\r\n }\r\n if (responseData.QualificationSubjectID != undefined) {\r\n loaded.QualificationSubjectID(responseData.QualificationSubjectID);\r\n }\r\n if (responseData.QualificationSittingID != undefined) {\r\n loaded.QualificationSittingID(responseData.QualificationSittingID);\r\n }\r\n if (responseData.QualificationTypeID != undefined) {\r\n loaded.QualificationTypeID(responseData.QualificationTypeID);\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.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n var custmdata = {\r\n defaults : defaults,\r\n settings : settings,\r\n self : self,\r\n responseData : responseData,\r\n loaded : loaded\r\n }\r\n sm.portal.vm.custom.callCustomization('ResponseHandlingForHesaQualification', custmdata);\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.CAMS.Community.Entity.HesaQualificationResult', 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.PersonID.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.QualificationSubjectID.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.QualificationSittingID.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.QualificationTypeID.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 $.extend(true, smapi.community, {\r\n AddressAssociationModel: AddressAssociationModel,\r\n AddressTypeAssociationModel: AddressTypeAssociationModel,\r\n ElectronicAddressModel: ElectronicAddressModel,\r\n RegionModel: RegionModel,\r\n CountryModel: CountryModel,\r\n UTCTimezoneModel: UTCTimezoneModel,\r\n MailingAddressModel: MailingAddressModel,\r\n PhoneNumberModel: PhoneNumberModel,\r\n ContactNoteModel: ContactNoteModel,\r\n ContactInterestModel: ContactInterestModel,\r\n EventManagementModel: EventManagementModel,\r\n EventTypeModel: EventTypeModel,\r\n ContactGreetingTypeModel: ContactGreetingTypeModel,\r\n ContactPronounSetModel: ContactPronounSetModel,\r\n ContactGreetingModel: ContactGreetingModel,\r\n MailingAddressTemplateModel: MailingAddressTemplateModel,\r\n MailingAddressTemplateCountryModel: MailingAddressTemplateCountryModel,\r\n MailingAddressTemplateFieldModel: MailingAddressTemplateFieldModel,\r\n MailingAddressTemplateFieldSeparatorModel: MailingAddressTemplateFieldSeparatorModel,\r\n StreetSuffixModel: StreetSuffixModel,\r\n MailingAddressFieldTypeModel: MailingAddressFieldTypeModel,\r\n MailingAddressTemplateFieldSeparatorTypeModel: MailingAddressTemplateFieldSeparatorTypeModel,\r\n HoldCategoryLocationModel: HoldCategoryLocationModel,\r\n HoldCategoryModel: HoldCategoryModel,\r\n HoldStatusModel: HoldStatusModel,\r\n ContactHoldModel: ContactHoldModel,\r\n ContactAlertModel: ContactAlertModel,\r\n UserContactNoteModel: UserContactNoteModel,\r\n CRMRankModel: CRMRankModel,\r\n ContactModel: ContactModel,\r\n PersonPreviousModel: PersonPreviousModel,\r\n ContactPictureModel: ContactPictureModel,\r\n EmergencyContactModel: EmergencyContactModel,\r\n FavoriteGroupModel: FavoriteGroupModel,\r\n ContactFavoriteModel: ContactFavoriteModel,\r\n PersonIdentifierTypeModel: PersonIdentifierTypeModel,\r\n OrganizationIdentifierTypeModel: OrganizationIdentifierTypeModel,\r\n PersonIdentifierModel: PersonIdentifierModel,\r\n PersonModel: PersonModel,\r\n OrganizationIdentifierModel: OrganizationIdentifierModel,\r\n OrganizationModel: OrganizationModel,\r\n ReligiousDenominationModel: ReligiousDenominationModel,\r\n PlaceOfWorshipModel: PlaceOfWorshipModel,\r\n RelationshipTypeModel: RelationshipTypeModel,\r\n RelationshipCategoryModel: RelationshipCategoryModel,\r\n ContactRelationshipModel: ContactRelationshipModel,\r\n ComputerModel: ComputerModel,\r\n DemographicDataModel: DemographicDataModel,\r\n CitizenshipModel: CitizenshipModel,\r\n MilitaryClassificationModel: MilitaryClassificationModel,\r\n MilitaryPayGradeModel: MilitaryPayGradeModel,\r\n MilitaryRankModel: MilitaryRankModel,\r\n MilitaryServiceModel: MilitaryServiceModel,\r\n LanguagesModel: LanguagesModel,\r\n SocietyModuleSettingsModel: SocietyModuleSettingsModel,\r\n PhoneCarrierModel: PhoneCarrierModel,\r\n AddressVerificationProviderModel: AddressVerificationProviderModel,\r\n SatoriAddOnsModel: SatoriAddOnsModel,\r\n SatoriModel: SatoriModel,\r\n LoqateModel: LoqateModel,\r\n GoverningDistrictTypeModel: GoverningDistrictTypeModel,\r\n GoverningDistrictModel: GoverningDistrictModel,\r\n LeadTypeModel: LeadTypeModel,\r\n ContactListCriteriaGroupModel: ContactListCriteriaGroupModel,\r\n ContactListModel: ContactListModel,\r\n ListCriteriaConditionCategoryModel: ListCriteriaConditionCategoryModel,\r\n ListCriteriaConditionModel: ListCriteriaConditionModel,\r\n DocumentModel: DocumentModel,\r\n DocumentTypeModel: DocumentTypeModel,\r\n DocumentRepositoryTypeModel: DocumentRepositoryTypeModel,\r\n DocumentRepositoryModel: DocumentRepositoryModel,\r\n DocumentPlaceholderModel: DocumentPlaceholderModel,\r\n PersonMatchingActionTypeModel: PersonMatchingActionTypeModel,\r\n PersonMatchedModel: PersonMatchedModel,\r\n WebContentModel: WebContentModel,\r\n CommonModuleSettingsModel: CommonModuleSettingsModel,\r\n PeriodModel: PeriodModel,\r\n UserTaskNoteModel: UserTaskNoteModel,\r\n UserTaskModel: UserTaskModel,\r\n TaskTypeModel: TaskTypeModel,\r\n TaskStatusModel: TaskStatusModel,\r\n FavoriteModel: FavoriteModel,\r\n TargetThresholdCatagoryModel: TargetThresholdCatagoryModel,\r\n TargetThresholdModel: TargetThresholdModel,\r\n TargetThresholdValueModel: TargetThresholdValueModel,\r\n ThresholdConditionModel: ThresholdConditionModel,\r\n PeriodicityModel: PeriodicityModel,\r\n WarmupUrlModel: WarmupUrlModel,\r\n RequestHeaderModel: RequestHeaderModel,\r\n SessionHeaderModel: SessionHeaderModel,\r\n RequestExceptionModel: RequestExceptionModel,\r\n RequestUrlProcessModel: RequestUrlProcessModel,\r\n DisplayNameOptionsModel: DisplayNameOptionsModel,\r\n MatchingCriteriaModel: MatchingCriteriaModel,\r\n EducationAndQualificationTypeModel: EducationAndQualificationTypeModel,\r\n TeachingPositionTypeModel: TeachingPositionTypeModel,\r\n UnitOfTimeModel: UnitOfTimeModel,\r\n DepartmentContactTypeModel: DepartmentContactTypeModel,\r\n ExternalOrganizationDepartmentModel: ExternalOrganizationDepartmentModel,\r\n DepartmentalContactModel: DepartmentalContactModel,\r\n AccessibilityNeedTypeModel: AccessibilityNeedTypeModel,\r\n AccessibilityNeedModel: AccessibilityNeedModel,\r\n EmploymentModel: EmploymentModel,\r\n ContractTypeModel: ContractTypeModel,\r\n ContractDocumentModel: ContractDocumentModel,\r\n OrganizationContactRelationshipModel: OrganizationContactRelationshipModel,\r\n DocumentPermissionTypeModel: DocumentPermissionTypeModel,\r\n CustomerTransactionEnterpriseDocumentKeyModel: CustomerTransactionEnterpriseDocumentKeyModel,\r\n ReversalTransactionEnterpriseDocumentKeyModel: ReversalTransactionEnterpriseDocumentKeyModel,\r\n LoadTemplates: LoadTemplates,\r\n HesaQualificationResultModel: HesaQualificationResultModel\r\n });\r\n})(jQuery);\r\n"]}