{"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","StreetAddress","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 StreetAddress: '',\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.StreetAddress = ko.validatedObservable(settings.StreetAddress);\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.StreetAddress != undefined) {\r\n loaded.StreetAddress(responseData.StreetAddress);\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.StreetAddress.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"]}