{"version":3,"file":"SMAPI.communication.combined-1.0.0.min.js","names":["$","undefined","smapi","window","extend","each","proxy","noop","isFunction","Globalize","communication","AddressTypeAssociationPriorityModel","options","settings","jQuery","Priority","AddressAssociationID","CommunicationStepID","ID","GID","CreatedBy","DateCreated","ModifiedBy","DateModified","APILink","self","this","ko","observable","validatedObservable","AddressAssociation","CommunicationStep","LoadFromResponse","responseData","loaded","community","AddressAssociationModel","CommunicationStepModel","LoadFromLink","baseApiUrl","access","getById","data","textStatus","jqXHR","container","ApiContainerModel","Status","Payload","ValidationTitle","ValidationMessages","statusText","required","message","sm","portal","utility","getResourceValue","constant","validate_FieldRequired_Key","min","params","validate_MustBeNumeric_Key","max","number","pattern","formatString","validate_ErrorInFormat0_Key","ModelErrors","validation","group","IsVMValid","length","CampusVisitStepModel","Subject","Instructions","ConfigurationRuleSetID","Name","Description","SortOrder","InteractionStepType","DurationBeforeExecution","BeginDate","EndDate","InteractionPlanID","ParentStepID","InclusionRuleSetID","BusinessMeaningName","PathToRecipient","PathToRecipientExpressionID","InteractionPlan","ParentStep","ChildSteps","observableArray","InteractionPlanModel","InteractionStepModel","items","Array","i","push","maxLength","validate_0CharactersOrLess_Key","date","validate_MustBeADate_Key","CommunicationFulfillmentFolderModel","Foldername","CommunicationRecipientDetailModel","ToAddress","ToDisplay","ContactID","CommunicationTypeID","RecipientType","Received","ReceivedDate","TargetUserID","Contact","CommunicationType","ContactModel","CommunicationTypeModel","CommunicationStatusModel","SystemProtected","FromAddress","FromDisplayName","WaitForFulfillment","DurationBeforeEscalation","RequiresResponseBeforeContinuing","CommunicationTemplateID","EscalationStepID","CommunicationPriorityID","TrackingCode","FulfillByGroupID","LetterCode","StepTestMode","ReadTrackingCode","TargetGroupID","TargetBindingPath","EscalationStep","CommunicationTemplate","RecipientList","TargetAddressAssociations","Attachments","CommunicationTemplateModel","TokenSeparator","Html","FileName","FileSize","LastModified","ServerFileUNC","ReportingServicesReport","TokenList","EmbeddedAttachments","CommunicationTokenModel","CommunicationTemplateEmbeddedAttachmentModel","validate_IncorrectFormat_Key","FileEncoding","MIMEType","FileData","Token","TokenExpressionID","ApplicationSettingID","CommunicationTrackingModel","PersonName","CommunicationPlanStepName","TrackingInstanceID","CreateDate","EditorControlToUse","DisplayControlToUse","MergeEngine","AddressBusinessMeaningName","AvailableForPortalApplicants","ContactCommunicationModel","FromDisplay","Fulfilled","FulfilledDate","WaitingForResponse","ReceivedResponse","ResponseDate","InteractionPlanInstanceID","RelatedContactID","ParentCommunicationID","InitiatedByUserID","InitiatedByGroupID","FulfilledByUserID","FulfilledByGroupID","ReadReceipt","ActionTaken","BroadcastIdentifier","CommunicationStatusID","StatusMessage","RelatedContact","ContactNotes","ParentCommunication","Parent","Responses","ExternalAttachments","CommunicationStatus","ContactNoteModel","InteractionPlanInstanceModel","ContactCommunicationEmbeddedAttachmentModel","ContactCommunicationExternalAttachmentModel","AttachmentGID","ContactCommunicationID","ContactCommunication","EmailTemplateModel","EmbeddedImage","EmailTemplateEmbeddedAttachmentModel","EmailTemplateID","EmailTemplate","EffectiveDate","EndDurationFromStart","EntityID","FulfillByUserID","StartingRuleSetID","PlanTestMode","ModuleID","InteractionSteps","InteractionPlanPriority","InteractionPlanPriorityModel","InteractionPlanGroupModel","CanStartRuleID","StartRuleID","InteractionPlanGroupRule","InteractionPlanGroupRuleModel","Singleton","Replace","InteractionPlanGroupID","InteractionPlanPriorities","InteractionPlanGroup","WorkflowInstanceID","ContextEntityID","ContextEntityName","ContextEntityGID","StartDate","TargetEndDate","Communications","InteractionPlanGroupRuleID","MeetingStepModel","TermsConditionsDocumentModel","Title","DateFrom","DateTo","Paragraphs","Conditions","TermsConditionsDocumentParagraphPropertiesModel","TermsConditionsDocumentCriteriaModel","DocumentID","LocationID","ProcessTypeID","CriteriaRulesetID","Document","Location","ProcessType","TermsConditionsLocationModel","TermsConditionsProcessTypeModel","IsRequired","IsRevocable","Version","TermsConditionsDocumentID","TermsConditionsParagraphID","TermsConditionsDocument","TermsConditionsParagraph","TermsConditionsParagraphModel","TermsConditionsDocumentStatusModel","TermsConditionsExposedDocumentModel","IsAccepted","ProcessObjectID","ObjectDescription","PersonID","Person","PersonModel","TermsConditionsHistoryModel","IsLatest","TermsConditionsParagraphVersionID","TermsConditionsDocumentParagraphPropertiesID","TermsConditionsExposedDocumentID","TermsConditionsParagraphVersion","TermsConditionsDocumentParagraphProperties","TermsConditionsExposedDocument","TermsConditionsParagraphVersionModel","TermsConditionsParagraphTypeID","TermsConditionsParagraphType","TermsConditionsParagraphVersions","TermsConditionsParagraphTypeModel","HTMLContent","ToDoStepModel","TaskBeginDate","TaskEndDate","TaskPriority","DurationBeforeDueDate","TokenMergeModel","Value","IsProcessing","LoadTemplates","basePath","targetDiv","uri","ajax","url","type","async","success","template","append"],"sources":["assets/js/models/SMAPI.communication.combined-1.0.0.js"],"mappings":"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","ignoreList":[],"sourcesContent":["(function ($, undefined) {\r\n\r\n var smapi = window.smapi = window.smapi || {},\r\n extend = $.extend,\r\n each = $.each,\r\n proxy = $.proxy,\r\n noop = $.noop,\r\n isFunction = $.isFunction,\r\n globalize = window.Globalize;\r\n\r\n if (typeof smapi.communication === \"undefined\") {\r\n extend(smapi, { communication: {} });\r\n }\r\n\r\n function AddressTypeAssociationPriorityModel(options) {\r\n var defaults = {\r\n Priority: 0,\r\n AddressAssociationID: 0,\r\n CommunicationStepID: 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.Priority = ko.validatedObservable(settings.Priority);\r\n this.AddressAssociationID = ko.validatedObservable(settings.AddressAssociationID);\r\n this.CommunicationStepID = ko.validatedObservable(settings.CommunicationStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.observable();\r\n this.CommunicationStep = 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.Priority != undefined) {\r\n loaded.Priority(responseData.Priority);\r\n }\r\n if (responseData.AddressAssociationID != undefined) {\r\n loaded.AddressAssociationID(responseData.AddressAssociationID);\r\n }\r\n if (responseData.CommunicationStepID != undefined) {\r\n loaded.CommunicationStepID(responseData.CommunicationStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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) {\r\n loaded.AddressAssociation(new smapi.community.AddressAssociationModel().LoadFromResponse(responseData.AddressAssociation));\r\n }\r\n if (responseData.CommunicationStep != null) {\r\n loaded.CommunicationStep(new smapi.communication.CommunicationStepModel().LoadFromResponse(responseData.CommunicationStep));\r\n }\r\n return loaded;\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.Communication.Entity.AddressTypeAssociationPriority', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.Priority.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AddressAssociationID.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.CommunicationStepID.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 CampusVisitStepModel(options) {\r\n var defaults = {\r\n Subject: '',\r\n Instructions: '',\r\n ConfigurationRuleSetID: null,\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n InteractionStepType: null,\r\n DurationBeforeExecution: null,\r\n BeginDate: null,\r\n EndDate: null,\r\n InteractionPlanID: null,\r\n ParentStepID: null,\r\n InclusionRuleSetID: null,\r\n BusinessMeaningName: '',\r\n PathToRecipient: '',\r\n PathToRecipientExpressionID: 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.Subject = ko.validatedObservable(settings.Subject);\r\n this.Instructions = ko.validatedObservable(settings.Instructions);\r\n this.ConfigurationRuleSetID = ko.validatedObservable(settings.ConfigurationRuleSetID);\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.InteractionStepType = ko.validatedObservable(settings.InteractionStepType);\r\n this.DurationBeforeExecution = ko.validatedObservable(settings.DurationBeforeExecution);\r\n this.BeginDate = ko.validatedObservable(settings.BeginDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.InteractionPlanID = ko.validatedObservable(settings.InteractionPlanID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.InclusionRuleSetID = ko.validatedObservable(settings.InclusionRuleSetID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.PathToRecipient = ko.validatedObservable(settings.PathToRecipient);\r\n this.PathToRecipientExpressionID = ko.validatedObservable(settings.PathToRecipientExpressionID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.InteractionPlan = ko.observable();\r\n this.ParentStep = ko.observable();\r\n this.ChildSteps = 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 loaded.APILink(responseData.APILink);\r\n }\r\n\r\n if (responseData.Subject != undefined) {\r\n loaded.Subject(responseData.Subject);\r\n }\r\n if (responseData.Instructions != undefined) {\r\n loaded.Instructions(responseData.Instructions);\r\n }\r\n if (responseData.ConfigurationRuleSetID != undefined) {\r\n loaded.ConfigurationRuleSetID(responseData.ConfigurationRuleSetID);\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.InteractionStepType != undefined) {\r\n loaded.InteractionStepType(responseData.InteractionStepType);\r\n }\r\n if (responseData.DurationBeforeExecution != undefined) {\r\n loaded.DurationBeforeExecution(responseData.DurationBeforeExecution);\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.InteractionPlanID != undefined) {\r\n loaded.InteractionPlanID(responseData.InteractionPlanID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.InclusionRuleSetID != undefined) {\r\n loaded.InclusionRuleSetID(responseData.InclusionRuleSetID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.PathToRecipient != undefined) {\r\n loaded.PathToRecipient(responseData.PathToRecipient);\r\n }\r\n if (responseData.PathToRecipientExpressionID != undefined) {\r\n loaded.PathToRecipientExpressionID(responseData.PathToRecipientExpressionID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.InteractionPlan != null) {\r\n loaded.InteractionPlan(new smapi.communication.InteractionPlanModel().LoadFromResponse(responseData.InteractionPlan));\r\n }\r\n if (responseData.ParentStep != null) {\r\n loaded.ParentStep(new smapi.communication.InteractionStepModel().LoadFromResponse(responseData.ParentStep));\r\n }\r\n if (responseData.ChildSteps != null && responseData.ChildSteps.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.ChildSteps.length; i++) {\r\n items.push(new smapi.communication.InteractionStepModel().LoadFromResponse(responseData.ChildSteps[i]));\r\n }\r\n loaded.ChildSteps(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.Communication.Entity.CampusVisitStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\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: 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.Instructions.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.ConfigurationRuleSetID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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: 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: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.InteractionStepType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_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.InteractionPlanID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ParentStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.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.PathToRecipient.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.PathToRecipientExpressionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 CommunicationFulfillmentFolderModel(options) {\r\n var defaults = {\r\n Foldername: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n\r\n var settings = jQuery.extend({}, defaults, options);\r\n\r\n // Self-Identification\r\n var self = this;\r\n\r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n\r\n // Properties as Observables\r\n this.Foldername = ko.validatedObservable(settings.Foldername);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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 loaded.APILink(responseData.APILink);\r\n }\r\n\r\n if (responseData.Foldername != undefined) {\r\n loaded.Foldername(responseData.Foldername);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.Communication.Entity.CommunicationFulfillmentFolder', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.Foldername.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\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.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n\r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n\r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function () {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n return self;\r\n }\r\n\r\n\r\n function CommunicationRecipientDetailModel(options) {\r\n var defaults = {\r\n ToAddress: '',\r\n ToDisplay: '',\r\n ContactID: 0,\r\n CommunicationTypeID: 0,\r\n RecipientType: null,\r\n Received: false,\r\n ReceivedDate: null,\r\n TargetUserID: 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.ToAddress = ko.validatedObservable(settings.ToAddress);\r\n this.ToDisplay = ko.validatedObservable(settings.ToDisplay);\r\n this.ContactID = ko.validatedObservable(settings.ContactID);\r\n this.CommunicationTypeID = ko.validatedObservable(settings.CommunicationTypeID);\r\n this.RecipientType = ko.validatedObservable(settings.RecipientType);\r\n this.Received = ko.validatedObservable(settings.Received);\r\n this.ReceivedDate = ko.validatedObservable(settings.ReceivedDate);\r\n this.TargetUserID = ko.validatedObservable(settings.TargetUserID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.CommunicationType = 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.ToAddress != undefined) {\r\n loaded.ToAddress(responseData.ToAddress);\r\n }\r\n if (responseData.ToDisplay != undefined) {\r\n loaded.ToDisplay(responseData.ToDisplay);\r\n }\r\n if (responseData.ContactID != undefined) {\r\n loaded.ContactID(responseData.ContactID);\r\n }\r\n if (responseData.CommunicationTypeID != undefined) {\r\n loaded.CommunicationTypeID(responseData.CommunicationTypeID);\r\n }\r\n if (responseData.RecipientType != undefined) {\r\n loaded.RecipientType(responseData.RecipientType);\r\n }\r\n if (responseData.Received != undefined) {\r\n loaded.Received(responseData.Received);\r\n }\r\n if (responseData.ReceivedDate != undefined) {\r\n loaded.ReceivedDate(responseData.ReceivedDate);\r\n }\r\n if (responseData.TargetUserID != undefined) {\r\n loaded.TargetUserID(responseData.TargetUserID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.CommunicationType != null) {\r\n loaded.CommunicationType(new smapi.communication.CommunicationTypeModel().LoadFromResponse(responseData.CommunicationType));\r\n }\r\n return loaded;\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.Communication.Entity.CommunicationRecipientDetail', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.ToAddress.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ToDisplay.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.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.CommunicationTypeID.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.RecipientType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ReceivedDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.TargetUserID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 CommunicationStatusModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n SystemProtected: 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.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\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 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.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\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.Communication.Entity.CommunicationStatus', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SystemProtected.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_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 CommunicationStepModel(options) {\r\n var defaults = {\r\n FromAddress: '',\r\n FromDisplayName: '',\r\n WaitForFulfillment: false,\r\n DurationBeforeEscalation: null,\r\n RequiresResponseBeforeContinuing: false,\r\n CommunicationTemplateID: null,\r\n EscalationStepID: null,\r\n CommunicationTypeID: 0,\r\n CommunicationPriorityID: null,\r\n TrackingCode: '',\r\n FulfillByGroupID: null,\r\n LetterCode: '',\r\n StepTestMode: false,\r\n ReadTrackingCode: '',\r\n TargetGroupID: null,\r\n TargetBindingPath: '',\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n InteractionStepType: null,\r\n DurationBeforeExecution: null,\r\n BeginDate: null,\r\n EndDate: null,\r\n InteractionPlanID: null,\r\n ParentStepID: null,\r\n InclusionRuleSetID: null,\r\n BusinessMeaningName: '',\r\n PathToRecipient: '',\r\n PathToRecipientExpressionID: 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.FromAddress = ko.validatedObservable(settings.FromAddress);\r\n this.FromDisplayName = ko.validatedObservable(settings.FromDisplayName);\r\n this.WaitForFulfillment = ko.validatedObservable(settings.WaitForFulfillment);\r\n this.DurationBeforeEscalation = ko.validatedObservable(settings.DurationBeforeEscalation);\r\n this.RequiresResponseBeforeContinuing = ko.validatedObservable(settings.RequiresResponseBeforeContinuing);\r\n this.CommunicationTemplateID = ko.validatedObservable(settings.CommunicationTemplateID);\r\n this.EscalationStepID = ko.validatedObservable(settings.EscalationStepID);\r\n this.CommunicationTypeID = ko.validatedObservable(settings.CommunicationTypeID);\r\n this.CommunicationPriorityID = ko.validatedObservable(settings.CommunicationPriorityID);\r\n this.TrackingCode = ko.validatedObservable(settings.TrackingCode);\r\n this.FulfillByGroupID = ko.validatedObservable(settings.FulfillByGroupID);\r\n this.LetterCode = ko.validatedObservable(settings.LetterCode);\r\n this.StepTestMode = ko.validatedObservable(settings.StepTestMode);\r\n this.ReadTrackingCode = ko.validatedObservable(settings.ReadTrackingCode);\r\n this.TargetGroupID = ko.validatedObservable(settings.TargetGroupID);\r\n this.TargetBindingPath = ko.validatedObservable(settings.TargetBindingPath);\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.InteractionStepType = ko.validatedObservable(settings.InteractionStepType);\r\n this.DurationBeforeExecution = ko.validatedObservable(settings.DurationBeforeExecution);\r\n this.BeginDate = ko.validatedObservable(settings.BeginDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.InteractionPlanID = ko.validatedObservable(settings.InteractionPlanID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.InclusionRuleSetID = ko.validatedObservable(settings.InclusionRuleSetID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.PathToRecipient = ko.validatedObservable(settings.PathToRecipient);\r\n this.PathToRecipientExpressionID = ko.validatedObservable(settings.PathToRecipientExpressionID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.EscalationStep = ko.observable();\r\n this.CommunicationType = ko.observable();\r\n this.CommunicationTemplate = ko.observable();\r\n this.RecipientList = ko.observableArray([]);\r\n this.TargetAddressAssociations = ko.observableArray([]);\r\n this.Attachments = ko.observableArray([]);\r\n this.InteractionPlan = ko.observable();\r\n this.ParentStep = ko.observable();\r\n this.ChildSteps = 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 loaded.APILink(responseData.APILink);\r\n }\r\n\r\n if (responseData.FromAddress != undefined) {\r\n loaded.FromAddress(responseData.FromAddress);\r\n }\r\n if (responseData.FromDisplayName != undefined) {\r\n loaded.FromDisplayName(responseData.FromDisplayName);\r\n }\r\n if (responseData.WaitForFulfillment != undefined) {\r\n loaded.WaitForFulfillment(responseData.WaitForFulfillment);\r\n }\r\n if (responseData.DurationBeforeEscalation != undefined) {\r\n loaded.DurationBeforeEscalation(responseData.DurationBeforeEscalation);\r\n }\r\n if (responseData.RequiresResponseBeforeContinuing != undefined) {\r\n loaded.RequiresResponseBeforeContinuing(responseData.RequiresResponseBeforeContinuing);\r\n }\r\n if (responseData.CommunicationTemplateID != undefined) {\r\n loaded.CommunicationTemplateID(responseData.CommunicationTemplateID);\r\n }\r\n if (responseData.EscalationStepID != undefined) {\r\n loaded.EscalationStepID(responseData.EscalationStepID);\r\n }\r\n if (responseData.CommunicationTypeID != undefined) {\r\n loaded.CommunicationTypeID(responseData.CommunicationTypeID);\r\n }\r\n if (responseData.CommunicationPriorityID != undefined) {\r\n loaded.CommunicationPriorityID(responseData.CommunicationPriorityID);\r\n }\r\n if (responseData.TrackingCode != undefined) {\r\n loaded.TrackingCode(responseData.TrackingCode);\r\n }\r\n if (responseData.FulfillByGroupID != undefined) {\r\n loaded.FulfillByGroupID(responseData.FulfillByGroupID);\r\n }\r\n if (responseData.LetterCode != undefined) {\r\n loaded.LetterCode(responseData.LetterCode);\r\n }\r\n if (responseData.StepTestMode != undefined) {\r\n loaded.StepTestMode(responseData.StepTestMode);\r\n }\r\n if (responseData.ReadTrackingCode != undefined) {\r\n loaded.ReadTrackingCode(responseData.ReadTrackingCode);\r\n }\r\n if (responseData.TargetGroupID != undefined) {\r\n loaded.TargetGroupID(responseData.TargetGroupID);\r\n }\r\n if (responseData.TargetBindingPath != undefined) {\r\n loaded.TargetBindingPath(responseData.TargetBindingPath);\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.InteractionStepType != undefined) {\r\n loaded.InteractionStepType(responseData.InteractionStepType);\r\n }\r\n if (responseData.DurationBeforeExecution != undefined) {\r\n loaded.DurationBeforeExecution(responseData.DurationBeforeExecution);\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.InteractionPlanID != undefined) {\r\n loaded.InteractionPlanID(responseData.InteractionPlanID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.InclusionRuleSetID != undefined) {\r\n loaded.InclusionRuleSetID(responseData.InclusionRuleSetID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.PathToRecipient != undefined) {\r\n loaded.PathToRecipient(responseData.PathToRecipient);\r\n }\r\n if (responseData.PathToRecipientExpressionID != undefined) {\r\n loaded.PathToRecipientExpressionID(responseData.PathToRecipientExpressionID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.EscalationStep != null) {\r\n loaded.EscalationStep(new smapi.communication.CommunicationStepModel().LoadFromResponse(responseData.EscalationStep));\r\n }\r\n if (responseData.CommunicationType != null) {\r\n loaded.CommunicationType(new smapi.communication.CommunicationTypeModel().LoadFromResponse(responseData.CommunicationType));\r\n }\r\n if (responseData.CommunicationTemplate != null) {\r\n loaded.CommunicationTemplate(new smapi.communication.CommunicationTemplateModel().LoadFromResponse(responseData.CommunicationTemplate));\r\n }\r\n if (responseData.RecipientList != null && responseData.RecipientList.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.RecipientList.length; i++) {\r\n items.push(new smapi.communication.CommunicationRecipientDetailModel().LoadFromResponse(responseData.RecipientList[i]));\r\n }\r\n loaded.RecipientList(items);\r\n }\r\n if (responseData.TargetAddressAssociations != null && responseData.TargetAddressAssociations.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.TargetAddressAssociations.length; i++) {\r\n items.push(new smapi.communication.AddressTypeAssociationPriorityModel().LoadFromResponse(responseData.TargetAddressAssociations[i]));\r\n }\r\n loaded.TargetAddressAssociations(items);\r\n }\r\n if (responseData.Attachments != null && responseData.Attachments.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.Attachments.length; i++) {\r\n items.push(new smapi.communication.CommunicationTemplateModel().LoadFromResponse(responseData.Attachments[i]));\r\n }\r\n loaded.Attachments(items);\r\n }\r\n if (responseData.InteractionPlan != null) {\r\n loaded.InteractionPlan(new smapi.communication.InteractionPlanModel().LoadFromResponse(responseData.InteractionPlan));\r\n }\r\n if (responseData.ParentStep != null) {\r\n loaded.ParentStep(new smapi.communication.InteractionStepModel().LoadFromResponse(responseData.ParentStep));\r\n }\r\n if (responseData.ChildSteps != null && responseData.ChildSteps.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.ChildSteps.length; i++) {\r\n items.push(new smapi.communication.InteractionStepModel().LoadFromResponse(responseData.ChildSteps[i]));\r\n }\r\n loaded.ChildSteps(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.Communication.Entity.CommunicationStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.FromAddress.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.FromDisplayName.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.WaitForFulfillment.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.RequiresResponseBeforeContinuing.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.CommunicationTemplateID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EscalationStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CommunicationTypeID.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.CommunicationPriorityID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TrackingCode.extend({\r\n maxLength: {\r\n params: 30,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '30')\r\n }\r\n });\r\n this.FulfillByGroupID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.LetterCode.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.StepTestMode.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ReadTrackingCode.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.TargetGroupID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TargetBindingPath.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.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: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.InteractionStepType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_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.InteractionPlanID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ParentStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.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.PathToRecipient.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.PathToRecipientExpressionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 CommunicationTemplateModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n TokenSeparator: '',\r\n Html: '',\r\n FileName: '',\r\n FileSize: 0,\r\n LastModified: 0,\r\n ServerFileUNC: '',\r\n ReportingServicesReport: '',\r\n CommunicationTypeID: 0,\r\n TrackingCode: 0,\r\n BeginDate: null,\r\n EndDate: null,\r\n Subject: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n\r\n var settings = jQuery.extend({}, defaults, options);\r\n\r\n // Self-Identification\r\n var self = this;\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.TokenSeparator = ko.validatedObservable(settings.TokenSeparator);\r\n this.Html = ko.validatedObservable(settings.Html);\r\n this.FileName = ko.validatedObservable(settings.FileName);\r\n this.FileSize = ko.validatedObservable(settings.FileSize);\r\n this.LastModified = ko.validatedObservable(settings.LastModified);\r\n this.ServerFileUNC = ko.validatedObservable(settings.ServerFileUNC);\r\n this.ReportingServicesReport = ko.validatedObservable(settings.ReportingServicesReport);\r\n this.CommunicationTypeID = ko.validatedObservable(settings.CommunicationTypeID);\r\n this.TrackingCode = ko.validatedObservable(settings.TrackingCode);\r\n this.BeginDate = ko.validatedObservable(settings.BeginDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.Subject = ko.validatedObservable(settings.Subject);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.CommunicationType = ko.observable();\r\n this.TokenList = ko.observableArray([]);\r\n this.EmbeddedAttachments = 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 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.TokenSeparator != undefined) {\r\n loaded.TokenSeparator(responseData.TokenSeparator);\r\n }\r\n if (responseData.Html != undefined) {\r\n loaded.Html(responseData.Html);\r\n }\r\n if (responseData.FileName != undefined) {\r\n loaded.FileName(responseData.FileName);\r\n }\r\n if (responseData.FileSize != undefined) {\r\n loaded.FileSize(responseData.FileSize);\r\n }\r\n if (responseData.LastModified != undefined) {\r\n loaded.LastModified(responseData.LastModified);\r\n }\r\n if (responseData.ServerFileUNC != undefined) {\r\n loaded.ServerFileUNC(responseData.ServerFileUNC);\r\n }\r\n if (responseData.ReportingServicesReport != undefined) {\r\n loaded.ReportingServicesReport(responseData.ReportingServicesReport);\r\n }\r\n if (responseData.CommunicationTypeID != undefined) {\r\n loaded.CommunicationTypeID(responseData.CommunicationTypeID);\r\n }\r\n if (responseData.TrackingCode != undefined) {\r\n loaded.TrackingCode(responseData.TrackingCode);\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.Subject != undefined) {\r\n loaded.Subject(responseData.Subject);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.CommunicationType != null) {\r\n loaded.CommunicationType(new smapi.communication.CommunicationTypeModel().LoadFromResponse(responseData.CommunicationType));\r\n }\r\n if (responseData.TokenList != null && responseData.TokenList.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.TokenList.length; i++) {\r\n items.push(new smapi.communication.CommunicationTokenModel().LoadFromResponse(responseData.TokenList[i]));\r\n }\r\n loaded.TokenList(items);\r\n }\r\n if (responseData.EmbeddedAttachments != null && responseData.EmbeddedAttachments.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.EmbeddedAttachments.length; i++) {\r\n items.push(new smapi.communication.CommunicationTemplateEmbeddedAttachmentModel().LoadFromResponse(responseData.EmbeddedAttachments[i]));\r\n }\r\n loaded.EmbeddedAttachments(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.Communication.Entity.CommunicationTemplate', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.TokenSeparator.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.FileName.extend({\r\n pattern: {\r\n params: /^(?:[\\w]\\:|\\\\|[\\w\\W])((\\\\*)[\\w\\W-[\\\\<>:\\\"\\|\\?\\*]]+)+\\.[\\w\\W-[\\\\<>:\\\"\\|\\?\\*]]+$/,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_IncorrectFormat_Key)\r\n },\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.FileSize.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.LastModified.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ServerFileUNC.extend({\r\n maxLength: {\r\n params: 1024,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1024')\r\n }\r\n });\r\n this.ReportingServicesReport.extend({\r\n maxLength: {\r\n params: 1024,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1024')\r\n }\r\n });\r\n this.CommunicationTypeID.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.TrackingCode.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.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: 255,\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 CommunicationTemplateEmbeddedAttachmentModel(options) {\r\n var defaults = {\r\n FileName: '',\r\n FileEncoding: '',\r\n FileSize: 0,\r\n MIMEType: '',\r\n FileData: null,\r\n CommunicationTemplateID: 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.FileName = ko.validatedObservable(settings.FileName);\r\n this.FileEncoding = ko.validatedObservable(settings.FileEncoding);\r\n this.FileSize = ko.validatedObservable(settings.FileSize);\r\n this.MIMEType = ko.validatedObservable(settings.MIMEType);\r\n this.FileData = ko.validatedObservable(settings.FileData);\r\n this.CommunicationTemplateID = ko.validatedObservable(settings.CommunicationTemplateID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.CommunicationTemplate = 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.FileName != undefined) {\r\n loaded.FileName(responseData.FileName);\r\n }\r\n if (responseData.FileEncoding != undefined) {\r\n loaded.FileEncoding(responseData.FileEncoding);\r\n }\r\n if (responseData.FileSize != undefined) {\r\n loaded.FileSize(responseData.FileSize);\r\n }\r\n if (responseData.MIMEType != undefined) {\r\n loaded.MIMEType(responseData.MIMEType);\r\n }\r\n if (responseData.FileData != undefined) {\r\n loaded.FileData(responseData.FileData);\r\n }\r\n if (responseData.CommunicationTemplateID != undefined) {\r\n loaded.CommunicationTemplateID(responseData.CommunicationTemplateID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.CommunicationTemplate != null) {\r\n loaded.CommunicationTemplate(new smapi.communication.CommunicationTemplateModel().LoadFromResponse(responseData.CommunicationTemplate));\r\n }\r\n return loaded;\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.Communication.Entity.CommunicationTemplateEmbeddedAttachment', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.FileName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n maxLength: {\r\n params: 1024,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1024')\r\n }\r\n });\r\n this.FileEncoding.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.FileSize.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.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: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.CommunicationTemplateID.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 CommunicationTokenModel(options) {\r\n var defaults = {\r\n Token: '',\r\n TokenExpressionID: null,\r\n ApplicationSettingID: 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.Token = ko.validatedObservable(settings.Token);\r\n this.TokenExpressionID = ko.validatedObservable(settings.TokenExpressionID);\r\n this.ApplicationSettingID = ko.validatedObservable(settings.ApplicationSettingID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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 loaded.APILink(responseData.APILink);\r\n }\r\n\r\n if (responseData.Token != undefined) {\r\n loaded.Token(responseData.Token);\r\n }\r\n if (responseData.TokenExpressionID != undefined) {\r\n loaded.TokenExpressionID(responseData.TokenExpressionID);\r\n }\r\n if (responseData.ApplicationSettingID != undefined) {\r\n loaded.ApplicationSettingID(responseData.ApplicationSettingID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.Communication.Entity.CommunicationToken', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.Token.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.TokenExpressionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ApplicationSettingID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 CommunicationTrackingModel(options) {\r\n var defaults = {\r\n TrackingCode: '',\r\n PersonName: '',\r\n CommunicationPlanStepName: '',\r\n TrackingInstanceID: null,\r\n CreateDate: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n\r\n var settings = jQuery.extend({}, defaults, options);\r\n\r\n // Self-Identification\r\n var self = this;\r\n\r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n\r\n // Properties as Observables\r\n this.TrackingCode = ko.validatedObservable(settings.TrackingCode);\r\n this.PersonName = ko.validatedObservable(settings.PersonName);\r\n this.CommunicationPlanStepName = ko.validatedObservable(settings.CommunicationPlanStepName);\r\n this.TrackingInstanceID = ko.validatedObservable(settings.TrackingInstanceID);\r\n this.CreateDate = ko.validatedObservable(settings.CreateDate);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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 loaded.APILink(responseData.APILink);\r\n }\r\n\r\n if (responseData.TrackingCode != undefined) {\r\n loaded.TrackingCode(responseData.TrackingCode);\r\n }\r\n if (responseData.PersonName != undefined) {\r\n loaded.PersonName(responseData.PersonName);\r\n }\r\n if (responseData.CommunicationPlanStepName != undefined) {\r\n loaded.CommunicationPlanStepName(responseData.CommunicationPlanStepName);\r\n }\r\n if (responseData.TrackingInstanceID != undefined) {\r\n loaded.TrackingInstanceID(responseData.TrackingInstanceID);\r\n }\r\n if (responseData.CreateDate != undefined) {\r\n loaded.CreateDate(responseData.CreateDate);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.Communication.Entity.CommunicationTracking', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.TrackingCode.extend({\r\n 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.PersonName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.CommunicationPlanStepName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.TrackingInstanceID.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.CreateDate.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 CommunicationTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n EditorControlToUse: '',\r\n DisplayControlToUse: '',\r\n MergeEngine: '',\r\n BusinessMeaningName: '',\r\n AddressBusinessMeaningName: '',\r\n AvailableForPortalApplicants: 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.EditorControlToUse = ko.validatedObservable(settings.EditorControlToUse);\r\n this.DisplayControlToUse = ko.validatedObservable(settings.DisplayControlToUse);\r\n this.MergeEngine = ko.validatedObservable(settings.MergeEngine);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.AddressBusinessMeaningName = ko.validatedObservable(settings.AddressBusinessMeaningName);\r\n this.AvailableForPortalApplicants = ko.validatedObservable(settings.AvailableForPortalApplicants);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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 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.EditorControlToUse != undefined) {\r\n loaded.EditorControlToUse(responseData.EditorControlToUse);\r\n }\r\n if (responseData.DisplayControlToUse != undefined) {\r\n loaded.DisplayControlToUse(responseData.DisplayControlToUse);\r\n }\r\n if (responseData.MergeEngine != undefined) {\r\n loaded.MergeEngine(responseData.MergeEngine);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.AddressBusinessMeaningName != undefined) {\r\n loaded.AddressBusinessMeaningName(responseData.AddressBusinessMeaningName);\r\n }\r\n if (responseData.AvailableForPortalApplicants != undefined) {\r\n loaded.AvailableForPortalApplicants(responseData.AvailableForPortalApplicants);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.Communication.Entity.CommunicationType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.EditorControlToUse.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.DisplayControlToUse.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.MergeEngine.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n maxLength: {\r\n params: 255,\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.AddressBusinessMeaningName.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 ContactCommunicationModel(options) {\r\n var defaults = {\r\n Subject: '',\r\n FromAddress: '',\r\n ToAddress: '',\r\n FromDisplay: '',\r\n ToDisplay: '',\r\n Html: '',\r\n Fulfilled: false,\r\n FulfilledDate: null,\r\n WaitingForResponse: false,\r\n ReceivedResponse: false,\r\n ResponseDate: null,\r\n Received: false,\r\n ReceivedDate: null,\r\n InteractionPlanInstanceID: null,\r\n CommunicationTypeID: 0,\r\n ContactID: 0,\r\n RelatedContactID: null,\r\n CommunicationStepID: null,\r\n ParentCommunicationID: null,\r\n FileName: '',\r\n CommunicationPriorityID: null,\r\n InitiatedByUserID: null,\r\n InitiatedByGroupID: null,\r\n FulfilledByUserID: null,\r\n FulfilledByGroupID: null,\r\n TargetUserID: null,\r\n ReadReceipt: false,\r\n ActionTaken: false,\r\n ReadTrackingCode: '',\r\n TrackingCode: '',\r\n BroadcastIdentifier: '',\r\n CommunicationStatusID: 0,\r\n StatusMessage: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n\r\n var settings = jQuery.extend({}, defaults, options);\r\n\r\n // Self-Identification\r\n var self = this;\r\n\r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n\r\n // Properties as Observables\r\n this.Subject = ko.validatedObservable(settings.Subject);\r\n this.FromAddress = ko.validatedObservable(settings.FromAddress);\r\n this.ToAddress = ko.validatedObservable(settings.ToAddress);\r\n this.FromDisplay = ko.validatedObservable(settings.FromDisplay);\r\n this.ToDisplay = ko.validatedObservable(settings.ToDisplay);\r\n this.Html = ko.validatedObservable(settings.Html);\r\n this.Fulfilled = ko.validatedObservable(settings.Fulfilled);\r\n this.FulfilledDate = ko.validatedObservable(settings.FulfilledDate);\r\n this.WaitingForResponse = ko.validatedObservable(settings.WaitingForResponse);\r\n this.ReceivedResponse = ko.validatedObservable(settings.ReceivedResponse);\r\n this.ResponseDate = ko.validatedObservable(settings.ResponseDate);\r\n this.Received = ko.validatedObservable(settings.Received);\r\n this.ReceivedDate = ko.validatedObservable(settings.ReceivedDate);\r\n this.InteractionPlanInstanceID = ko.validatedObservable(settings.InteractionPlanInstanceID);\r\n this.CommunicationTypeID = ko.validatedObservable(settings.CommunicationTypeID);\r\n this.ContactID = ko.validatedObservable(settings.ContactID);\r\n this.RelatedContactID = ko.validatedObservable(settings.RelatedContactID);\r\n this.CommunicationStepID = ko.validatedObservable(settings.CommunicationStepID);\r\n this.ParentCommunicationID = ko.validatedObservable(settings.ParentCommunicationID);\r\n this.FileName = ko.validatedObservable(settings.FileName);\r\n this.CommunicationPriorityID = ko.validatedObservable(settings.CommunicationPriorityID);\r\n this.InitiatedByUserID = ko.validatedObservable(settings.InitiatedByUserID);\r\n this.InitiatedByGroupID = ko.validatedObservable(settings.InitiatedByGroupID);\r\n this.FulfilledByUserID = ko.validatedObservable(settings.FulfilledByUserID);\r\n this.FulfilledByGroupID = ko.validatedObservable(settings.FulfilledByGroupID);\r\n this.TargetUserID = ko.validatedObservable(settings.TargetUserID);\r\n this.ReadReceipt = ko.validatedObservable(settings.ReadReceipt);\r\n this.ActionTaken = ko.validatedObservable(settings.ActionTaken);\r\n this.ReadTrackingCode = ko.validatedObservable(settings.ReadTrackingCode);\r\n this.TrackingCode = ko.validatedObservable(settings.TrackingCode);\r\n this.BroadcastIdentifier = ko.validatedObservable(settings.BroadcastIdentifier);\r\n this.CommunicationStatusID = ko.validatedObservable(settings.CommunicationStatusID);\r\n this.StatusMessage = ko.validatedObservable(settings.StatusMessage);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.RelatedContact = ko.observable();\r\n this.ContactNotes = ko.observableArray([]);\r\n this.ParentCommunication = ko.observable();\r\n this.Parent = ko.observable();\r\n this.CommunicationStep = ko.observable();\r\n this.CommunicationType = ko.observable();\r\n this.Responses = ko.observableArray([]);\r\n this.EmbeddedAttachments = ko.observableArray([]);\r\n this.ExternalAttachments = ko.observableArray([]);\r\n this.RecipientList = ko.observableArray([]);\r\n this.CommunicationStatus = 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.Subject != undefined) {\r\n loaded.Subject(responseData.Subject);\r\n }\r\n if (responseData.FromAddress != undefined) {\r\n loaded.FromAddress(responseData.FromAddress);\r\n }\r\n if (responseData.ToAddress != undefined) {\r\n loaded.ToAddress(responseData.ToAddress);\r\n }\r\n if (responseData.FromDisplay != undefined) {\r\n loaded.FromDisplay(responseData.FromDisplay);\r\n }\r\n if (responseData.ToDisplay != undefined) {\r\n loaded.ToDisplay(responseData.ToDisplay);\r\n }\r\n if (responseData.Html != undefined) {\r\n loaded.Html(responseData.Html);\r\n }\r\n if (responseData.Fulfilled != undefined) {\r\n loaded.Fulfilled(responseData.Fulfilled);\r\n }\r\n if (responseData.FulfilledDate != undefined) {\r\n loaded.FulfilledDate(responseData.FulfilledDate);\r\n }\r\n if (responseData.WaitingForResponse != undefined) {\r\n loaded.WaitingForResponse(responseData.WaitingForResponse);\r\n }\r\n if (responseData.ReceivedResponse != undefined) {\r\n loaded.ReceivedResponse(responseData.ReceivedResponse);\r\n }\r\n if (responseData.ResponseDate != undefined) {\r\n loaded.ResponseDate(responseData.ResponseDate);\r\n }\r\n if (responseData.Received != undefined) {\r\n loaded.Received(responseData.Received);\r\n }\r\n if (responseData.ReceivedDate != undefined) {\r\n loaded.ReceivedDate(responseData.ReceivedDate);\r\n }\r\n if (responseData.InteractionPlanInstanceID != undefined) {\r\n loaded.InteractionPlanInstanceID(responseData.InteractionPlanInstanceID);\r\n }\r\n if (responseData.CommunicationTypeID != undefined) {\r\n loaded.CommunicationTypeID(responseData.CommunicationTypeID);\r\n }\r\n if (responseData.ContactID != undefined) {\r\n loaded.ContactID(responseData.ContactID);\r\n }\r\n if (responseData.RelatedContactID != undefined) {\r\n loaded.RelatedContactID(responseData.RelatedContactID);\r\n }\r\n if (responseData.CommunicationStepID != undefined) {\r\n loaded.CommunicationStepID(responseData.CommunicationStepID);\r\n }\r\n if (responseData.ParentCommunicationID != undefined) {\r\n loaded.ParentCommunicationID(responseData.ParentCommunicationID);\r\n }\r\n if (responseData.FileName != undefined) {\r\n loaded.FileName(responseData.FileName);\r\n }\r\n if (responseData.CommunicationPriorityID != undefined) {\r\n loaded.CommunicationPriorityID(responseData.CommunicationPriorityID);\r\n }\r\n if (responseData.InitiatedByUserID != undefined) {\r\n loaded.InitiatedByUserID(responseData.InitiatedByUserID);\r\n }\r\n if (responseData.InitiatedByGroupID != undefined) {\r\n loaded.InitiatedByGroupID(responseData.InitiatedByGroupID);\r\n }\r\n if (responseData.FulfilledByUserID != undefined) {\r\n loaded.FulfilledByUserID(responseData.FulfilledByUserID);\r\n }\r\n if (responseData.FulfilledByGroupID != undefined) {\r\n loaded.FulfilledByGroupID(responseData.FulfilledByGroupID);\r\n }\r\n if (responseData.TargetUserID != undefined) {\r\n loaded.TargetUserID(responseData.TargetUserID);\r\n }\r\n if (responseData.ReadReceipt != undefined) {\r\n loaded.ReadReceipt(responseData.ReadReceipt);\r\n }\r\n if (responseData.ActionTaken != undefined) {\r\n loaded.ActionTaken(responseData.ActionTaken);\r\n }\r\n if (responseData.ReadTrackingCode != undefined) {\r\n loaded.ReadTrackingCode(responseData.ReadTrackingCode);\r\n }\r\n if (responseData.TrackingCode != undefined) {\r\n loaded.TrackingCode(responseData.TrackingCode);\r\n }\r\n if (responseData.BroadcastIdentifier != undefined) {\r\n loaded.BroadcastIdentifier(responseData.BroadcastIdentifier);\r\n }\r\n if (responseData.CommunicationStatusID != undefined) {\r\n loaded.CommunicationStatusID(responseData.CommunicationStatusID);\r\n }\r\n if (responseData.StatusMessage != undefined) {\r\n loaded.StatusMessage(responseData.StatusMessage);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.RelatedContact != null) {\r\n loaded.RelatedContact(new smapi.community.ContactModel().LoadFromResponse(responseData.RelatedContact));\r\n }\r\n if (responseData.ContactNotes != null && responseData.ContactNotes.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.ContactNotes.length; i++) {\r\n items.push(new smapi.community.ContactNoteModel().LoadFromResponse(responseData.ContactNotes[i]));\r\n }\r\n loaded.ContactNotes(items);\r\n }\r\n if (responseData.ParentCommunication != null) {\r\n loaded.ParentCommunication(new smapi.communication.ContactCommunicationModel().LoadFromResponse(responseData.ParentCommunication));\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.communication.InteractionPlanInstanceModel().LoadFromResponse(responseData.Parent));\r\n }\r\n if (responseData.CommunicationStep != null) {\r\n loaded.CommunicationStep(new smapi.communication.CommunicationStepModel().LoadFromResponse(responseData.CommunicationStep));\r\n }\r\n if (responseData.CommunicationType != null) {\r\n loaded.CommunicationType(new smapi.communication.CommunicationTypeModel().LoadFromResponse(responseData.CommunicationType));\r\n }\r\n if (responseData.Responses != null && responseData.Responses.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.Responses.length; i++) {\r\n items.push(new smapi.communication.ContactCommunicationModel().LoadFromResponse(responseData.Responses[i]));\r\n }\r\n loaded.Responses(items);\r\n }\r\n if (responseData.EmbeddedAttachments != null && responseData.EmbeddedAttachments.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.EmbeddedAttachments.length; i++) {\r\n items.push(new smapi.communication.ContactCommunicationEmbeddedAttachmentModel().LoadFromResponse(responseData.EmbeddedAttachments[i]));\r\n }\r\n loaded.EmbeddedAttachments(items);\r\n }\r\n if (responseData.ExternalAttachments != null && responseData.ExternalAttachments.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.ExternalAttachments.length; i++) {\r\n items.push(new smapi.communication.ContactCommunicationExternalAttachmentModel().LoadFromResponse(responseData.ExternalAttachments[i]));\r\n }\r\n loaded.ExternalAttachments(items);\r\n }\r\n if (responseData.RecipientList != null && responseData.RecipientList.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.RecipientList.length; i++) {\r\n items.push(new smapi.communication.CommunicationRecipientDetailModel().LoadFromResponse(responseData.RecipientList[i]));\r\n }\r\n loaded.RecipientList(items);\r\n }\r\n if (responseData.CommunicationStatus != null) {\r\n loaded.CommunicationStatus(new smapi.communication.CommunicationStatusModel().LoadFromResponse(responseData.CommunicationStatus));\r\n }\r\n return loaded;\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.Communication.Entity.ContactCommunication', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\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: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.FromAddress.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ToAddress.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.FromDisplay.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.ToDisplay.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.Fulfilled.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.FulfilledDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.WaitingForResponse.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ReceivedResponse.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ResponseDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ReceivedDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.InteractionPlanInstanceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CommunicationTypeID.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.RelatedContactID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CommunicationStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ParentCommunicationID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.FileName.extend({\r\n pattern: {\r\n params: /^(?:[\\w]\\:|\\\\|[\\w\\W])((\\\\*)[\\w\\W-[\\\\<>:\\\"\\|\\?\\*]]+)+\\.[\\w\\W-[\\\\<>:\\\"\\|\\?\\*]]+$/,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_IncorrectFormat_Key)\r\n },\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.CommunicationPriorityID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.InitiatedByUserID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.InitiatedByGroupID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.FulfilledByUserID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.FulfilledByGroupID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TargetUserID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ReadTrackingCode.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.TrackingCode.extend({\r\n maxLength: {\r\n params: 30,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '30')\r\n }\r\n });\r\n this.BroadcastIdentifier.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.CommunicationStatusID.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.StatusMessage.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 ContactCommunicationEmbeddedAttachmentModel(options) {\r\n var defaults = {\r\n FileName: '',\r\n FileEncoding: '',\r\n FileSize: 0,\r\n MIMEType: '',\r\n FileData: null,\r\n AttachmentGID: null,\r\n ContactCommunicationID: 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.FileName = ko.validatedObservable(settings.FileName);\r\n this.FileEncoding = ko.validatedObservable(settings.FileEncoding);\r\n this.FileSize = ko.validatedObservable(settings.FileSize);\r\n this.MIMEType = ko.validatedObservable(settings.MIMEType);\r\n this.FileData = ko.validatedObservable(settings.FileData);\r\n this.AttachmentGID = ko.validatedObservable(settings.AttachmentGID);\r\n this.ContactCommunicationID = ko.validatedObservable(settings.ContactCommunicationID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.ContactCommunication = 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.FileName != undefined) {\r\n loaded.FileName(responseData.FileName);\r\n }\r\n if (responseData.FileEncoding != undefined) {\r\n loaded.FileEncoding(responseData.FileEncoding);\r\n }\r\n if (responseData.FileSize != undefined) {\r\n loaded.FileSize(responseData.FileSize);\r\n }\r\n if (responseData.MIMEType != undefined) {\r\n loaded.MIMEType(responseData.MIMEType);\r\n }\r\n if (responseData.FileData != undefined) {\r\n loaded.FileData(responseData.FileData);\r\n }\r\n if (responseData.AttachmentGID != undefined) {\r\n loaded.AttachmentGID(responseData.AttachmentGID);\r\n }\r\n if (responseData.ContactCommunicationID != undefined) {\r\n loaded.ContactCommunicationID(responseData.ContactCommunicationID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.ContactCommunication != null) {\r\n loaded.ContactCommunication(new smapi.communication.ContactCommunicationModel().LoadFromResponse(responseData.ContactCommunication));\r\n }\r\n return loaded;\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.Communication.Entity.ContactCommunicationEmbeddedAttachment', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.FileName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n maxLength: {\r\n params: 1024,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1024')\r\n }\r\n });\r\n this.FileEncoding.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.FileSize.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.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: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.AttachmentGID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: 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.ContactCommunicationID.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 ContactCommunicationExternalAttachmentModel(options) {\r\n var defaults = {\r\n FileName: '',\r\n ContactCommunicationID: null,\r\n CommunicationTemplateID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n\r\n var settings = jQuery.extend({}, defaults, options);\r\n\r\n // Self-Identification\r\n var self = this;\r\n\r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n\r\n // Properties as Observables\r\n this.FileName = ko.validatedObservable(settings.FileName);\r\n this.ContactCommunicationID = ko.validatedObservable(settings.ContactCommunicationID);\r\n this.CommunicationTemplateID = ko.validatedObservable(settings.CommunicationTemplateID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.ContactCommunication = ko.observable();\r\n this.CommunicationTemplate = 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.FileName != undefined) {\r\n loaded.FileName(responseData.FileName);\r\n }\r\n if (responseData.ContactCommunicationID != undefined) {\r\n loaded.ContactCommunicationID(responseData.ContactCommunicationID);\r\n }\r\n if (responseData.CommunicationTemplateID != undefined) {\r\n loaded.CommunicationTemplateID(responseData.CommunicationTemplateID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.ContactCommunication != null) {\r\n loaded.ContactCommunication(new smapi.communication.ContactCommunicationModel().LoadFromResponse(responseData.ContactCommunication));\r\n }\r\n if (responseData.CommunicationTemplate != null) {\r\n loaded.CommunicationTemplate(new smapi.communication.CommunicationTemplateModel().LoadFromResponse(responseData.CommunicationTemplate));\r\n }\r\n return loaded;\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.Communication.Entity.ContactCommunicationExternalAttachment', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.FileName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n pattern: {\r\n params: /^(?:[\\w]\\:|\\\\|[\\w\\W])((\\\\*)[\\w\\W-[\\\\<>:\\\"\\|\\?\\*]]+)+\\.[\\w\\W-[\\\\<>:\\\"\\|\\?\\*]]+$/,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_IncorrectFormat_Key)\r\n },\r\n maxLength: {\r\n params: 1024,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1024')\r\n }\r\n });\r\n this.ContactCommunicationID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CommunicationTemplateID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 EmailTemplateModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n EmbeddedImage: false,\r\n BeginDate: null,\r\n EndDate: null,\r\n Html: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n\r\n var settings = jQuery.extend({}, defaults, options);\r\n\r\n // Self-Identification\r\n var self = this;\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.EmbeddedImage = ko.validatedObservable(settings.EmbeddedImage);\r\n this.BeginDate = ko.validatedObservable(settings.BeginDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.Html = ko.validatedObservable(settings.Html);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.EmbeddedAttachments = 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 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.EmbeddedImage != undefined) {\r\n loaded.EmbeddedImage(responseData.EmbeddedImage);\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.Html != undefined) {\r\n loaded.Html(responseData.Html);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.EmbeddedAttachments != null && responseData.EmbeddedAttachments.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.EmbeddedAttachments.length; i++) {\r\n items.push(new smapi.communication.EmailTemplateEmbeddedAttachmentModel().LoadFromResponse(responseData.EmbeddedAttachments[i]));\r\n }\r\n loaded.EmbeddedAttachments(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.Communication.Entity.EmailTemplate', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.EmbeddedImage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_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.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n\r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n\r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function () {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n return self;\r\n }\r\n\r\n\r\n function EmailTemplateEmbeddedAttachmentModel(options) {\r\n var defaults = {\r\n FileName: '',\r\n FileEncoding: '',\r\n FileSize: 0,\r\n MIMEType: '',\r\n FileData: null,\r\n EmailTemplateID: 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.FileName = ko.validatedObservable(settings.FileName);\r\n this.FileEncoding = ko.validatedObservable(settings.FileEncoding);\r\n this.FileSize = ko.validatedObservable(settings.FileSize);\r\n this.MIMEType = ko.validatedObservable(settings.MIMEType);\r\n this.FileData = ko.validatedObservable(settings.FileData);\r\n this.EmailTemplateID = ko.validatedObservable(settings.EmailTemplateID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.EmailTemplate = 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.FileName != undefined) {\r\n loaded.FileName(responseData.FileName);\r\n }\r\n if (responseData.FileEncoding != undefined) {\r\n loaded.FileEncoding(responseData.FileEncoding);\r\n }\r\n if (responseData.FileSize != undefined) {\r\n loaded.FileSize(responseData.FileSize);\r\n }\r\n if (responseData.MIMEType != undefined) {\r\n loaded.MIMEType(responseData.MIMEType);\r\n }\r\n if (responseData.FileData != undefined) {\r\n loaded.FileData(responseData.FileData);\r\n }\r\n if (responseData.EmailTemplateID != undefined) {\r\n loaded.EmailTemplateID(responseData.EmailTemplateID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.EmailTemplate != null) {\r\n loaded.EmailTemplate(new smapi.communication.EmailTemplateModel().LoadFromResponse(responseData.EmailTemplate));\r\n }\r\n return loaded;\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.Communication.Entity.EmailTemplateEmbeddedAttachment', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.FileName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n maxLength: {\r\n params: 1024,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1024')\r\n }\r\n });\r\n this.FileEncoding.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.FileSize.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.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: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.EmailTemplateID.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 InteractionPlanModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n EffectiveDate: null,\r\n EndDate: null,\r\n EndDurationFromStart: null,\r\n EntityID: 0,\r\n FulfillByUserID: null,\r\n FulfillByGroupID: null,\r\n StartingRuleSetID: null,\r\n PlanTestMode: false,\r\n BusinessMeaningName: '',\r\n ModuleID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n\r\n var settings = jQuery.extend({}, defaults, options);\r\n\r\n // Self-Identification\r\n var self = this;\r\n\r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n\r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.EffectiveDate = ko.validatedObservable(settings.EffectiveDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.EndDurationFromStart = ko.validatedObservable(settings.EndDurationFromStart);\r\n this.EntityID = ko.validatedObservable(settings.EntityID);\r\n this.FulfillByUserID = ko.validatedObservable(settings.FulfillByUserID);\r\n this.FulfillByGroupID = ko.validatedObservable(settings.FulfillByGroupID);\r\n this.StartingRuleSetID = ko.validatedObservable(settings.StartingRuleSetID);\r\n this.PlanTestMode = ko.validatedObservable(settings.PlanTestMode);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ModuleID = ko.validatedObservable(settings.ModuleID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n\r\n // Relationships as Observables and ObservableArrays\r\n this.InteractionSteps = ko.observableArray([]);\r\n this.InteractionPlanPriority = 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 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.EffectiveDate != undefined) {\r\n loaded.EffectiveDate(responseData.EffectiveDate);\r\n }\r\n if (responseData.EndDate != undefined) {\r\n loaded.EndDate(responseData.EndDate);\r\n }\r\n if (responseData.EndDurationFromStart != undefined) {\r\n loaded.EndDurationFromStart(responseData.EndDurationFromStart);\r\n }\r\n if (responseData.EntityID != undefined) {\r\n loaded.EntityID(responseData.EntityID);\r\n }\r\n if (responseData.FulfillByUserID != undefined) {\r\n loaded.FulfillByUserID(responseData.FulfillByUserID);\r\n }\r\n if (responseData.FulfillByGroupID != undefined) {\r\n loaded.FulfillByGroupID(responseData.FulfillByGroupID);\r\n }\r\n if (responseData.StartingRuleSetID != undefined) {\r\n loaded.StartingRuleSetID(responseData.StartingRuleSetID);\r\n }\r\n if (responseData.PlanTestMode != undefined) {\r\n loaded.PlanTestMode(responseData.PlanTestMode);\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.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.InteractionSteps != null && responseData.InteractionSteps.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.InteractionSteps.length; i++) {\r\n items.push(new smapi.communication.InteractionStepModel().LoadFromResponse(responseData.InteractionSteps[i]));\r\n }\r\n loaded.InteractionSteps(items);\r\n }\r\n if (responseData.InteractionPlanPriority != null && responseData.InteractionPlanPriority.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.InteractionPlanPriority.length; i++) {\r\n items.push(new smapi.communication.InteractionPlanPriorityModel().LoadFromResponse(responseData.InteractionPlanPriority[i]));\r\n }\r\n loaded.InteractionPlanPriority(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.Communication.Entity.InteractionPlan', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.EffectiveDate.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.EntityID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.FulfillByUserID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.FulfillByGroupID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StartingRuleSetID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PlanTestMode.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_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.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 InteractionPlanGroupModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n CanStartRuleID: 0,\r\n StartRuleID: 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.CanStartRuleID = ko.validatedObservable(settings.CanStartRuleID);\r\n this.StartRuleID = ko.validatedObservable(settings.StartRuleID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.InteractionPlanGroupRule = 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 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.CanStartRuleID != undefined) {\r\n loaded.CanStartRuleID(responseData.CanStartRuleID);\r\n }\r\n if (responseData.StartRuleID != undefined) {\r\n loaded.StartRuleID(responseData.StartRuleID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.InteractionPlanGroupRule != null && responseData.InteractionPlanGroupRule.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.InteractionPlanGroupRule.length; i++) {\r\n items.push(new smapi.communication.InteractionPlanGroupRuleModel().LoadFromResponse(responseData.InteractionPlanGroupRule[i]));\r\n }\r\n loaded.InteractionPlanGroupRule(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.Communication.Entity.InteractionPlanGroup', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.CanStartRuleID.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.StartRuleID.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 InteractionPlanGroupRuleModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n Singleton: false,\r\n Replace: false,\r\n InteractionPlanGroupID: 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.Singleton = ko.validatedObservable(settings.Singleton);\r\n this.Replace = ko.validatedObservable(settings.Replace);\r\n this.InteractionPlanGroupID = ko.validatedObservable(settings.InteractionPlanGroupID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.InteractionPlanPriorities = ko.observableArray([]);\r\n this.InteractionPlanGroup = 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.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.Singleton != undefined) {\r\n loaded.Singleton(responseData.Singleton);\r\n }\r\n if (responseData.Replace != undefined) {\r\n loaded.Replace(responseData.Replace);\r\n }\r\n if (responseData.InteractionPlanGroupID != undefined) {\r\n loaded.InteractionPlanGroupID(responseData.InteractionPlanGroupID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.InteractionPlanPriorities != null && responseData.InteractionPlanPriorities.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.InteractionPlanPriorities.length; i++) {\r\n items.push(new smapi.communication.InteractionPlanPriorityModel().LoadFromResponse(responseData.InteractionPlanPriorities[i]));\r\n }\r\n loaded.InteractionPlanPriorities(items);\r\n }\r\n if (responseData.InteractionPlanGroup != null) {\r\n loaded.InteractionPlanGroup(new smapi.communication.InteractionPlanGroupModel().LoadFromResponse(responseData.InteractionPlanGroup));\r\n }\r\n return loaded;\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.Communication.Entity.InteractionPlanGroupRule', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.Singleton.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.Replace.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.InteractionPlanGroupID.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 InteractionPlanInstanceModel(options) {\r\n var defaults = {\r\n WorkflowInstanceID: null,\r\n ContextEntityID: null,\r\n ContextEntityName: '',\r\n ContextEntityGID: null,\r\n StartDate: null,\r\n TargetEndDate: null,\r\n EndDate: null,\r\n ContactID: 0,\r\n InteractionPlanID: 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.WorkflowInstanceID = ko.validatedObservable(settings.WorkflowInstanceID);\r\n this.ContextEntityID = ko.validatedObservable(settings.ContextEntityID);\r\n this.ContextEntityName = ko.validatedObservable(settings.ContextEntityName);\r\n this.ContextEntityGID = ko.validatedObservable(settings.ContextEntityGID);\r\n this.StartDate = ko.validatedObservable(settings.StartDate);\r\n this.TargetEndDate = ko.validatedObservable(settings.TargetEndDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.ContactID = ko.validatedObservable(settings.ContactID);\r\n this.InteractionPlanID = ko.validatedObservable(settings.InteractionPlanID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.InteractionPlan = ko.observable();\r\n this.Communications = 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 loaded.APILink(responseData.APILink);\r\n }\r\n\r\n if (responseData.WorkflowInstanceID != undefined) {\r\n loaded.WorkflowInstanceID(responseData.WorkflowInstanceID);\r\n }\r\n if (responseData.ContextEntityID != undefined) {\r\n loaded.ContextEntityID(responseData.ContextEntityID);\r\n }\r\n if (responseData.ContextEntityName != undefined) {\r\n loaded.ContextEntityName(responseData.ContextEntityName);\r\n }\r\n if (responseData.ContextEntityGID != undefined) {\r\n loaded.ContextEntityGID(responseData.ContextEntityGID);\r\n }\r\n if (responseData.StartDate != undefined) {\r\n loaded.StartDate(responseData.StartDate);\r\n }\r\n if (responseData.TargetEndDate != undefined) {\r\n loaded.TargetEndDate(responseData.TargetEndDate);\r\n }\r\n if (responseData.EndDate != undefined) {\r\n loaded.EndDate(responseData.EndDate);\r\n }\r\n if (responseData.ContactID != undefined) {\r\n loaded.ContactID(responseData.ContactID);\r\n }\r\n if (responseData.InteractionPlanID != undefined) {\r\n loaded.InteractionPlanID(responseData.InteractionPlanID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.InteractionPlan != null) {\r\n loaded.InteractionPlan(new smapi.communication.InteractionPlanModel().LoadFromResponse(responseData.InteractionPlan));\r\n }\r\n if (responseData.Communications != null && responseData.Communications.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.Communications.length; i++) {\r\n items.push(new smapi.communication.ContactCommunicationModel().LoadFromResponse(responseData.Communications[i]));\r\n }\r\n loaded.Communications(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.Communication.Entity.InteractionPlanInstance', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.WorkflowInstanceID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: 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 min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ContextEntityName.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.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.StartDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.TargetEndDate.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.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.InteractionPlanID.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 InteractionPlanPriorityModel(options) {\r\n var defaults = {\r\n InteractionPlanID: null,\r\n Priority: 0,\r\n InteractionPlanGroupRuleID: 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.InteractionPlanID = ko.validatedObservable(settings.InteractionPlanID);\r\n this.Priority = ko.validatedObservable(settings.Priority);\r\n this.InteractionPlanGroupRuleID = ko.validatedObservable(settings.InteractionPlanGroupRuleID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.InteractionPlanGroupRule = ko.observable();\r\n this.InteractionPlan = 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.InteractionPlanID != undefined) {\r\n loaded.InteractionPlanID(responseData.InteractionPlanID);\r\n }\r\n if (responseData.Priority != undefined) {\r\n loaded.Priority(responseData.Priority);\r\n }\r\n if (responseData.InteractionPlanGroupRuleID != undefined) {\r\n loaded.InteractionPlanGroupRuleID(responseData.InteractionPlanGroupRuleID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.InteractionPlanGroupRule != null) {\r\n loaded.InteractionPlanGroupRule(new smapi.communication.InteractionPlanGroupRuleModel().LoadFromResponse(responseData.InteractionPlanGroupRule));\r\n }\r\n if (responseData.InteractionPlan != null) {\r\n loaded.InteractionPlan(new smapi.communication.InteractionPlanModel().LoadFromResponse(responseData.InteractionPlan));\r\n }\r\n return loaded;\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.Communication.Entity.InteractionPlanPriority', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.InteractionPlanID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.InteractionPlanGroupRuleID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 InteractionStepModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n InteractionStepType: null,\r\n DurationBeforeExecution: null,\r\n BeginDate: null,\r\n EndDate: null,\r\n InteractionPlanID: null,\r\n ParentStepID: null,\r\n InclusionRuleSetID: null,\r\n BusinessMeaningName: '',\r\n PathToRecipient: '',\r\n PathToRecipientExpressionID: 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.InteractionStepType = ko.validatedObservable(settings.InteractionStepType);\r\n this.DurationBeforeExecution = ko.validatedObservable(settings.DurationBeforeExecution);\r\n this.BeginDate = ko.validatedObservable(settings.BeginDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.InteractionPlanID = ko.validatedObservable(settings.InteractionPlanID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.InclusionRuleSetID = ko.validatedObservable(settings.InclusionRuleSetID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.PathToRecipient = ko.validatedObservable(settings.PathToRecipient);\r\n this.PathToRecipientExpressionID = ko.validatedObservable(settings.PathToRecipientExpressionID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.InteractionPlan = ko.observable();\r\n this.ParentStep = ko.observable();\r\n this.ChildSteps = 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 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.InteractionStepType != undefined) {\r\n loaded.InteractionStepType(responseData.InteractionStepType);\r\n }\r\n if (responseData.DurationBeforeExecution != undefined) {\r\n loaded.DurationBeforeExecution(responseData.DurationBeforeExecution);\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.InteractionPlanID != undefined) {\r\n loaded.InteractionPlanID(responseData.InteractionPlanID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.InclusionRuleSetID != undefined) {\r\n loaded.InclusionRuleSetID(responseData.InclusionRuleSetID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.PathToRecipient != undefined) {\r\n loaded.PathToRecipient(responseData.PathToRecipient);\r\n }\r\n if (responseData.PathToRecipientExpressionID != undefined) {\r\n loaded.PathToRecipientExpressionID(responseData.PathToRecipientExpressionID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.InteractionPlan != null) {\r\n loaded.InteractionPlan(new smapi.communication.InteractionPlanModel().LoadFromResponse(responseData.InteractionPlan));\r\n }\r\n if (responseData.ParentStep != null) {\r\n loaded.ParentStep(new smapi.communication.InteractionStepModel().LoadFromResponse(responseData.ParentStep));\r\n }\r\n if (responseData.ChildSteps != null && responseData.ChildSteps.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.ChildSteps.length; i++) {\r\n items.push(new smapi.communication.InteractionStepModel().LoadFromResponse(responseData.ChildSteps[i]));\r\n }\r\n loaded.ChildSteps(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.Communication.Entity.InteractionStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.InteractionStepType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_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.InteractionPlanID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ParentStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.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.PathToRecipient.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.PathToRecipientExpressionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 MeetingStepModel(options) {\r\n var defaults = {\r\n Subject: '',\r\n Instructions: '',\r\n ConfigurationRuleSetID: null,\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n InteractionStepType: null,\r\n DurationBeforeExecution: null,\r\n BeginDate: null,\r\n EndDate: null,\r\n InteractionPlanID: null,\r\n ParentStepID: null,\r\n InclusionRuleSetID: null,\r\n BusinessMeaningName: '',\r\n PathToRecipient: '',\r\n PathToRecipientExpressionID: 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.Subject = ko.validatedObservable(settings.Subject);\r\n this.Instructions = ko.validatedObservable(settings.Instructions);\r\n this.ConfigurationRuleSetID = ko.validatedObservable(settings.ConfigurationRuleSetID);\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.InteractionStepType = ko.validatedObservable(settings.InteractionStepType);\r\n this.DurationBeforeExecution = ko.validatedObservable(settings.DurationBeforeExecution);\r\n this.BeginDate = ko.validatedObservable(settings.BeginDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.InteractionPlanID = ko.validatedObservable(settings.InteractionPlanID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.InclusionRuleSetID = ko.validatedObservable(settings.InclusionRuleSetID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.PathToRecipient = ko.validatedObservable(settings.PathToRecipient);\r\n this.PathToRecipientExpressionID = ko.validatedObservable(settings.PathToRecipientExpressionID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.InteractionPlan = ko.observable();\r\n this.ParentStep = ko.observable();\r\n this.ChildSteps = 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 loaded.APILink(responseData.APILink);\r\n }\r\n\r\n if (responseData.Subject != undefined) {\r\n loaded.Subject(responseData.Subject);\r\n }\r\n if (responseData.Instructions != undefined) {\r\n loaded.Instructions(responseData.Instructions);\r\n }\r\n if (responseData.ConfigurationRuleSetID != undefined) {\r\n loaded.ConfigurationRuleSetID(responseData.ConfigurationRuleSetID);\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.InteractionStepType != undefined) {\r\n loaded.InteractionStepType(responseData.InteractionStepType);\r\n }\r\n if (responseData.DurationBeforeExecution != undefined) {\r\n loaded.DurationBeforeExecution(responseData.DurationBeforeExecution);\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.InteractionPlanID != undefined) {\r\n loaded.InteractionPlanID(responseData.InteractionPlanID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.InclusionRuleSetID != undefined) {\r\n loaded.InclusionRuleSetID(responseData.InclusionRuleSetID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.PathToRecipient != undefined) {\r\n loaded.PathToRecipient(responseData.PathToRecipient);\r\n }\r\n if (responseData.PathToRecipientExpressionID != undefined) {\r\n loaded.PathToRecipientExpressionID(responseData.PathToRecipientExpressionID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.InteractionPlan != null) {\r\n loaded.InteractionPlan(new smapi.communication.InteractionPlanModel().LoadFromResponse(responseData.InteractionPlan));\r\n }\r\n if (responseData.ParentStep != null) {\r\n loaded.ParentStep(new smapi.communication.InteractionStepModel().LoadFromResponse(responseData.ParentStep));\r\n }\r\n if (responseData.ChildSteps != null && responseData.ChildSteps.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.ChildSteps.length; i++) {\r\n items.push(new smapi.communication.InteractionStepModel().LoadFromResponse(responseData.ChildSteps[i]));\r\n }\r\n loaded.ChildSteps(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.Communication.Entity.MeetingStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\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: 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.Instructions.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.ConfigurationRuleSetID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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: 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: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.InteractionStepType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_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.InteractionPlanID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ParentStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.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.PathToRecipient.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.PathToRecipientExpressionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 TermsConditionsDocumentModel(options) {\r\n var defaults = {\r\n Title: '',\r\n DateFrom: null,\r\n DateTo: 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.Title = ko.validatedObservable(settings.Title);\r\n this.DateFrom = ko.validatedObservable(settings.DateFrom);\r\n this.DateTo = ko.validatedObservable(settings.DateTo);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.Paragraphs = ko.observableArray([]);\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 loaded.APILink(responseData.APILink);\r\n }\r\n\r\n if (responseData.Title != undefined) {\r\n loaded.Title(responseData.Title);\r\n }\r\n if (responseData.DateFrom != undefined) {\r\n loaded.DateFrom(responseData.DateFrom);\r\n }\r\n if (responseData.DateTo != undefined) {\r\n loaded.DateTo(responseData.DateTo);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.Paragraphs != null && responseData.Paragraphs.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.Paragraphs.length; i++) {\r\n items.push(new smapi.communication.TermsConditionsDocumentParagraphPropertiesModel().LoadFromResponse(responseData.Paragraphs[i]));\r\n }\r\n loaded.Paragraphs(items);\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.communication.TermsConditionsDocumentCriteriaModel().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.Communication.Entity.TermsConditionsDocument', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.Title.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.DateFrom.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.DateTo.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 TermsConditionsDocumentCriteriaModel(options) {\r\n var defaults = {\r\n DocumentID: 0,\r\n LocationID: 0,\r\n ProcessTypeID: 0,\r\n CriteriaRulesetID: 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.DocumentID = ko.validatedObservable(settings.DocumentID);\r\n this.LocationID = ko.validatedObservable(settings.LocationID);\r\n this.ProcessTypeID = ko.validatedObservable(settings.ProcessTypeID);\r\n this.CriteriaRulesetID = ko.validatedObservable(settings.CriteriaRulesetID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.Document = ko.observable();\r\n this.Location = ko.observable();\r\n this.ProcessType = 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.DocumentID != undefined) {\r\n loaded.DocumentID(responseData.DocumentID);\r\n }\r\n if (responseData.LocationID != undefined) {\r\n loaded.LocationID(responseData.LocationID);\r\n }\r\n if (responseData.ProcessTypeID != undefined) {\r\n loaded.ProcessTypeID(responseData.ProcessTypeID);\r\n }\r\n if (responseData.CriteriaRulesetID != undefined) {\r\n loaded.CriteriaRulesetID(responseData.CriteriaRulesetID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.Document != null) {\r\n loaded.Document(new smapi.communication.TermsConditionsDocumentModel().LoadFromResponse(responseData.Document));\r\n }\r\n if (responseData.Location != null) {\r\n loaded.Location(new smapi.communication.TermsConditionsLocationModel().LoadFromResponse(responseData.Location));\r\n }\r\n if (responseData.ProcessType != null) {\r\n loaded.ProcessType(new smapi.communication.TermsConditionsProcessTypeModel().LoadFromResponse(responseData.ProcessType));\r\n }\r\n return loaded;\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.Communication.Entity.TermsConditionsDocumentCriteria', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.DocumentID.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.LocationID.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.ProcessTypeID.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.CriteriaRulesetID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 TermsConditionsDocumentParagraphPropertiesModel(options) {\r\n var defaults = {\r\n DateFrom: null,\r\n DateTo: null,\r\n IsRequired: false,\r\n IsRevocable: false,\r\n SortOrder: 0,\r\n Version: 0,\r\n TermsConditionsDocumentID: 0,\r\n TermsConditionsParagraphID: 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.DateFrom = ko.validatedObservable(settings.DateFrom);\r\n this.DateTo = ko.validatedObservable(settings.DateTo);\r\n this.IsRequired = ko.validatedObservable(settings.IsRequired);\r\n this.IsRevocable = ko.validatedObservable(settings.IsRevocable);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.Version = ko.validatedObservable(settings.Version);\r\n this.TermsConditionsDocumentID = ko.validatedObservable(settings.TermsConditionsDocumentID);\r\n this.TermsConditionsParagraphID = ko.validatedObservable(settings.TermsConditionsParagraphID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.TermsConditionsDocument = ko.observable();\r\n this.TermsConditionsParagraph = 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.DateFrom != undefined) {\r\n loaded.DateFrom(responseData.DateFrom);\r\n }\r\n if (responseData.DateTo != undefined) {\r\n loaded.DateTo(responseData.DateTo);\r\n }\r\n if (responseData.IsRequired != undefined) {\r\n loaded.IsRequired(responseData.IsRequired);\r\n }\r\n if (responseData.IsRevocable != undefined) {\r\n loaded.IsRevocable(responseData.IsRevocable);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.Version != undefined) {\r\n loaded.Version(responseData.Version);\r\n }\r\n if (responseData.TermsConditionsDocumentID != undefined) {\r\n loaded.TermsConditionsDocumentID(responseData.TermsConditionsDocumentID);\r\n }\r\n if (responseData.TermsConditionsParagraphID != undefined) {\r\n loaded.TermsConditionsParagraphID(responseData.TermsConditionsParagraphID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.TermsConditionsDocument != null) {\r\n loaded.TermsConditionsDocument(new smapi.communication.TermsConditionsDocumentModel().LoadFromResponse(responseData.TermsConditionsDocument));\r\n }\r\n if (responseData.TermsConditionsParagraph != null) {\r\n loaded.TermsConditionsParagraph(new smapi.communication.TermsConditionsParagraphModel().LoadFromResponse(responseData.TermsConditionsParagraph));\r\n }\r\n return loaded;\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.Communication.Entity.TermsConditionsDocumentParagraphProperties', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.DateFrom.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.DateTo.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.IsRequired.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.IsRevocable.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_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.Version.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TermsConditionsDocumentID.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.TermsConditionsParagraphID.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 TermsConditionsDocumentStatusModel(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 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.Communication.Entity.TermsConditionsDocumentStatus', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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: 50,\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 TermsConditionsExposedDocumentModel(options) {\r\n var defaults = {\r\n IsAccepted: false,\r\n ProcessObjectID: 0,\r\n ObjectDescription: '',\r\n LocationID: 0,\r\n TermsConditionsDocumentID: 0,\r\n PersonID: null,\r\n ProcessTypeID: 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.IsAccepted = ko.validatedObservable(settings.IsAccepted);\r\n this.ProcessObjectID = ko.validatedObservable(settings.ProcessObjectID);\r\n this.ObjectDescription = ko.validatedObservable(settings.ObjectDescription);\r\n this.LocationID = ko.validatedObservable(settings.LocationID);\r\n this.TermsConditionsDocumentID = ko.validatedObservable(settings.TermsConditionsDocumentID);\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.ProcessTypeID = ko.validatedObservable(settings.ProcessTypeID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.Location = ko.observable();\r\n this.TermsConditionsDocument = ko.observable();\r\n this.Person = ko.observable();\r\n this.ProcessType = ko.observable();\r\n this.Paragraphs = 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 loaded.APILink(responseData.APILink);\r\n }\r\n\r\n if (responseData.IsAccepted != undefined) {\r\n loaded.IsAccepted(responseData.IsAccepted);\r\n }\r\n if (responseData.ProcessObjectID != undefined) {\r\n loaded.ProcessObjectID(responseData.ProcessObjectID);\r\n }\r\n if (responseData.ObjectDescription != undefined) {\r\n loaded.ObjectDescription(responseData.ObjectDescription);\r\n }\r\n if (responseData.LocationID != undefined) {\r\n loaded.LocationID(responseData.LocationID);\r\n }\r\n if (responseData.TermsConditionsDocumentID != undefined) {\r\n loaded.TermsConditionsDocumentID(responseData.TermsConditionsDocumentID);\r\n }\r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.ProcessTypeID != undefined) {\r\n loaded.ProcessTypeID(responseData.ProcessTypeID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.Location != null) {\r\n loaded.Location(new smapi.communication.TermsConditionsLocationModel().LoadFromResponse(responseData.Location));\r\n }\r\n if (responseData.TermsConditionsDocument != null) {\r\n loaded.TermsConditionsDocument(new smapi.communication.TermsConditionsDocumentModel().LoadFromResponse(responseData.TermsConditionsDocument));\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.ProcessType != null) {\r\n loaded.ProcessType(new smapi.communication.TermsConditionsProcessTypeModel().LoadFromResponse(responseData.ProcessType));\r\n }\r\n if (responseData.Paragraphs != null && responseData.Paragraphs.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.Paragraphs.length; i++) {\r\n items.push(new smapi.communication.TermsConditionsHistoryModel().LoadFromResponse(responseData.Paragraphs[i]));\r\n }\r\n loaded.Paragraphs(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.Communication.Entity.TermsConditionsExposedDocument', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.IsAccepted.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ProcessObjectID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ObjectDescription.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.LocationID.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.TermsConditionsDocumentID.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.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.ProcessTypeID.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 TermsConditionsHistoryModel(options) {\r\n var defaults = {\r\n IsAccepted: false,\r\n IsLatest: false,\r\n TermsConditionsParagraphVersionID: 0,\r\n TermsConditionsDocumentParagraphPropertiesID: null,\r\n TermsConditionsExposedDocumentID: 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.IsAccepted = ko.validatedObservable(settings.IsAccepted);\r\n this.IsLatest = ko.validatedObservable(settings.IsLatest);\r\n this.TermsConditionsParagraphVersionID = ko.validatedObservable(settings.TermsConditionsParagraphVersionID);\r\n this.TermsConditionsDocumentParagraphPropertiesID = ko.validatedObservable(settings.TermsConditionsDocumentParagraphPropertiesID);\r\n this.TermsConditionsExposedDocumentID = ko.validatedObservable(settings.TermsConditionsExposedDocumentID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.TermsConditionsParagraphVersion = ko.observable();\r\n this.TermsConditionsDocumentParagraphProperties = ko.observable();\r\n this.TermsConditionsExposedDocument = 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.IsAccepted != undefined) {\r\n loaded.IsAccepted(responseData.IsAccepted);\r\n }\r\n if (responseData.IsLatest != undefined) {\r\n loaded.IsLatest(responseData.IsLatest);\r\n }\r\n if (responseData.TermsConditionsParagraphVersionID != undefined) {\r\n loaded.TermsConditionsParagraphVersionID(responseData.TermsConditionsParagraphVersionID);\r\n }\r\n if (responseData.TermsConditionsDocumentParagraphPropertiesID != undefined) {\r\n loaded.TermsConditionsDocumentParagraphPropertiesID(responseData.TermsConditionsDocumentParagraphPropertiesID);\r\n }\r\n if (responseData.TermsConditionsExposedDocumentID != undefined) {\r\n loaded.TermsConditionsExposedDocumentID(responseData.TermsConditionsExposedDocumentID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.TermsConditionsParagraphVersion != null) {\r\n loaded.TermsConditionsParagraphVersion(new smapi.communication.TermsConditionsParagraphVersionModel().LoadFromResponse(responseData.TermsConditionsParagraphVersion));\r\n }\r\n if (responseData.TermsConditionsDocumentParagraphProperties != null) {\r\n loaded.TermsConditionsDocumentParagraphProperties(new smapi.communication.TermsConditionsDocumentParagraphPropertiesModel().LoadFromResponse(responseData.TermsConditionsDocumentParagraphProperties));\r\n }\r\n if (responseData.TermsConditionsExposedDocument != null) {\r\n loaded.TermsConditionsExposedDocument(new smapi.communication.TermsConditionsExposedDocumentModel().LoadFromResponse(responseData.TermsConditionsExposedDocument));\r\n }\r\n return loaded;\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.Communication.Entity.TermsConditionsHistory', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.IsAccepted.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.IsLatest.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.TermsConditionsParagraphVersionID.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.TermsConditionsDocumentParagraphPropertiesID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TermsConditionsExposedDocumentID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 TermsConditionsLocationModel(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 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.Communication.Entity.TermsConditionsLocation', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 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 TermsConditionsParagraphModel(options) {\r\n var defaults = {\r\n Title: '',\r\n TermsConditionsParagraphTypeID: 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.Title = ko.validatedObservable(settings.Title);\r\n this.TermsConditionsParagraphTypeID = ko.validatedObservable(settings.TermsConditionsParagraphTypeID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.TermsConditionsParagraphType = ko.observable();\r\n this.TermsConditionsParagraphVersions = 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 loaded.APILink(responseData.APILink);\r\n }\r\n\r\n if (responseData.Title != undefined) {\r\n loaded.Title(responseData.Title);\r\n }\r\n if (responseData.TermsConditionsParagraphTypeID != undefined) {\r\n loaded.TermsConditionsParagraphTypeID(responseData.TermsConditionsParagraphTypeID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.TermsConditionsParagraphType != null) {\r\n loaded.TermsConditionsParagraphType(new smapi.communication.TermsConditionsParagraphTypeModel().LoadFromResponse(responseData.TermsConditionsParagraphType));\r\n }\r\n if (responseData.TermsConditionsParagraphVersions != null && responseData.TermsConditionsParagraphVersions.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.TermsConditionsParagraphVersions.length; i++) {\r\n items.push(new smapi.communication.TermsConditionsParagraphVersionModel().LoadFromResponse(responseData.TermsConditionsParagraphVersions[i]));\r\n }\r\n loaded.TermsConditionsParagraphVersions(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.Communication.Entity.TermsConditionsParagraph', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.Title.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.TermsConditionsParagraphTypeID.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 TermsConditionsParagraphTypeModel(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 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.Communication.Entity.TermsConditionsParagraphType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 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 TermsConditionsParagraphVersionModel(options) {\r\n var defaults = {\r\n DateFrom: null,\r\n DateTo: null,\r\n HTMLContent: '',\r\n TermsConditionsParagraphID: 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.DateFrom = ko.validatedObservable(settings.DateFrom);\r\n this.DateTo = ko.validatedObservable(settings.DateTo);\r\n this.HTMLContent = ko.validatedObservable(settings.HTMLContent);\r\n this.TermsConditionsParagraphID = ko.validatedObservable(settings.TermsConditionsParagraphID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.TermsConditionsParagraph = 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.DateFrom != undefined) {\r\n loaded.DateFrom(responseData.DateFrom);\r\n }\r\n if (responseData.DateTo != undefined) {\r\n loaded.DateTo(responseData.DateTo);\r\n }\r\n if (responseData.HTMLContent != undefined) {\r\n loaded.HTMLContent(responseData.HTMLContent);\r\n }\r\n if (responseData.TermsConditionsParagraphID != undefined) {\r\n loaded.TermsConditionsParagraphID(responseData.TermsConditionsParagraphID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.TermsConditionsParagraph != null) {\r\n loaded.TermsConditionsParagraph(new smapi.communication.TermsConditionsParagraphModel().LoadFromResponse(responseData.TermsConditionsParagraph));\r\n }\r\n return loaded;\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.Communication.Entity.TermsConditionsParagraphVersion', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.DateFrom.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.DateTo.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.TermsConditionsParagraphID.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 TermsConditionsProcessTypeModel(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 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.Communication.Entity.TermsConditionsProcessType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 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 ToDoStepModel(options) {\r\n var defaults = {\r\n TaskBeginDate: null,\r\n TaskEndDate: null,\r\n TaskPriority: 0,\r\n DurationBeforeDueDate: null,\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n InteractionStepType: null,\r\n DurationBeforeExecution: null,\r\n BeginDate: null,\r\n EndDate: null,\r\n InteractionPlanID: null,\r\n ParentStepID: null,\r\n InclusionRuleSetID: null,\r\n BusinessMeaningName: '',\r\n PathToRecipient: '',\r\n PathToRecipientExpressionID: 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.TaskBeginDate = ko.validatedObservable(settings.TaskBeginDate);\r\n this.TaskEndDate = ko.validatedObservable(settings.TaskEndDate);\r\n this.TaskPriority = ko.validatedObservable(settings.TaskPriority);\r\n this.DurationBeforeDueDate = ko.validatedObservable(settings.DurationBeforeDueDate);\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.InteractionStepType = ko.validatedObservable(settings.InteractionStepType);\r\n this.DurationBeforeExecution = ko.validatedObservable(settings.DurationBeforeExecution);\r\n this.BeginDate = ko.validatedObservable(settings.BeginDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.InteractionPlanID = ko.validatedObservable(settings.InteractionPlanID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.InclusionRuleSetID = ko.validatedObservable(settings.InclusionRuleSetID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.PathToRecipient = ko.validatedObservable(settings.PathToRecipient);\r\n this.PathToRecipientExpressionID = ko.validatedObservable(settings.PathToRecipientExpressionID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.InteractionPlan = ko.observable();\r\n this.ParentStep = ko.observable();\r\n this.ChildSteps = 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 loaded.APILink(responseData.APILink);\r\n }\r\n\r\n if (responseData.TaskBeginDate != undefined) {\r\n loaded.TaskBeginDate(responseData.TaskBeginDate);\r\n }\r\n if (responseData.TaskEndDate != undefined) {\r\n loaded.TaskEndDate(responseData.TaskEndDate);\r\n }\r\n if (responseData.TaskPriority != undefined) {\r\n loaded.TaskPriority(responseData.TaskPriority);\r\n }\r\n if (responseData.DurationBeforeDueDate != undefined) {\r\n loaded.DurationBeforeDueDate(responseData.DurationBeforeDueDate);\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.InteractionStepType != undefined) {\r\n loaded.InteractionStepType(responseData.InteractionStepType);\r\n }\r\n if (responseData.DurationBeforeExecution != undefined) {\r\n loaded.DurationBeforeExecution(responseData.DurationBeforeExecution);\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.InteractionPlanID != undefined) {\r\n loaded.InteractionPlanID(responseData.InteractionPlanID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.InclusionRuleSetID != undefined) {\r\n loaded.InclusionRuleSetID(responseData.InclusionRuleSetID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.PathToRecipient != undefined) {\r\n loaded.PathToRecipient(responseData.PathToRecipient);\r\n }\r\n if (responseData.PathToRecipientExpressionID != undefined) {\r\n loaded.PathToRecipientExpressionID(responseData.PathToRecipientExpressionID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.InteractionPlan != null) {\r\n loaded.InteractionPlan(new smapi.communication.InteractionPlanModel().LoadFromResponse(responseData.InteractionPlan));\r\n }\r\n if (responseData.ParentStep != null) {\r\n loaded.ParentStep(new smapi.communication.InteractionStepModel().LoadFromResponse(responseData.ParentStep));\r\n }\r\n if (responseData.ChildSteps != null && responseData.ChildSteps.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.ChildSteps.length; i++) {\r\n items.push(new smapi.communication.InteractionStepModel().LoadFromResponse(responseData.ChildSteps[i]));\r\n }\r\n loaded.ChildSteps(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.Communication.Entity.ToDoStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.TaskBeginDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.TaskEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.TaskPriority.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.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: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.InteractionStepType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_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.InteractionPlanID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ParentStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.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.PathToRecipient.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.PathToRecipientExpressionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 TokenMergeModel(options) {\r\n var defaults = {\r\n ContactCommunicationID: 0,\r\n CommunicationTemplateID: 0,\r\n Token: '',\r\n Value: '',\r\n MergeEngine: '',\r\n IsProcessing: 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.ContactCommunicationID = ko.validatedObservable(settings.ContactCommunicationID);\r\n this.CommunicationTemplateID = ko.validatedObservable(settings.CommunicationTemplateID);\r\n this.Token = ko.validatedObservable(settings.Token);\r\n this.Value = ko.validatedObservable(settings.Value);\r\n this.MergeEngine = ko.validatedObservable(settings.MergeEngine);\r\n this.IsProcessing = ko.validatedObservable(settings.IsProcessing);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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 loaded.APILink(responseData.APILink);\r\n }\r\n\r\n if (responseData.ContactCommunicationID != undefined) {\r\n loaded.ContactCommunicationID(responseData.ContactCommunicationID);\r\n }\r\n if (responseData.CommunicationTemplateID != undefined) {\r\n loaded.CommunicationTemplateID(responseData.CommunicationTemplateID);\r\n }\r\n if (responseData.Token != undefined) {\r\n loaded.Token(responseData.Token);\r\n }\r\n if (responseData.Value != undefined) {\r\n loaded.Value(responseData.Value);\r\n }\r\n if (responseData.MergeEngine != undefined) {\r\n loaded.MergeEngine(responseData.MergeEngine);\r\n }\r\n if (responseData.IsProcessing != undefined) {\r\n loaded.IsProcessing(responseData.IsProcessing);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.Communication.Entity.TokenMerge', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.ContactCommunicationID.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.CommunicationTemplateID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Token.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Value.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n maxLength: {\r\n params: 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.MergeEngine.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.IsProcessing.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 LoadTemplates(basePath, targetDiv) {\r\n var uri = basePath + '/SMAPI.communication.combined-1.0.0.html';\r\n jQuery.ajax({\r\n url: uri,\r\n type: 'GET',\r\n async: false,\r\n success: function (template) {\r\n jQuery(\"#\" + targetDiv).append(template);\r\n }\r\n });\r\n }\r\n\r\n\r\n $.extend(true, smapi.communication, {\r\n AddressTypeAssociationPriorityModel: AddressTypeAssociationPriorityModel,\r\n CampusVisitStepModel: CampusVisitStepModel,\r\n CommunicationFulfillmentFolderModel: CommunicationFulfillmentFolderModel,\r\n CommunicationRecipientDetailModel: CommunicationRecipientDetailModel,\r\n CommunicationStatusModel: CommunicationStatusModel,\r\n CommunicationStepModel: CommunicationStepModel,\r\n CommunicationTemplateModel: CommunicationTemplateModel,\r\n CommunicationTemplateEmbeddedAttachmentModel: CommunicationTemplateEmbeddedAttachmentModel,\r\n CommunicationTokenModel: CommunicationTokenModel,\r\n CommunicationTrackingModel: CommunicationTrackingModel,\r\n CommunicationTypeModel: CommunicationTypeModel,\r\n ContactCommunicationModel: ContactCommunicationModel,\r\n ContactCommunicationEmbeddedAttachmentModel: ContactCommunicationEmbeddedAttachmentModel,\r\n ContactCommunicationExternalAttachmentModel: ContactCommunicationExternalAttachmentModel,\r\n EmailTemplateModel: EmailTemplateModel,\r\n EmailTemplateEmbeddedAttachmentModel: EmailTemplateEmbeddedAttachmentModel,\r\n InteractionPlanModel: InteractionPlanModel,\r\n InteractionPlanGroupModel: InteractionPlanGroupModel,\r\n InteractionPlanGroupRuleModel: InteractionPlanGroupRuleModel,\r\n InteractionPlanInstanceModel: InteractionPlanInstanceModel,\r\n InteractionPlanPriorityModel: InteractionPlanPriorityModel,\r\n InteractionStepModel: InteractionStepModel,\r\n MeetingStepModel: MeetingStepModel,\r\n TermsConditionsDocumentModel: TermsConditionsDocumentModel,\r\n TermsConditionsDocumentCriteriaModel: TermsConditionsDocumentCriteriaModel,\r\n TermsConditionsDocumentParagraphPropertiesModel: TermsConditionsDocumentParagraphPropertiesModel,\r\n TermsConditionsDocumentStatusModel: TermsConditionsDocumentStatusModel,\r\n TermsConditionsExposedDocumentModel: TermsConditionsExposedDocumentModel,\r\n TermsConditionsHistoryModel: TermsConditionsHistoryModel,\r\n TermsConditionsLocationModel: TermsConditionsLocationModel,\r\n TermsConditionsParagraphModel: TermsConditionsParagraphModel,\r\n TermsConditionsParagraphTypeModel: TermsConditionsParagraphTypeModel,\r\n TermsConditionsParagraphVersionModel: TermsConditionsParagraphVersionModel,\r\n TermsConditionsProcessTypeModel: TermsConditionsProcessTypeModel,\r\n ToDoStepModel: ToDoStepModel,\r\n TokenMergeModel: TokenMergeModel,\r\n LoadTemplates: LoadTemplates\r\n });\r\n})(jQuery);\r\n"]}