{"version":3,"file":"SMAPI.admissions.combined-1.0.0.min.js","names":["$","undefined","LoadSMAPI","sm","portal","vm","custom","callCustomization","utility","isNullOrEmpty","smapi","window","extend","each","proxy","noop","isFunction","Globalize","admissions","ACTModel","options","settings","jQuery","PersonID","TestDate","Math","English","Reading","Science","Composite","UsageMech","RhetSkills","PreAlgEleAlg","AlgCooGeo","PlaneGeoTrig","SocStuSci","ArtLit","UseForPlacement","SourceID","DataStepID","ID","GID","CreatedBy","DateCreated","ModifiedBy","DateModified","APILink","self","this","ko","observable","validatedObservable","Person","DataStep","LoadFromResponse","responseData","loaded","community","PersonModel","ACTStepModel","LoadFromLink","baseApiUrl","access","getById","data","textStatus","jqXHR","container","ApiContainerModel","Status","Payload","ValidationTitle","ValidationMessages","statusText","required","message","getResourceValue","constant","validate_FieldRequired_Key","min","params","validate_MustBeNumeric_Key","max","number","date","validate_MustBeADate_Key","pattern","formatString","validate_ErrorInFormat0_Key","ModelErrors","validation","group","IsVMValid","length","ClassType","Comments","AdmissionsAttemptID","ProcessStageID","ParentStepID","StatusID","RequiredOptionID","StepStartDate","StepEndDate","NavigatorScreenPath","ExpectedStepEndDate","AdHoc","ProgressOveridden","ExternalStage","MinExternalData","MaxExternalData","DueDate","BusinessMeaningName","ACTTestScores","observableArray","AdmissionsAttempt","ProcessStage","ReviewerComments","ExternalData","Parent","ChildSteps","items","Array","i","push","AdmissionsAttemptModel","AdmissionsProcessStageModel","ApplicationEvaluationCommentModel","AdmissionsAttemptStepDataModel","AdmissionsAttemptStepModel","maxLength","validate_0CharactersOrLess_Key","AdmissionsAcademicLevelModel","Name","Description","AcademicLevelID","AcademicLevel","AvailableGoals","academic","AcademicLevelModel","AdmissionsEducationalGoalModel","AdmissionsApplicationRankModel","Score","StudentRank","IsStudentRankEnforced","ApplicationEvaluationID","AdmissionsRankingListID","ApplicationEvaluation","AdmissionsRankingList","ApplicationEvaluationModel","AdmissionsRankingListModel","ukFeatureEnabled","isUKFeatureEnabled","euFeatureEnabled","isEUFeatureEnabled","AdmissionsStageID","AdmissionsAcademicLevelID","AdmissionsTypeID","ExpectedEntrancePeriodID","ExpectedStartPeriodID","EarliestStartDate","HierarchyNodeID","ReviewingHierarchyNodeID","AdmissionsSourceID","ExpectedLoadID","EnrollmentStatusID","RecruiterID","AdmissionsCounselorID","AttendanceTypeID","AttendanceReasonID","EverAttended","IsMatriculated","Transfer","TransferWithinCountry","EverSuspendedDismissed","CampusID","CarPool","BypassCommunicationPlan","SurveyQuestion","Referrer","BrowserInfo","AllowCounselorRule","AllowRecruiterRule","Surname","GivenName","MiddleName","NumericalRank","PreferredCommunicationTypeID","CompletionDate","StudentCategoryID","DeliveryMethodID","LevelOfStudyID","HeardAboutInstituteFrom","InstituteCoursesPreviouslyTaken","InstituteRelationship","InstituteRelationshipName","InstituteRelationshipDescription","InterviewViaSkype","InterviewViaPhone","InterviewInPerson","AdmissionsStage","AdmissionsAcademicLevel","AdmissionsType","Recruiter","AdmissionsCounselor","AdmissionsAttemptPrograms","Milestones","Steps","Campus","PeriodTypes","DeliveryMethod","DocumentRepository","PreferredCommunicationType","StudentCategory","LevelOfStudy","ExpectedEntrancePeriod","ExpectedStartPeriod","AdmissionsAttemptEUAdditionalInfo","AdmissionsAttemptUKAdditionalInfo","AdmissionsAttemptUKPersonalStatement","AdmissionsSpecialisms","UKQualifications","AdmissionsStageModel","AdmissionsTypeModel","faculty","StaffModel","AdmissionsAttemptProgramModel","AdmissionsAttemptMilestoneModel","facility","CampusModel","AcademicPeriodTypeModel","AcademicDeliveryMethodModel","DocumentRepositoryModel","communication","CommunicationTypeModel","StudentCategoryModel","LevelOfStudyModel","AdmissionsPeriodModel","AcademicPeriodModel","AdmissionsAttemptEUAdditionalInfoModel","AdmissionsAttemptUKAdditionalInfoModel","AdmissionsAttemptUKPersonalStatementModel","AdmissionsSpecialismsModel","AdmissionsAttemptInteractionModel","Priority","DateOfMilestone","Preference","ApplicationGoalID","AdmissionProgramID","AdmissionsProgramOfferingItemID","ProgramCategoryID","AdmissionsCohortID","AdmissionsConcentrationID","FlexiFieldValues","AdmissionsProgramOfferingItem","AdmissionProgram","ApplicationGoal","AdmissionsCohort","AdmissionsConcentration","AdmissionsProgramOfferingItemModel","AdmissionsProgramModel","AdmissionsCohortModel","AdmissionsConcentrationModel","AdmissionsAttemptStepID","ExternalDataGID","AdmissionsAttemptStep","AcademicGoalID","ProgramID","ConcentrationID","Levels","Goals","Programs","Concentrations","AdmissionsDocumentModel","DocumentID","DocumentStatusID","Comment","Reference","Document","DocumentModel","AdmissionsDocumentStepModel","AdmissionsDocuments","Degreed","Abbreviation","SortOrder","EducationalGoalID","EducationalGoal","AdmissionsPrograms","EducationalGoalModel","AdmissionsEventTypeModel","EventManagementID","EventTypeDate","Note","EventManagement","AdmissionsEventTypeStepModel","EventManagementModel","AdmissionsEventTypes","AdmissionsModuleSettingsModel","ApplicationName","SiteName","UndergradInqRuleSetBeforeWF","UndergradInqRuleSetAfterWF","UndergradInqWF","GradInqRuleSetBeforeWF","GradInqRuleSetAfterWF","GradInqWF","AdmissionsGroupName","AdmissionsPaymentInformationModel","PaymentMethodID","Paid","PaymentDate","AccountTransactions","PaymentMethod","AdmissionsPaymentInformationStepModel","financials","TransactionLedgerModel","PaymentMethodModel","AdmissionsPaymentInformationDetails","PeriodID","StartDate","EndDate","ActivePortal","EnrollmentYieldLower","EnrollmentYieldUpper","AcademicYear","Period","PeriodModel","Required","CopyStatusBetweenSteps","CopyExtDataBetweenSteps","ApplicantShouldHaveAccess","AllowProgressOverride","PortalStepID","InclusionRuleSetID","ProgressRuleSetID","EntityID","StepDataEntityID","DocumentTypeID","Prerequisites","AdmissionsProcessStageAttributes","DocumentType","PortalStep","AdmissionsProcessStagePrerequisiteModel","AdmissionsProcessStageAttributesModel","DocumentTypeModel","PortalStepModel","AdmissionsProcessStageID","EntityFieldID","Visibility","AdmissionsProcessStage","ApplicationEvaluationWeight","ApplicationEvaluationWeightModel","AdmissionsProcessStageBehaviorModel","ProgressRuleSet","RequiredAdmissionsProcessStageID","DependentAdmissionsProcessStageID","ParentAdmissionsProcessStageID","ParentAdmissionsProcessStage","RequiredAdmissionsProcessStage","DependentAdmissionsProcessStage","ProgramStatusID","ApprovedDate","EffectiveDateFrom","EffectiveDateTo","DivisionID","ProgramLength","UnitLength","WeightFactor","Division","AdmissionsProcessStages","Campuses","AdmissionsOfferStages","ProgramStatus","DivisionModel","AdmissionsProgramOfferingFlowDefinitions","AdmissionsOfferStage","ProgramStatusModel","validate_GreaterThan0_Key","validate_LessThan0_Key","AdmissionsProgramOfferingModel","GroupAcademicLevelID","AdmissionCohortID","PeriodBased","AvailableStart","AvailableEnd","GroupAcademicLevel","ExternalIDs","AssignPeriodTypes","DeliveryMethods","Items","ExternalAdmissionsProgramOfferingIDModel","TypeID","AcademicProgramID","AcademicProgram","AcademicProgramModel","ExternalAdmissionsProgramOfferingItemIDModel","GenerationDate","ApplicationEvaluationSetupID","AdmissionsPeriodID","AdmissionsProgramID","ApplicationEvaluationSetup","AdmissionsPeriod","AdmissionsProgram","AdmissionsApplicationRanks","ApplicationEvaluationSetupModel","AllowForImport","FinancialAid","Milestone","CreateStudent","AdmissionsStageStatusID","AdmissionsTypes","AdmissionsTestNameModel","AdmissionsTestStatusModel","AdmissionsTestSubjectModel","OverriddenBehaviors","ApplicationAthleticProgramsModel","PlanOnParticipating","IsAthlete","HasBeenEvaluated","AthleteSetDate","AthleteSetByPersonID","Requirement48C","ProspectiveAthlete","AthleteSetByPerson","AthleticProgram","EligibilityCenter","ApplicationAthleticProgramsStepModel","AthleticProgramModel","AthleticEligibilityCenterModel","ApplicationAthleticPrograms","ApplicationEvaluationComments","ApplicationEvaluationReviewerStatus","ApplicationEvaluationStatus","ApplicationEvaluationReviewerStatusModel","ApplicationEvaluationStatusModel","CommentDate","ScoreDate","ApplicationEvaluationCriteriaModel","ApplicationEvaluationRuleModel","ApplicationEvaluationCriteriaID","RankingAlgorithmID","RankingAlgorithmDateEntityFieldID","ApplicationEvaluationCriteria","RankingAlgorithm","RankingAlgorithmModel","CriteriaID","ReviewersAmount","ApplicationEvaluationSetupPrograms","ApplicationEvaluationSetupPeriods","ApplicationEvaluationSetupCommitteeSettings","ApplicationEvaluationSetupCommitteeSettingsModel","CommitteeSettingID","IsMarked","CommitteeSettings","CommitteeSettingsModel","IsReviewer","IsAdmissionOfficer","Weight","AdmissionsProcessStageAttributesID","ApplicationStudentSurveyModel","Parent4YearCollegeAttended","WorkHourPlansID","ChoiceRankID","PriorAttendanceID","ApplicationStudentSurveyStepModel","ApplicationStudentSurveys","Participates","MensProgramID","WomensProgramID","CollegeInformationModel","CollegeName","CollegeID","TranscriptEvalStatusID","StudentID","CreditsEarned","CreditsTransferred","GradePoint","GradePointOf","ConferralDate","CollegeTypeID","SemesterTypeID","TranscriptDocumentID","I20DocumentID","PersonAcademicGoalID","ProgramName","CredentialID","City","PersonAcademicGoal","College","SemesterType","TranscriptDocument","I20Document","PersonAcademicGoalModel","CollegeModel","CollegeInformationStepModel","CollegeSemesterTypeModel","TranscriptDocumentModel","CollegeInformationGoalModel","AdmissionsEducationalGoalID","Program","CollegeInformationID","CollegeInformation","AdmissionsEducationalGoal","CollegeDetails","CreditFactor","CommitteeSettingsType","CriterionModel","StateID","GoverningDistrict","CriterionStepModel","GoverningDistrictModel","CriterionTestScores","EssayModel","EssayText","EssayStepModel","Essays","ExternalSystem","ExternalEntity","ExternalID","AdmissionsProgramOfferingID","Offering","OfferingItem","GEDModel","GEDStepModel","GEDScores","GenericTestModel","TestTypeID","PassingScore","GMATModel","RegistrationNumber","IrregularityCode","Verbal","Quantitative","Total","Writing","GMATStepModel","GMATTestScores","GREGeneralModel","GREGeneralStepModel","GREGeneralTestScores","HighSchoolModel","OrganizationID","DisplayName","Organization","HighSchoolCodes","OrganizationModel","HighSchoolCodeModel","Code","HighSchoolCodeTypeID","HighSchoolID","HighSchool","HighSchoolInformationModel","HighSchoolName","GraduationDate","EvaluationDate","CounselorName","CounselorPhone","CounselorTitle","GPA","GPAScale","ClassRank","ClassSize","Graduated","ProjectedGPAVerbal","ProjectedGPAMath","HighestLevelAchieved","Credentials","Courses","HighSchoolInformationStepModel","HighSchoolDetails","PlacementTestModel","Score1","Score2","Score3","Score4","Score5","TestNameID","TestSubjectID","TestStatusID","AdmissionsTestName","AdmissionsTestSubject","AdmissionsTestStatus","PlacementTestStepModel","PlacementTestExemptionModel","Written","Grammar","EnglishCourse","PlacementTestExemptionStepModel","PlacementTestExemptions","PlacementTests","PraxisModel","ETSID","PraxisStepModel","PraxisIIModel","PraxisIIStepModel","PraxisIITestScores","PraxisTestScores","RequestedLoginInformationModel","RequestedID","Password","RequestedLoginInformationStepModel","RequestedLoginDetails","RNLicenseModel","LicenseNum","RNDocumentID","ExpirationDate","RNDocument","RNLicenseStepModel","RNLicenses","SATModel","Essay","GradeLevelID","RevisedScoreIndicator","TotalScore","EvidenceBasedReadingAndWritingSectionScore","MathSectionScore","ReadingTestScore","WritingAndLanguageTestScore","MathTestScore","AnalysisInScienceCrossTestScore","AnalysisInHistorySocialScienceCrossTestScore","RelevantWordsInContextSubscore","CommandOfEvidenceSubscore","ExpressionOfIdeasSubscore","StandardEnglishConventionsSubscore","HeartOfAlgebraSubscore","PassportToAdvancedMathematicsSubscore","ProblemSolvingAndDataAnalysisSubscore","EssayReadingSubscore","EssayAnalysisSubscore","EssayWritingSubscore","GradeLevel","ScoreGradeLevelModel","SATStepModel","SATTestScores","CollegeBoardID","SystemProtected","SevisModel","EnglishProficiencyRequired","EnglishNotRequiredReason","SevisStepModel","SevisTestScores","TOEFLModel","TOEFLStepModel","TOEFLCBModel","Listening","TOEFLCBStepModel","TOEFLCBTestScores","TOEFLPBModel","TWE","TOEFLPBStepModel","TOEFLPBTestScores","TOEFLTestScores","SupportTransfer","AllAreTransferred","TranscriptEvaluateCourseModel","CourseID","CourseTitle","CourseMasterID","CourseEquivalenceID","CreditHours","GradeID","IsTransfer","AttemptedHours","RepeatPolicyID","ShowGradeReport","ShowTranscript","ShowAdvisorTranscript","IgnoreRepeats","CourseMaster","CourseEquivalence","Grade","RepeatPolicy","CourseMasterModel","CourseEquivalenceModel","GradeMasterModel","RepeatPolicyModel","LoadTemplates","basePath","targetDiv","uri","ajax","url","type","async","success","template","append","InterviewSkypeNameOrEmail","InterviewPhoneNumber","PersonalStatement","AdmissionsSpecialismModel","SpecialismID","SpecialismCategoryID","StaffID","ReasonForStaffChange"],"sources":["assets/js/models/SMAPI.admissions.combined-1.0.0.js"],"mappings":"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","ignoreList":[],"sourcesContent":["(function ($, undefined) {\r\n \r\n var LoadSMAPI = sm.portal.vm.custom.callCustomization('LoadRequiredSMAPI');\r\n if(!sm.portal.utility.isNullOrEmpty(LoadSMAPI)){\r\n return;\r\n }\r\n\r\n var smapi = window.smapi = window.smapi || {},\r\n extend = $.extend,\r\n each = $.each,\r\n proxy = $.proxy,\r\n noop = $.noop,\r\n isFunction = $.isFunction,\r\n globalize = window.Globalize;\r\n \r\n if (typeof smapi.admissions === \"undefined\") {\r\n extend(smapi, { admissions: {} });\r\n }\r\n \r\n function ACTModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n TestDate: null,\r\n Math: 0,\r\n English: 0,\r\n Reading: 0,\r\n Science: 0,\r\n Composite: 0,\r\n UsageMech: 0,\r\n RhetSkills: 0,\r\n PreAlgEleAlg: 0,\r\n AlgCooGeo: 0,\r\n PlaneGeoTrig: 0,\r\n SocStuSci: 0,\r\n ArtLit: 0,\r\n UseForPlacement: false,\r\n SourceID: null,\r\n DataStepID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.TestDate = ko.validatedObservable(settings.TestDate);\r\n this.Math = ko.validatedObservable(settings.Math);\r\n this.English = ko.validatedObservable(settings.English);\r\n this.Reading = ko.validatedObservable(settings.Reading);\r\n this.Science = ko.validatedObservable(settings.Science);\r\n this.Composite = ko.validatedObservable(settings.Composite);\r\n this.UsageMech = ko.validatedObservable(settings.UsageMech);\r\n this.RhetSkills = ko.validatedObservable(settings.RhetSkills);\r\n this.PreAlgEleAlg = ko.validatedObservable(settings.PreAlgEleAlg);\r\n this.AlgCooGeo = ko.validatedObservable(settings.AlgCooGeo);\r\n this.PlaneGeoTrig = ko.validatedObservable(settings.PlaneGeoTrig);\r\n this.SocStuSci = ko.validatedObservable(settings.SocStuSci);\r\n this.ArtLit = ko.validatedObservable(settings.ArtLit);\r\n this.UseForPlacement = ko.validatedObservable(settings.UseForPlacement);\r\n this.SourceID = ko.validatedObservable(settings.SourceID);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.DataStep = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.TestDate != undefined) {\r\n loaded.TestDate(responseData.TestDate);\r\n }\r\n if (responseData.Math != undefined) {\r\n loaded.Math(responseData.Math);\r\n }\r\n if (responseData.English != undefined) {\r\n loaded.English(responseData.English);\r\n }\r\n if (responseData.Reading != undefined) {\r\n loaded.Reading(responseData.Reading);\r\n }\r\n if (responseData.Science != undefined) {\r\n loaded.Science(responseData.Science);\r\n }\r\n if (responseData.Composite != undefined) {\r\n loaded.Composite(responseData.Composite);\r\n }\r\n if (responseData.UsageMech != undefined) {\r\n loaded.UsageMech(responseData.UsageMech);\r\n }\r\n if (responseData.RhetSkills != undefined) {\r\n loaded.RhetSkills(responseData.RhetSkills);\r\n }\r\n if (responseData.PreAlgEleAlg != undefined) {\r\n loaded.PreAlgEleAlg(responseData.PreAlgEleAlg);\r\n }\r\n if (responseData.AlgCooGeo != undefined) {\r\n loaded.AlgCooGeo(responseData.AlgCooGeo);\r\n }\r\n if (responseData.PlaneGeoTrig != undefined) {\r\n loaded.PlaneGeoTrig(responseData.PlaneGeoTrig);\r\n }\r\n if (responseData.SocStuSci != undefined) {\r\n loaded.SocStuSci(responseData.SocStuSci);\r\n }\r\n if (responseData.ArtLit != undefined) {\r\n loaded.ArtLit(responseData.ArtLit);\r\n }\r\n if (responseData.UseForPlacement != undefined) {\r\n loaded.UseForPlacement(responseData.UseForPlacement);\r\n }\r\n if (responseData.SourceID != undefined) {\r\n loaded.SourceID(responseData.SourceID);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.ACTStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n return loaded;\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.Admissions.Entity.ACT', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TestDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.Math.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.English.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Reading.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Science.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Composite.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.UsageMech.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.RhetSkills.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.PreAlgEleAlg.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.AlgCooGeo.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.PlaneGeoTrig.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.SocStuSci.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.ArtLit.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.UseForPlacement.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.SourceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 ACTStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.ACTTestScores = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.ACTTestScores != null && responseData.ACTTestScores.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ACTTestScores.length; i++) {\r\n items.push(new smapi.admissions.ACTModel().LoadFromResponse(responseData.ACTTestScores[i]));\r\n }\r\n loaded.ACTTestScores(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.ACTStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 AdmissionsAcademicLevelModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n AcademicLevelID: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.AcademicLevelID = ko.validatedObservable(settings.AcademicLevelID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AcademicLevel = ko.observable();\r\n this.AvailableGoals = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.AcademicLevelID != undefined) {\r\n loaded.AcademicLevelID(responseData.AcademicLevelID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AcademicLevel != null) {\r\n loaded.AcademicLevel(new smapi.academic.AcademicLevelModel().LoadFromResponse(responseData.AcademicLevel));\r\n }\r\n if (responseData.AvailableGoals != null && responseData.AvailableGoals.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AvailableGoals.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsEducationalGoalModel().LoadFromResponse(responseData.AvailableGoals[i]));\r\n }\r\n loaded.AvailableGoals(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.Admissions.Entity.AdmissionsAcademicLevel', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.AcademicLevelID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AdmissionsApplicationRankModel(options) {\r\n var defaults = {\r\n Score: 0,\r\n StudentRank: 0,\r\n IsStudentRankEnforced: false,\r\n ApplicationEvaluationID: 0,\r\n AdmissionsRankingListID: 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.Score = ko.validatedObservable(settings.Score);\r\n this.StudentRank = ko.validatedObservable(settings.StudentRank);\r\n this.IsStudentRankEnforced = ko.validatedObservable(settings.IsStudentRankEnforced);\r\n this.ApplicationEvaluationID = ko.validatedObservable(settings.ApplicationEvaluationID);\r\n this.AdmissionsRankingListID = ko.validatedObservable(settings.AdmissionsRankingListID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.ApplicationEvaluation = ko.observable();\r\n this.AdmissionsRankingList = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Score != undefined) {\r\n loaded.Score(responseData.Score);\r\n }\r\n if (responseData.StudentRank != undefined) {\r\n loaded.StudentRank(responseData.StudentRank);\r\n }\r\n if (responseData.IsStudentRankEnforced != undefined) {\r\n loaded.IsStudentRankEnforced(responseData.IsStudentRankEnforced);\r\n }\r\n if (responseData.ApplicationEvaluationID != undefined) {\r\n loaded.ApplicationEvaluationID(responseData.ApplicationEvaluationID);\r\n }\r\n if (responseData.AdmissionsRankingListID != undefined) {\r\n loaded.AdmissionsRankingListID(responseData.AdmissionsRankingListID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.ApplicationEvaluation != null) {\r\n loaded.ApplicationEvaluation(new smapi.admissions.ApplicationEvaluationModel().LoadFromResponse(responseData.ApplicationEvaluation));\r\n }\r\n if (responseData.AdmissionsRankingList != null) {\r\n loaded.AdmissionsRankingList(new smapi.admissions.AdmissionsRankingListModel().LoadFromResponse(responseData.AdmissionsRankingList));\r\n }\r\n return loaded;\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.Admissions.Entity.AdmissionsApplicationRank', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Score.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StudentRank.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.IsStudentRankEnforced.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ApplicationEvaluationID.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.AdmissionsRankingListID.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 AdmissionsAttemptModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n AdmissionsStageID: null,\r\n AdmissionsAcademicLevelID: null,\r\n AdmissionsTypeID: null,\r\n\t\t\tExpectedEntrancePeriodID: null,\r\n\t\t\tExpectedStartPeriodID: null,\r\n EarliestStartDate: null,\r\n HierarchyNodeID: 0,\r\n ReviewingHierarchyNodeID: 0,\r\n AdmissionsSourceID: null,\r\n ExpectedLoadID: null,\r\n EnrollmentStatusID: null,\r\n RecruiterID: null,\r\n AdmissionsCounselorID: null,\r\n AttendanceTypeID: null,\r\n AttendanceReasonID: null,\r\n EverAttended: false,\r\n IsMatriculated: false,\r\n Transfer: false,\r\n TransferWithinCountry: false,\r\n EverSuspendedDismissed: false,\r\n CampusID: null,\r\n CarPool: false,\r\n BypassCommunicationPlan: false,\r\n SurveyQuestion: false,\r\n Referrer: '',\r\n BrowserInfo: '',\r\n AllowCounselorRule: true,\r\n AllowRecruiterRule: true,\r\n Surname: '',\r\n GivenName: '',\r\n MiddleName: '',\r\n NumericalRank: 0,\r\n PreferredCommunicationTypeID: null,\r\n CompletionDate: null,\r\n StudentCategoryID: null,\r\n DeliveryMethodID: null,\r\n LevelOfStudyID: 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 HeardAboutInstituteFrom: '',\r\n InstituteCoursesPreviouslyTaken: '',\r\n InstituteRelationship: false,\r\n InstituteRelationshipName: '',\r\n InstituteRelationshipDescription: '',\r\n InterviewViaSkype: false,\r\n InterviewViaPhone: false,\r\n InterviewInPerson: false\r\n };\r\n var ukFeatureEnabled = sm.portal.utility.isUKFeatureEnabled();\r\n var euFeatureEnabled = sm.portal.utility.isEUFeatureEnabled();\r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.AdmissionsStageID = ko.validatedObservable(settings.AdmissionsStageID);\r\n this.AdmissionsAcademicLevelID = ko.validatedObservable(settings.AdmissionsAcademicLevelID);\r\n this.AdmissionsTypeID = ko.validatedObservable(settings.AdmissionsTypeID);\r\n\t\tthis.ExpectedEntrancePeriodID = ko.validatedObservable(settings.ExpectedEntrancePeriodID);\r\n\t\tthis.ExpectedStartPeriodID = ko.validatedObservable(settings.ExpectedStartPeriodID);\r\n this.EarliestStartDate = ko.validatedObservable(settings.EarliestStartDate);\r\n this.HierarchyNodeID = ko.validatedObservable(settings.HierarchyNodeID);\r\n this.ReviewingHierarchyNodeID = ko.validatedObservable(settings.ReviewingHierarchyNodeID);\r\n this.AdmissionsSourceID = ko.validatedObservable(settings.AdmissionsSourceID);\r\n this.ExpectedLoadID = ko.validatedObservable(settings.ExpectedLoadID);\r\n this.EnrollmentStatusID = ko.validatedObservable(settings.EnrollmentStatusID);\r\n this.RecruiterID = ko.validatedObservable(settings.RecruiterID);\r\n this.AdmissionsCounselorID = ko.validatedObservable(settings.AdmissionsCounselorID);\r\n this.AttendanceTypeID = ko.validatedObservable(settings.AttendanceTypeID);\r\n this.AttendanceReasonID = ko.validatedObservable(settings.AttendanceReasonID);\r\n this.EverAttended = ko.validatedObservable(settings.EverAttended);\r\n this.Transfer = ko.validatedObservable(settings.Transfer);\r\n this.IsMatriculated = ko.validatedObservable(settings.IsMatriculated);\r\n this.TransferWithinCountry = ko.validatedObservable(settings.TransferWithinCountry);\r\n this.EverSuspendedDismissed = ko.validatedObservable(settings.EverSuspendedDismissed);\r\n this.CampusID = ko.validatedObservable(settings.CampusID);\r\n this.CarPool = ko.validatedObservable(settings.CarPool);\r\n this.BypassCommunicationPlan = ko.validatedObservable(settings.BypassCommunicationPlan);\r\n this.SurveyQuestion = ko.validatedObservable(settings.SurveyQuestion);\r\n this.Referrer = ko.validatedObservable(settings.Referrer);\r\n this.BrowserInfo = ko.validatedObservable(settings.BrowserInfo);\r\n this.AllowCounselorRule = ko.validatedObservable(settings.AllowCounselorRule);\r\n this.AllowRecruiterRule = ko.validatedObservable(settings.AllowRecruiterRule);\r\n this.Surname = ko.validatedObservable(settings.Surname);\r\n this.GivenName = ko.validatedObservable(settings.GivenName);\r\n this.MiddleName = ko.validatedObservable(settings.MiddleName);\r\n this.NumericalRank = ko.validatedObservable(settings.NumericalRank);\r\n this.PreferredCommunicationTypeID = ko.validatedObservable(settings.PreferredCommunicationTypeID);\r\n this.CompletionDate = ko.validatedObservable(settings.CompletionDate);\r\n this.StudentCategoryID = ko.validatedObservable(settings.StudentCategoryID);\r\n this.DeliveryMethodID = ko.validatedObservable(settings.DeliveryMethodID);\r\n this.LevelOfStudyID = ko.validatedObservable(settings.LevelOfStudyID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AdmissionsStage = ko.observable();\r\n this.Person = ko.observable();\r\n this.AdmissionsAcademicLevel = ko.observable();\r\n this.AdmissionsType = ko.observable();\r\n this.Recruiter = ko.observable();\r\n this.AdmissionsCounselor = ko.observable();\r\n this.AdmissionsAttemptPrograms = ko.observableArray([]);\r\n this.Milestones = ko.observableArray([]);\r\n this.Steps = ko.observableArray([]);\r\n this.Campus = ko.observable();\r\n this.PeriodTypes = ko.observableArray([]);\r\n this.DeliveryMethod = ko.observable();\r\n this.DocumentRepository = ko.observableArray([]);\r\n this.PreferredCommunicationType = ko.observable();\r\n this.StudentCategory = ko.observable();\r\n this.LevelOfStudy = ko.observable();\r\n this.ExpectedEntrancePeriod = ko.observable();\r\n\t\tthis.ExpectedStartPeriod = ko.observable();\r\n\r\n if(euFeatureEnabled){\r\n this.AdmissionsAttemptEUAdditionalInfo = ko.observableArray([]);\r\n }\r\n if(ukFeatureEnabled)\r\n {\r\n this.AdmissionsAttemptUKAdditionalInfo = ko.observableArray([]);\r\n this.AdmissionsAttemptUKPersonalStatement = ko.observableArray([]);\r\n this.AdmissionsSpecialisms = ko.observableArray([]);\r\n this.UKQualifications = ko.observableArray([]);\r\n }\r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.AdmissionsStageID != undefined) {\r\n loaded.AdmissionsStageID(responseData.AdmissionsStageID);\r\n }\r\n if (responseData.AdmissionsAcademicLevelID != undefined) {\r\n loaded.AdmissionsAcademicLevelID(responseData.AdmissionsAcademicLevelID);\r\n }\r\n if (responseData.AdmissionsTypeID != undefined) {\r\n loaded.AdmissionsTypeID(responseData.AdmissionsTypeID);\r\n }\r\n if (responseData.ExpectedEntrancePeriodID != undefined) {\r\n loaded.ExpectedEntrancePeriodID(responseData.ExpectedEntrancePeriodID);\r\n\t\t\t}\r\n\t\t\tif (responseData.ExpectedStartPeriodID != undefined) {\r\n\t\t\t\tloaded.ExpectedStartPeriodID(responseData.ExpectedStartPeriodID);\r\n\t\t\t}\r\n if (responseData.EarliestStartDate != undefined) {\r\n loaded.EarliestStartDate(responseData.EarliestStartDate);\r\n }\r\n if (responseData.HierarchyNodeID != undefined) {\r\n loaded.HierarchyNodeID(responseData.HierarchyNodeID);\r\n }\r\n if (responseData.ReviewingHierarchyNodeID != undefined) {\r\n loaded.ReviewingHierarchyNodeID(responseData.ReviewingHierarchyNodeID);\r\n }\r\n if (responseData.AdmissionsSourceID != undefined) {\r\n loaded.AdmissionsSourceID(responseData.AdmissionsSourceID);\r\n }\r\n if (responseData.ExpectedLoadID != undefined) {\r\n loaded.ExpectedLoadID(responseData.ExpectedLoadID);\r\n }\r\n if (responseData.EnrollmentStatusID != undefined) {\r\n loaded.EnrollmentStatusID(responseData.EnrollmentStatusID);\r\n }\r\n if (responseData.RecruiterID != undefined) {\r\n loaded.RecruiterID(responseData.RecruiterID);\r\n }\r\n if (responseData.AdmissionsCounselorID != undefined) {\r\n loaded.AdmissionsCounselorID(responseData.AdmissionsCounselorID);\r\n }\r\n if (responseData.AttendanceTypeID != undefined) {\r\n loaded.AttendanceTypeID(responseData.AttendanceTypeID);\r\n }\r\n if (responseData.AttendanceReasonID != undefined) {\r\n loaded.AttendanceReasonID(responseData.AttendanceReasonID);\r\n }\r\n if (responseData.EverAttended != undefined) {\r\n loaded.EverAttended(responseData.EverAttended);\r\n }\r\n if (responseData.Transfer != undefined) {\r\n loaded.Transfer(responseData.Transfer);\r\n }\r\n if (responseData.IsMatriculated != undefined) {\r\n loaded.IsMatriculated(responseData.IsMatriculated);\r\n }\r\n if (responseData.TransferWithinCountry != undefined) {\r\n loaded.TransferWithinCountry(responseData.TransferWithinCountry);\r\n }\r\n if (responseData.EverSuspendedDismissed != undefined) {\r\n loaded.EverSuspendedDismissed(responseData.EverSuspendedDismissed);\r\n }\r\n if (responseData.CampusID != undefined) {\r\n loaded.CampusID(responseData.CampusID);\r\n }\r\n if (responseData.CarPool != undefined) {\r\n loaded.CarPool(responseData.CarPool);\r\n }\r\n if (responseData.BypassCommunicationPlan != undefined) {\r\n loaded.BypassCommunicationPlan(responseData.BypassCommunicationPlan);\r\n }\r\n if (responseData.SurveyQuestion != undefined) {\r\n loaded.SurveyQuestion(responseData.SurveyQuestion);\r\n }\r\n if (responseData.Referrer != undefined) {\r\n loaded.Referrer(responseData.Referrer);\r\n }\r\n if (responseData.BrowserInfo != undefined) {\r\n loaded.BrowserInfo(responseData.BrowserInfo);\r\n }\r\n if (responseData.AllowCounselorRule != undefined) {\r\n loaded.AllowCounselorRule(responseData.AllowCounselorRule);\r\n }\r\n if (responseData.AllowRecruiterRule != undefined) {\r\n loaded.AllowRecruiterRule(responseData.AllowRecruiterRule);\r\n }\r\n if (responseData.Surname != undefined) {\r\n loaded.Surname(responseData.Surname);\r\n }\r\n if (responseData.GivenName != undefined) {\r\n loaded.GivenName(responseData.GivenName);\r\n }\r\n if (responseData.MiddleName != undefined) {\r\n loaded.MiddleName(responseData.MiddleName);\r\n }\r\n if (responseData.NumericalRank != undefined) {\r\n loaded.NumericalRank(responseData.NumericalRank);\r\n }\r\n if (responseData.PreferredCommunicationTypeID != undefined) {\r\n loaded.PreferredCommunicationTypeID(responseData.PreferredCommunicationTypeID);\r\n }\r\n if (responseData.CompletionDate != undefined) {\r\n loaded.CompletionDate(responseData.CompletionDate);\r\n }\r\n if (responseData.StudentCategoryID != undefined) {\r\n loaded.StudentCategoryID(responseData.StudentCategoryID);\r\n }\r\n if (responseData.DeliveryMethodID != undefined) {\r\n loaded.DeliveryMethodID(responseData.DeliveryMethodID);\r\n }\r\n if (responseData.LevelOfStudyID != undefined) {\r\n loaded.LevelOfStudyID(responseData.LevelOfStudyID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AdmissionsStage != null) {\r\n loaded.AdmissionsStage(new smapi.admissions.AdmissionsStageModel().LoadFromResponse(responseData.AdmissionsStage));\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.AdmissionsAcademicLevel != null) {\r\n loaded.AdmissionsAcademicLevel(new smapi.admissions.AdmissionsAcademicLevelModel().LoadFromResponse(responseData.AdmissionsAcademicLevel));\r\n }\r\n if (responseData.AdmissionsType != null) {\r\n loaded.AdmissionsType(new smapi.admissions.AdmissionsTypeModel().LoadFromResponse(responseData.AdmissionsType));\r\n }\r\n if (responseData.Recruiter != null) {\r\n loaded.Recruiter(new smapi.faculty.StaffModel().LoadFromResponse(responseData.Recruiter));\r\n }\r\n if (responseData.AdmissionsCounselor != null) {\r\n loaded.AdmissionsCounselor(new smapi.faculty.StaffModel().LoadFromResponse(responseData.AdmissionsCounselor));\r\n }\r\n if (responseData.AdmissionsAttemptPrograms != null && responseData.AdmissionsAttemptPrograms.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AdmissionsAttemptPrograms.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptProgramModel().LoadFromResponse(responseData.AdmissionsAttemptPrograms[i]));\r\n }\r\n loaded.AdmissionsAttemptPrograms(items);\r\n }\r\n if (responseData.Milestones != null && responseData.Milestones.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Milestones.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptMilestoneModel().LoadFromResponse(responseData.Milestones[i]));\r\n }\r\n loaded.Milestones(items);\r\n }\r\n if (responseData.Steps != null && responseData.Steps.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Steps.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Steps[i]));\r\n }\r\n loaded.Steps(items);\r\n }\r\n if (responseData.Campus != null) {\r\n loaded.Campus(new smapi.facility.CampusModel().LoadFromResponse(responseData.Campus));\r\n }\r\n if (responseData.PeriodTypes != null && responseData.PeriodTypes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.PeriodTypes.length; i++) {\r\n items.push(new smapi.academic.AcademicPeriodTypeModel().LoadFromResponse(responseData.PeriodTypes[i]));\r\n }\r\n loaded.PeriodTypes(items);\r\n }\r\n if (responseData.DeliveryMethod != null) {\r\n loaded.DeliveryMethod(new smapi.academic.AcademicDeliveryMethodModel().LoadFromResponse(responseData.DeliveryMethod));\r\n }\r\n if (responseData.DocumentRepository != null && responseData.DocumentRepository.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.DocumentRepository.length; i++) {\r\n items.push(new smapi.community.DocumentRepositoryModel().LoadFromResponse(responseData.DocumentRepository[i]));\r\n }\r\n loaded.DocumentRepository(items);\r\n }\r\n if (responseData.PreferredCommunicationType != null) {\r\n loaded.PreferredCommunicationType(new smapi.communication.CommunicationTypeModel().LoadFromResponse(responseData.PreferredCommunicationType));\r\n }\r\n if (responseData.StudentCategory != null) {\r\n loaded.StudentCategory(new smapi.admissions.StudentCategoryModel().LoadFromResponse(responseData.StudentCategory));\r\n }\r\n if (responseData.LevelOfStudy != null) {\r\n loaded.LevelOfStudy(new smapi.academic.LevelOfStudyModel().LoadFromResponse(responseData.LevelOfStudy));\r\n }\r\n if (responseData.ExpectedEntrancePeriod != null) {\r\n loaded.ExpectedEntrancePeriod(new smapi.admissions.AdmissionsPeriodModel().LoadFromResponse(responseData.ExpectedEntrancePeriod));\r\n\t\t\t}\r\n\t\t\tif (responseData.ExpectedStartPeriod != null) {\r\n\t\t\t\tloaded.ExpectedStartPeriod(new smapi.academic.AcademicPeriodModel().LoadFromResponse(responseData.ExpectedStartPeriod));\r\n\t\t\t}\r\n if(euFeatureEnabled && responseData.AdmissionsAttemptEUAdditionalInfo != null && responseData.AdmissionsAttemptEUAdditionalInfo.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.AdmissionsAttemptEUAdditionalInfo.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptEUAdditionalInfoModel().LoadFromResponse(responseData.AdmissionsAttemptEUAdditionalInfo[i]));\r\n }\r\n loaded.AdmissionsAttemptEUAdditionalInfo(items);\r\n }\r\n if (ukFeatureEnabled && responseData.AdmissionsAttemptUKAdditionalInfo != null && responseData.AdmissionsAttemptUKAdditionalInfo.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.AdmissionsAttemptUKAdditionalInfo.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptUKAdditionalInfoModel().LoadFromResponse(responseData.AdmissionsAttemptUKAdditionalInfo[i]));\r\n }\r\n loaded.AdmissionsAttemptUKAdditionalInfo(items);\r\n }\r\n if (ukFeatureEnabled && responseData.AdmissionsAttemptUKPersonalStatement != null && responseData.AdmissionsAttemptUKPersonalStatement.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.AdmissionsAttemptUKPersonalStatement.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptUKPersonalStatementModel().LoadFromResponse(responseData.AdmissionsAttemptUKPersonalStatement[i]));\r\n }\r\n loaded.AdmissionsAttemptUKPersonalStatement(items);\r\n }\r\n if (ukFeatureEnabled && responseData.AdmissionsSpecialisms != null && responseData.AdmissionsSpecialisms.length > 0) {\r\n var items = new Array();\r\n for (var i = 0; i < responseData.AdmissionsSpecialisms.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsSpecialismsModel().LoadFromResponse(responseData.AdmissionsSpecialisms[i]));\r\n }\r\n loaded.AdmissionsSpecialisms(items);\r\n }\r\n\r\n return loaded;\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.Admissions.Entity.AdmissionsAttempt', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AdmissionsStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AdmissionsAcademicLevelID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AdmissionsTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ExpectedEntrancePeriodID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n\t\t});\r\n\t\tthis.ExpectedStartPeriodID.extend({\r\n\t\t\tmin: {\r\n\t\t\t\tparams: -9223372036854775808,\r\n\t\t\t\tmessage: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n\t\t\t},\r\n\t\t\tmax: {\r\n\t\t\t\tparams: 9223372036854775807,\r\n\t\t\t\tmessage: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n\t\t\t},\r\n\t\t\tnumber: {\r\n\t\t\t\tmessage: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n\t\t\t}\r\n\t\t});\r\n this.EarliestStartDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.HierarchyNodeID.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.ReviewingHierarchyNodeID.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.AdmissionsSourceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ExpectedLoadID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EnrollmentStatusID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RecruiterID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AdmissionsCounselorID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AttendanceTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AttendanceReasonID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EverAttended.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.Transfer.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.TransferWithinCountry.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.EverSuspendedDismissed.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.CampusID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CarPool.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.BypassCommunicationPlan.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.Referrer.extend({\r\n maxLength: {\r\n params: 2048,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '2048')\r\n }\r\n });\r\n this.BrowserInfo.extend({\r\n maxLength: {\r\n params: 2048,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '2048')\r\n }\r\n });\r\n this.AllowCounselorRule.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.AllowRecruiterRule.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.Surname.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.GivenName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.MiddleName.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.NumericalRank.extend({\r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PreferredCommunicationTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CompletionDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.StudentCategoryID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DeliveryMethodID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.LevelOfStudyID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 AdmissionsAttemptInteractionModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n Priority: 0,\r\n AdmissionsStageID: null,\r\n AdmissionsTypeID: 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.Priority = ko.validatedObservable(settings.Priority);\r\n this.AdmissionsStageID = ko.validatedObservable(settings.AdmissionsStageID);\r\n this.AdmissionsTypeID = ko.validatedObservable(settings.AdmissionsTypeID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AdmissionsStage = ko.observable();\r\n this.AdmissionsType = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.Priority != undefined) {\r\n loaded.Priority(responseData.Priority);\r\n }\r\n if (responseData.AdmissionsStageID != undefined) {\r\n loaded.AdmissionsStageID(responseData.AdmissionsStageID);\r\n }\r\n if (responseData.AdmissionsTypeID != undefined) {\r\n loaded.AdmissionsTypeID(responseData.AdmissionsTypeID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AdmissionsStage != null) {\r\n loaded.AdmissionsStage(new smapi.admissions.AdmissionsStageModel().LoadFromResponse(responseData.AdmissionsStage));\r\n }\r\n if (responseData.AdmissionsType != null) {\r\n loaded.AdmissionsType(new smapi.admissions.AdmissionsTypeModel().LoadFromResponse(responseData.AdmissionsType));\r\n }\r\n return loaded;\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.Admissions.Entity.AdmissionsAttemptInteraction', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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: 250,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '250')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 250,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '250')\r\n }\r\n });\r\n this.Priority.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.AdmissionsStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AdmissionsTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 AdmissionsAttemptMilestoneModel(options) {\r\n var defaults = {\r\n AdmissionsAttemptID: 0,\r\n AdmissionsStageID: null,\r\n DateOfMilestone: 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.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.AdmissionsStageID = ko.validatedObservable(settings.AdmissionsStageID);\r\n this.DateOfMilestone = ko.validatedObservable(settings.DateOfMilestone);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AdmissionsAttempt = ko.observable();\r\n this.AdmissionsStage = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.AdmissionsStageID != undefined) {\r\n loaded.AdmissionsStageID(responseData.AdmissionsStageID);\r\n }\r\n if (responseData.DateOfMilestone != undefined) {\r\n loaded.DateOfMilestone(responseData.DateOfMilestone);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.AdmissionsStage != null) {\r\n loaded.AdmissionsStage(new smapi.admissions.AdmissionsStageModel().LoadFromResponse(responseData.AdmissionsStage));\r\n }\r\n return loaded;\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.Admissions.Entity.AdmissionsAttemptMilestone', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.AdmissionsAttemptID.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.AdmissionsStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DateOfMilestone.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AdmissionsAttemptProgramModel(options) {\r\n var defaults = {\r\n Preference: 0,\r\n AdmissionsAttemptID: 0,\r\n AdmissionsAcademicLevelID: null,\r\n ApplicationGoalID: null,\r\n AdmissionProgramID: null,\r\n AdmissionsProgramOfferingItemID: null,\r\n ProgramCategoryID: null,\r\n AdmissionsCohortID: null,\r\n AdmissionsConcentrationID: 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 FlexiFieldValues: null\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Preference = ko.validatedObservable(settings.Preference);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.AdmissionsAcademicLevelID = ko.validatedObservable(settings.AdmissionsAcademicLevelID);\r\n this.ApplicationGoalID = ko.validatedObservable(settings.ApplicationGoalID);\r\n this.AdmissionProgramID = ko.validatedObservable(settings.AdmissionProgramID);\r\n this.AdmissionsProgramOfferingItemID = ko.validatedObservable(settings.AdmissionsProgramOfferingItemID);\r\n this.ProgramCategoryID = ko.validatedObservable(settings.ProgramCategoryID);\r\n this.AdmissionsCohortID = ko.validatedObservable(settings.AdmissionsCohortID);\r\n this.AdmissionsConcentrationID = ko.validatedObservable(settings.AdmissionsConcentrationID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n this.FlexiFieldValues = ko.validatedObservable(settings.FlexiFieldValues);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AdmissionsAttempt = ko.observable();\r\n this.AdmissionsProgramOfferingItem = ko.observable();\r\n this.AcademicLevel = ko.observable();\r\n this.AdmissionProgram = ko.observable();\r\n this.ApplicationGoal = ko.observable();\r\n this.AdmissionsCohort = ko.observable();\r\n this.AdmissionsConcentration = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Preference != undefined) {\r\n loaded.Preference(responseData.Preference);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.AdmissionsAcademicLevelID != undefined) {\r\n loaded.AdmissionsAcademicLevelID(responseData.AdmissionsAcademicLevelID);\r\n }\r\n if (responseData.ApplicationGoalID != undefined) {\r\n loaded.ApplicationGoalID(responseData.ApplicationGoalID);\r\n }\r\n if (responseData.AdmissionProgramID != undefined) {\r\n loaded.AdmissionProgramID(responseData.AdmissionProgramID);\r\n }\r\n if (responseData.AdmissionsProgramOfferingItemID != undefined) {\r\n loaded.AdmissionsProgramOfferingItemID(responseData.AdmissionsProgramOfferingItemID);\r\n }\r\n if (responseData.ProgramCategoryID != undefined) {\r\n loaded.ProgramCategoryID(responseData.ProgramCategoryID);\r\n }\r\n if (responseData.AdmissionsCohortID != undefined) {\r\n loaded.AdmissionsCohortID(responseData.AdmissionsCohortID);\r\n }\r\n if (responseData.AdmissionsConcentrationID != undefined) {\r\n loaded.AdmissionsConcentrationID(responseData.AdmissionsConcentrationID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.AdmissionsProgramOfferingItem != null) {\r\n loaded.AdmissionsProgramOfferingItem(new smapi.admissions.AdmissionsProgramOfferingItemModel().LoadFromResponse(responseData.AdmissionsProgramOfferingItem));\r\n }\r\n if (responseData.AcademicLevel != null) {\r\n loaded.AcademicLevel(new smapi.admissions.AdmissionsAcademicLevelModel().LoadFromResponse(responseData.AcademicLevel));\r\n }\r\n if (responseData.AdmissionProgram != null) {\r\n loaded.AdmissionProgram(new smapi.admissions.AdmissionsProgramModel().LoadFromResponse(responseData.AdmissionProgram));\r\n }\r\n if (responseData.ApplicationGoal != null) {\r\n loaded.ApplicationGoal(new smapi.admissions.AdmissionsEducationalGoalModel().LoadFromResponse(responseData.ApplicationGoal));\r\n }\r\n if (responseData.AdmissionsCohort != null) {\r\n loaded.AdmissionsCohort(new smapi.admissions.AdmissionsCohortModel().LoadFromResponse(responseData.AdmissionsCohort));\r\n }\r\n if (responseData.AdmissionsConcentration != null) {\r\n loaded.AdmissionsConcentration(new smapi.admissions.AdmissionsConcentrationModel().LoadFromResponse(responseData.AdmissionsConcentration));\r\n }\r\n return loaded;\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.Admissions.Entity.AdmissionsAttemptProgram', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Preference.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AdmissionsAttemptID.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.AdmissionsAcademicLevelID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ApplicationGoalID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AdmissionProgramID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AdmissionsProgramOfferingItemID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ProgramCategoryID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AdmissionsCohortID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AdmissionsConcentrationID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 AdmissionsAttemptStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.AdmissionsAttemptStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 AdmissionsAttemptStepDataModel(options) {\r\n var defaults = {\r\n AdmissionsAttemptStepID: 0,\r\n ExternalDataGID: 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.AdmissionsAttemptStepID = ko.validatedObservable(settings.AdmissionsAttemptStepID);\r\n this.ExternalDataGID = ko.validatedObservable(settings.ExternalDataGID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AdmissionsAttemptStep = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.AdmissionsAttemptStepID != undefined) {\r\n loaded.AdmissionsAttemptStepID(responseData.AdmissionsAttemptStepID);\r\n }\r\n if (responseData.ExternalDataGID != undefined) {\r\n loaded.ExternalDataGID(responseData.ExternalDataGID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AdmissionsAttemptStep != null) {\r\n loaded.AdmissionsAttemptStep(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.AdmissionsAttemptStep));\r\n }\r\n return loaded;\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.Admissions.Entity.AdmissionsAttemptStepData', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.AdmissionsAttemptStepID.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.ExternalDataGID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AdmissionsCohortModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n AcademicLevelID: null,\r\n AcademicGoalID: null,\r\n ProgramID: null,\r\n ConcentrationID: null,\r\n ProgramCategoryID: null,\r\n CampusID: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.AcademicLevelID = ko.validatedObservable(settings.AcademicLevelID);\r\n this.AcademicGoalID = ko.validatedObservable(settings.AcademicGoalID);\r\n this.ProgramID = ko.validatedObservable(settings.ProgramID);\r\n this.ConcentrationID = ko.validatedObservable(settings.ConcentrationID);\r\n this.ProgramCategoryID = ko.validatedObservable(settings.ProgramCategoryID);\r\n this.CampusID = ko.validatedObservable(settings.CampusID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Levels = ko.observable();\r\n this.Goals = ko.observable();\r\n this.Programs = ko.observable();\r\n this.Concentrations = ko.observable();\r\n this.Campus = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.AcademicLevelID != undefined) {\r\n loaded.AcademicLevelID(responseData.AcademicLevelID);\r\n }\r\n if (responseData.AcademicGoalID != undefined) {\r\n loaded.AcademicGoalID(responseData.AcademicGoalID);\r\n }\r\n if (responseData.ProgramID != undefined) {\r\n loaded.ProgramID(responseData.ProgramID);\r\n }\r\n if (responseData.ConcentrationID != undefined) {\r\n loaded.ConcentrationID(responseData.ConcentrationID);\r\n }\r\n if (responseData.ProgramCategoryID != undefined) {\r\n loaded.ProgramCategoryID(responseData.ProgramCategoryID);\r\n }\r\n if (responseData.CampusID != undefined) {\r\n loaded.CampusID(responseData.CampusID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Levels != null) {\r\n loaded.Levels(new smapi.admissions.AdmissionsAcademicLevelModel().LoadFromResponse(responseData.Levels));\r\n }\r\n if (responseData.Goals != null) {\r\n loaded.Goals(new smapi.admissions.AdmissionsEducationalGoalModel().LoadFromResponse(responseData.Goals));\r\n }\r\n if (responseData.Programs != null) {\r\n loaded.Programs(new smapi.admissions.AdmissionsProgramModel().LoadFromResponse(responseData.Programs));\r\n }\r\n if (responseData.Concentrations != null) {\r\n loaded.Concentrations(new smapi.admissions.AdmissionsConcentrationModel().LoadFromResponse(responseData.Concentrations));\r\n }\r\n if (responseData.Campus != null) {\r\n loaded.Campus(new smapi.facility.CampusModel().LoadFromResponse(responseData.Campus));\r\n }\r\n return loaded;\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.Admissions.Entity.AdmissionsCohort', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.AcademicLevelID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AcademicGoalID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ProgramID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ConcentrationID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ProgramCategoryID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CampusID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AdmissionsConcentrationModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n ProgramID: null,\r\n AcademicGoalID: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.ProgramID = ko.validatedObservable(settings.ProgramID);\r\n this.AcademicGoalID = ko.validatedObservable(settings.AcademicGoalID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Programs = ko.observable();\r\n this.Goals = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.ProgramID != undefined) {\r\n loaded.ProgramID(responseData.ProgramID);\r\n }\r\n if (responseData.AcademicGoalID != undefined) {\r\n loaded.AcademicGoalID(responseData.AcademicGoalID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Programs != null) {\r\n loaded.Programs(new smapi.admissions.AdmissionsProgramModel().LoadFromResponse(responseData.Programs));\r\n }\r\n if (responseData.Goals != null) {\r\n loaded.Goals(new smapi.admissions.AdmissionsEducationalGoalModel().LoadFromResponse(responseData.Goals));\r\n }\r\n return loaded;\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.Admissions.Entity.AdmissionsConcentration', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.ProgramID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AcademicGoalID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AdmissionsDocumentModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n PersonID: 0,\r\n DocumentID: null,\r\n DocumentStatusID: null,\r\n CompletionDate: null,\r\n Comment: '',\r\n Reference: '',\r\n SourceID: null,\r\n DataStepID: 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.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.DocumentID = ko.validatedObservable(settings.DocumentID);\r\n this.DocumentStatusID = ko.validatedObservable(settings.DocumentStatusID);\r\n this.CompletionDate = ko.validatedObservable(settings.CompletionDate);\r\n this.Comment = ko.validatedObservable(settings.Comment);\r\n this.Reference = ko.validatedObservable(settings.Reference);\r\n this.SourceID = ko.validatedObservable(settings.SourceID);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.Document = ko.observable();\r\n this.DataStep = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.DocumentID != undefined) {\r\n loaded.DocumentID(responseData.DocumentID);\r\n }\r\n if (responseData.DocumentStatusID != undefined) {\r\n loaded.DocumentStatusID(responseData.DocumentStatusID);\r\n }\r\n if (responseData.CompletionDate != undefined) {\r\n loaded.CompletionDate(responseData.CompletionDate);\r\n }\r\n if (responseData.Comment != undefined) {\r\n loaded.Comment(responseData.Comment);\r\n }\r\n if (responseData.Reference != undefined) {\r\n loaded.Reference(responseData.Reference);\r\n }\r\n if (responseData.SourceID != undefined) {\r\n loaded.SourceID(responseData.SourceID);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.Document != null) {\r\n loaded.Document(new smapi.community.DocumentModel().LoadFromResponse(responseData.Document));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.AdmissionsDocumentStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n return loaded;\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.Admissions.Entity.AdmissionsDocument', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DocumentID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DocumentStatusID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CompletionDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.Comment.extend({\r\n maxLength: {\r\n params: 1000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1000')\r\n }\r\n });\r\n this.Reference.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.SourceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 AdmissionsDocumentStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AdmissionsDocuments = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AdmissionsDocuments != null && responseData.AdmissionsDocuments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AdmissionsDocuments.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsDocumentModel().LoadFromResponse(responseData.AdmissionsDocuments[i]));\r\n }\r\n loaded.AdmissionsDocuments(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.AdmissionsDocumentStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 AdmissionsEducationalGoalModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n Degreed: false,\r\n AdmissionsAcademicLevelID: null,\r\n Abbreviation: '',\r\n SortOrder: 0,\r\n EducationalGoalID: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.Degreed = ko.validatedObservable(settings.Degreed);\r\n this.AdmissionsAcademicLevelID = ko.validatedObservable(settings.AdmissionsAcademicLevelID);\r\n this.Abbreviation = ko.validatedObservable(settings.Abbreviation);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.EducationalGoalID = ko.validatedObservable(settings.EducationalGoalID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.EducationalGoal = ko.observable();\r\n this.AdmissionsAcademicLevel = ko.observable();\r\n this.AdmissionsPrograms = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.Degreed != undefined) {\r\n loaded.Degreed(responseData.Degreed);\r\n }\r\n if (responseData.AdmissionsAcademicLevelID != undefined) {\r\n loaded.AdmissionsAcademicLevelID(responseData.AdmissionsAcademicLevelID);\r\n }\r\n if (responseData.Abbreviation != undefined) {\r\n loaded.Abbreviation(responseData.Abbreviation);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.EducationalGoalID != undefined) {\r\n loaded.EducationalGoalID(responseData.EducationalGoalID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.EducationalGoal != null) {\r\n loaded.EducationalGoal(new smapi.academic.EducationalGoalModel().LoadFromResponse(responseData.EducationalGoal));\r\n }\r\n if (responseData.AdmissionsAcademicLevel != null) {\r\n loaded.AdmissionsAcademicLevel(new smapi.admissions.AdmissionsAcademicLevelModel().LoadFromResponse(responseData.AdmissionsAcademicLevel));\r\n }\r\n if (responseData.AdmissionsPrograms != null && responseData.AdmissionsPrograms.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AdmissionsPrograms.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsProgramModel().LoadFromResponse(responseData.AdmissionsPrograms[i]));\r\n }\r\n loaded.AdmissionsPrograms(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.Admissions.Entity.AdmissionsEducationalGoal', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.Degreed.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.AdmissionsAcademicLevelID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Abbreviation.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 10,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '10')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EducationalGoalID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AdmissionsEventTypeModel(options) {\r\n var defaults = {\r\n DataStepID: null,\r\n ClassType: 0,\r\n EventManagementID: 0,\r\n EventTypeDate: null,\r\n Note: '',\r\n PersonID: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.EventManagementID = ko.validatedObservable(settings.EventManagementID);\r\n this.EventTypeDate = ko.validatedObservable(settings.EventTypeDate);\r\n this.Note = ko.validatedObservable(settings.Note);\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.DataStep = ko.observable();\r\n this.Person = ko.observable();\r\n this.EventManagement = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.EventManagementID != undefined) {\r\n loaded.EventManagementID(responseData.EventManagementID);\r\n }\r\n if (responseData.EventTypeDate != undefined) {\r\n loaded.EventTypeDate(responseData.EventTypeDate);\r\n }\r\n if (responseData.Note != undefined) {\r\n loaded.Note(responseData.Note);\r\n }\r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.AdmissionsEventTypeStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.EventManagement != null) {\r\n loaded.EventManagement(new smapi.community.EventManagementModel().LoadFromResponse(responseData.EventManagement));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Admissions.Entity.AdmissionsEventType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EventManagementID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EventTypeDate.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.Note.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AdmissionsEventTypeStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AdmissionsEventTypes = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AdmissionsEventTypes != null && responseData.AdmissionsEventTypes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AdmissionsEventTypes.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsEventTypeModel().LoadFromResponse(responseData.AdmissionsEventTypes[i]));\r\n }\r\n loaded.AdmissionsEventTypes(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.AdmissionsEventTypeStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 AdmissionsModuleSettingsModel(options) {\r\n var defaults = {\r\n ApplicationName: '',\r\n SiteName: '',\r\n UndergradInqRuleSetBeforeWF: '',\r\n UndergradInqRuleSetAfterWF: '',\r\n UndergradInqWF: '',\r\n GradInqRuleSetBeforeWF: '',\r\n GradInqRuleSetAfterWF: '',\r\n GradInqWF: '',\r\n AdmissionsGroupName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ApplicationName = ko.validatedObservable(settings.ApplicationName);\r\n this.SiteName = ko.validatedObservable(settings.SiteName);\r\n this.UndergradInqRuleSetBeforeWF = ko.validatedObservable(settings.UndergradInqRuleSetBeforeWF);\r\n this.UndergradInqRuleSetAfterWF = ko.validatedObservable(settings.UndergradInqRuleSetAfterWF);\r\n this.UndergradInqWF = ko.validatedObservable(settings.UndergradInqWF);\r\n this.GradInqRuleSetBeforeWF = ko.validatedObservable(settings.GradInqRuleSetBeforeWF);\r\n this.GradInqRuleSetAfterWF = ko.validatedObservable(settings.GradInqRuleSetAfterWF);\r\n this.GradInqWF = ko.validatedObservable(settings.GradInqWF);\r\n this.AdmissionsGroupName = ko.validatedObservable(settings.AdmissionsGroupName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ApplicationName != undefined) {\r\n loaded.ApplicationName(responseData.ApplicationName);\r\n }\r\n if (responseData.SiteName != undefined) {\r\n loaded.SiteName(responseData.SiteName);\r\n }\r\n if (responseData.UndergradInqRuleSetBeforeWF != undefined) {\r\n loaded.UndergradInqRuleSetBeforeWF(responseData.UndergradInqRuleSetBeforeWF);\r\n }\r\n if (responseData.UndergradInqRuleSetAfterWF != undefined) {\r\n loaded.UndergradInqRuleSetAfterWF(responseData.UndergradInqRuleSetAfterWF);\r\n }\r\n if (responseData.UndergradInqWF != undefined) {\r\n loaded.UndergradInqWF(responseData.UndergradInqWF);\r\n }\r\n if (responseData.GradInqRuleSetBeforeWF != undefined) {\r\n loaded.GradInqRuleSetBeforeWF(responseData.GradInqRuleSetBeforeWF);\r\n }\r\n if (responseData.GradInqRuleSetAfterWF != undefined) {\r\n loaded.GradInqRuleSetAfterWF(responseData.GradInqRuleSetAfterWF);\r\n }\r\n if (responseData.GradInqWF != undefined) {\r\n loaded.GradInqWF(responseData.GradInqWF);\r\n }\r\n if (responseData.AdmissionsGroupName != undefined) {\r\n loaded.AdmissionsGroupName(responseData.AdmissionsGroupName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.Admissions.Entity.AdmissionsModuleSettings', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ApplicationName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.SiteName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.UndergradInqRuleSetBeforeWF.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.UndergradInqRuleSetAfterWF.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.UndergradInqWF.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.GradInqRuleSetBeforeWF.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.GradInqRuleSetAfterWF.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.GradInqWF.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.AdmissionsGroupName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AdmissionsPaymentInformationModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n PaymentMethodID: null,\r\n Paid: false,\r\n PaymentDate: null,\r\n DataStepID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.PaymentMethodID = ko.validatedObservable(settings.PaymentMethodID);\r\n this.Paid = ko.validatedObservable(settings.Paid);\r\n this.PaymentDate = ko.validatedObservable(settings.PaymentDate);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.DataStep = ko.observable();\r\n this.AccountTransactions = ko.observableArray([]);\r\n this.PaymentMethod = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.PaymentMethodID != undefined) {\r\n loaded.PaymentMethodID(responseData.PaymentMethodID);\r\n }\r\n if (responseData.Paid != undefined) {\r\n loaded.Paid(responseData.Paid);\r\n }\r\n if (responseData.PaymentDate != undefined) {\r\n loaded.PaymentDate(responseData.PaymentDate);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.AdmissionsPaymentInformationStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n if (responseData.AccountTransactions != null && responseData.AccountTransactions.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AccountTransactions.length; i++) {\r\n items.push(new smapi.financials.TransactionLedgerModel().LoadFromResponse(responseData.AccountTransactions[i]));\r\n }\r\n loaded.AccountTransactions(items);\r\n }\r\n if (responseData.PaymentMethod != null) {\r\n loaded.PaymentMethod(new smapi.financials.PaymentMethodModel().LoadFromResponse(responseData.PaymentMethod));\r\n }\r\n return loaded;\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.Admissions.Entity.AdmissionsPaymentInformation', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PaymentMethodID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Paid.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.PaymentDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 AdmissionsPaymentInformationStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AdmissionsPaymentInformationDetails = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AdmissionsPaymentInformationDetails != null && responseData.AdmissionsPaymentInformationDetails.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AdmissionsPaymentInformationDetails.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsPaymentInformationModel().LoadFromResponse(responseData.AdmissionsPaymentInformationDetails[i]));\r\n }\r\n loaded.AdmissionsPaymentInformationDetails(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.AdmissionsPaymentInformationStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 AdmissionsPeriodModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n PeriodID: null,\r\n StartDate: null,\r\n EndDate: null,\r\n ActivePortal: false,\r\n SortOrder: '',\r\n EnrollmentYieldLower: 0,\r\n EnrollmentYieldUpper: 0,\r\n AcademicYear: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.PeriodID = ko.validatedObservable(settings.PeriodID);\r\n this.StartDate = ko.validatedObservable(settings.StartDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.ActivePortal = ko.validatedObservable(settings.ActivePortal);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.EnrollmentYieldLower = ko.validatedObservable(settings.EnrollmentYieldLower);\r\n this.EnrollmentYieldUpper = ko.validatedObservable(settings.EnrollmentYieldUpper);\r\n this.AcademicYear = ko.validatedObservable(settings.AcademicYear);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Period = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.PeriodID != undefined) {\r\n loaded.PeriodID(responseData.PeriodID);\r\n }\r\n if (responseData.StartDate != undefined) {\r\n loaded.StartDate(responseData.StartDate);\r\n }\r\n if (responseData.EndDate != undefined) {\r\n loaded.EndDate(responseData.EndDate);\r\n }\r\n if (responseData.ActivePortal != undefined) {\r\n loaded.ActivePortal(responseData.ActivePortal);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.EnrollmentYieldLower != undefined) {\r\n loaded.EnrollmentYieldLower(responseData.EnrollmentYieldLower);\r\n }\r\n if (responseData.EnrollmentYieldUpper != undefined) {\r\n loaded.EnrollmentYieldUpper(responseData.EnrollmentYieldUpper);\r\n }\r\n if (responseData.AcademicYear != undefined) {\r\n loaded.AcademicYear(responseData.AcademicYear);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Period != null) {\r\n loaded.Period(new smapi.community.PeriodModel().LoadFromResponse(responseData.Period));\r\n }\r\n return loaded;\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.Admissions.Entity.AdmissionsPeriod', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.PeriodID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StartDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.EndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ActivePortal.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 maxLength: {\r\n params: 12,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '12')\r\n }\r\n });\r\n this.EnrollmentYieldLower.extend({\r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EnrollmentYieldUpper.extend({\r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AcademicYear.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.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 AdmissionsProcessStageModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n Required: false,\r\n CopyStatusBetweenSteps: false,\r\n CopyExtDataBetweenSteps: false,\r\n ApplicantShouldHaveAccess: false,\r\n AdHoc: false,\r\n AllowProgressOverride: false,\r\n ExternalStage: false,\r\n PortalStepID: null,\r\n InclusionRuleSetID: null,\r\n ProgressRuleSetID: null,\r\n NavigatorScreenPath: '',\r\n EntityID: 0,\r\n StepDataEntityID: null,\r\n DocumentTypeID: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.Required = ko.validatedObservable(settings.Required);\r\n this.CopyStatusBetweenSteps = ko.validatedObservable(settings.CopyStatusBetweenSteps);\r\n this.CopyExtDataBetweenSteps = ko.validatedObservable(settings.CopyExtDataBetweenSteps);\r\n this.ApplicantShouldHaveAccess = ko.validatedObservable(settings.ApplicantShouldHaveAccess);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.AllowProgressOverride = ko.validatedObservable(settings.AllowProgressOverride);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.PortalStepID = ko.validatedObservable(settings.PortalStepID);\r\n this.InclusionRuleSetID = ko.validatedObservable(settings.InclusionRuleSetID);\r\n this.ProgressRuleSetID = ko.validatedObservable(settings.ProgressRuleSetID);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.EntityID = ko.validatedObservable(settings.EntityID);\r\n this.StepDataEntityID = ko.validatedObservable(settings.StepDataEntityID);\r\n this.DocumentTypeID = ko.validatedObservable(settings.DocumentTypeID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AdmissionsPrograms = ko.observableArray([]);\r\n this.Prerequisites = ko.observableArray([]);\r\n this.AdmissionsProcessStageAttributes = ko.observableArray([]);\r\n this.DocumentType = ko.observable();\r\n this.PortalStep = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.Required != undefined) {\r\n loaded.Required(responseData.Required);\r\n }\r\n if (responseData.CopyStatusBetweenSteps != undefined) {\r\n loaded.CopyStatusBetweenSteps(responseData.CopyStatusBetweenSteps);\r\n }\r\n if (responseData.CopyExtDataBetweenSteps != undefined) {\r\n loaded.CopyExtDataBetweenSteps(responseData.CopyExtDataBetweenSteps);\r\n }\r\n if (responseData.ApplicantShouldHaveAccess != undefined) {\r\n loaded.ApplicantShouldHaveAccess(responseData.ApplicantShouldHaveAccess);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.AllowProgressOverride != undefined) {\r\n loaded.AllowProgressOverride(responseData.AllowProgressOverride);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.PortalStepID != undefined) {\r\n loaded.PortalStepID(responseData.PortalStepID);\r\n }\r\n if (responseData.InclusionRuleSetID != undefined) {\r\n loaded.InclusionRuleSetID(responseData.InclusionRuleSetID);\r\n }\r\n if (responseData.ProgressRuleSetID != undefined) {\r\n loaded.ProgressRuleSetID(responseData.ProgressRuleSetID);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.EntityID != undefined) {\r\n loaded.EntityID(responseData.EntityID);\r\n }\r\n if (responseData.StepDataEntityID != undefined) {\r\n loaded.StepDataEntityID(responseData.StepDataEntityID);\r\n }\r\n if (responseData.DocumentTypeID != undefined) {\r\n loaded.DocumentTypeID(responseData.DocumentTypeID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AdmissionsPrograms != null && responseData.AdmissionsPrograms.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AdmissionsPrograms.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsProgramModel().LoadFromResponse(responseData.AdmissionsPrograms[i]));\r\n }\r\n loaded.AdmissionsPrograms(items);\r\n }\r\n if (responseData.Prerequisites != null && responseData.Prerequisites.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Prerequisites.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsProcessStagePrerequisiteModel().LoadFromResponse(responseData.Prerequisites[i]));\r\n }\r\n loaded.Prerequisites(items);\r\n }\r\n if (responseData.AdmissionsProcessStageAttributes != null && responseData.AdmissionsProcessStageAttributes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AdmissionsProcessStageAttributes.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsProcessStageAttributesModel().LoadFromResponse(responseData.AdmissionsProcessStageAttributes[i]));\r\n }\r\n loaded.AdmissionsProcessStageAttributes(items);\r\n }\r\n if (responseData.DocumentType != null) {\r\n loaded.DocumentType(new smapi.community.DocumentTypeModel().LoadFromResponse(responseData.DocumentType));\r\n }\r\n if (responseData.PortalStep != null) {\r\n loaded.PortalStep(new smapi.admissions.PortalStepModel().LoadFromResponse(responseData.PortalStep));\r\n }\r\n return loaded;\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.Admissions.Entity.AdmissionsProcessStage', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Required.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.CopyStatusBetweenSteps.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.CopyExtDataBetweenSteps.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ApplicantShouldHaveAccess.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.AllowProgressOverride.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.PortalStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.ProgressRuleSetID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.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.StepDataEntityID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DocumentTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.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 AdmissionsProcessStageAttributesModel(options) {\r\n var defaults = {\r\n AdmissionsProcessStageID: 0,\r\n EntityFieldID: 0,\r\n Visibility: 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.AdmissionsProcessStageID = ko.validatedObservable(settings.AdmissionsProcessStageID);\r\n this.EntityFieldID = ko.validatedObservable(settings.EntityFieldID);\r\n this.Visibility = ko.validatedObservable(settings.Visibility);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AdmissionsProcessStage = ko.observable();\r\n this.ApplicationEvaluationWeight = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.AdmissionsProcessStageID != undefined) {\r\n loaded.AdmissionsProcessStageID(responseData.AdmissionsProcessStageID);\r\n }\r\n if (responseData.EntityFieldID != undefined) {\r\n loaded.EntityFieldID(responseData.EntityFieldID);\r\n }\r\n if (responseData.Visibility != undefined) {\r\n loaded.Visibility(responseData.Visibility);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AdmissionsProcessStage != null) {\r\n loaded.AdmissionsProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.AdmissionsProcessStage));\r\n }\r\n if (responseData.ApplicationEvaluationWeight != null && responseData.ApplicationEvaluationWeight.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ApplicationEvaluationWeight.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationWeightModel().LoadFromResponse(responseData.ApplicationEvaluationWeight[i]));\r\n }\r\n loaded.ApplicationEvaluationWeight(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.Admissions.Entity.AdmissionsProcessStageAttributes', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.AdmissionsProcessStageID.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.EntityFieldID.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.Visibility.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 AdmissionsProcessStageBehaviorModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n NavigatorScreenPath: '',\r\n AdmissionsProcessStageID: 0,\r\n AdmissionsTypeID: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.AdmissionsProcessStageID = ko.validatedObservable(settings.AdmissionsProcessStageID);\r\n this.AdmissionsTypeID = ko.validatedObservable(settings.AdmissionsTypeID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AdmissionsProcessStage = ko.observable();\r\n this.AdmissionsType = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.AdmissionsProcessStageID != undefined) {\r\n loaded.AdmissionsProcessStageID(responseData.AdmissionsProcessStageID);\r\n }\r\n if (responseData.AdmissionsTypeID != undefined) {\r\n loaded.AdmissionsTypeID(responseData.AdmissionsTypeID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AdmissionsProcessStage != null) {\r\n loaded.AdmissionsProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.AdmissionsProcessStage));\r\n }\r\n if (responseData.AdmissionsType != null) {\r\n loaded.AdmissionsType(new smapi.admissions.AdmissionsTypeModel().LoadFromResponse(responseData.AdmissionsType));\r\n }\r\n return loaded;\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.Admissions.Entity.AdmissionsProcessStageBehavior', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.AdmissionsProcessStageID.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.AdmissionsTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AdmissionsProcessStagePrerequisiteModel(options) {\r\n var defaults = {\r\n ProgressRuleSet: null,\r\n RequiredAdmissionsProcessStageID: null,\r\n DependentAdmissionsProcessStageID: null,\r\n ParentAdmissionsProcessStageID: 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.ProgressRuleSet = ko.validatedObservable(settings.ProgressRuleSet);\r\n this.RequiredAdmissionsProcessStageID = ko.validatedObservable(settings.RequiredAdmissionsProcessStageID);\r\n this.DependentAdmissionsProcessStageID = ko.validatedObservable(settings.DependentAdmissionsProcessStageID);\r\n this.ParentAdmissionsProcessStageID = ko.validatedObservable(settings.ParentAdmissionsProcessStageID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.ParentAdmissionsProcessStage = ko.observable();\r\n this.RequiredAdmissionsProcessStage = ko.observable();\r\n this.DependentAdmissionsProcessStage = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ProgressRuleSet != undefined) {\r\n loaded.ProgressRuleSet(responseData.ProgressRuleSet);\r\n }\r\n if (responseData.RequiredAdmissionsProcessStageID != undefined) {\r\n loaded.RequiredAdmissionsProcessStageID(responseData.RequiredAdmissionsProcessStageID);\r\n }\r\n if (responseData.DependentAdmissionsProcessStageID != undefined) {\r\n loaded.DependentAdmissionsProcessStageID(responseData.DependentAdmissionsProcessStageID);\r\n }\r\n if (responseData.ParentAdmissionsProcessStageID != undefined) {\r\n loaded.ParentAdmissionsProcessStageID(responseData.ParentAdmissionsProcessStageID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.ParentAdmissionsProcessStage != null) {\r\n loaded.ParentAdmissionsProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ParentAdmissionsProcessStage));\r\n }\r\n if (responseData.RequiredAdmissionsProcessStage != null) {\r\n loaded.RequiredAdmissionsProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.RequiredAdmissionsProcessStage));\r\n }\r\n if (responseData.DependentAdmissionsProcessStage != null) {\r\n loaded.DependentAdmissionsProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.DependentAdmissionsProcessStage));\r\n }\r\n return loaded;\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.Admissions.Entity.AdmissionsProcessStagePrerequisite', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ProgressRuleSet.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.RequiredAdmissionsProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DependentAdmissionsProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ParentAdmissionsProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 AdmissionsProgramModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n ProgramID: '',\r\n ProgramStatusID: null,\r\n ApprovedDate: null,\r\n EffectiveDateFrom: null,\r\n EffectiveDateTo: null,\r\n DivisionID: null,\r\n DeliveryMethodID: null,\r\n ProgramLength: 0,\r\n UnitLength: null,\r\n WeightFactor: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.ProgramID = ko.validatedObservable(settings.ProgramID);\r\n this.ProgramStatusID = ko.validatedObservable(settings.ProgramStatusID);\r\n this.ApprovedDate = ko.validatedObservable(settings.ApprovedDate);\r\n this.EffectiveDateFrom = ko.validatedObservable(settings.EffectiveDateFrom);\r\n this.EffectiveDateTo = ko.validatedObservable(settings.EffectiveDateTo);\r\n this.DivisionID = ko.validatedObservable(settings.DivisionID);\r\n this.DeliveryMethodID = ko.validatedObservable(settings.DeliveryMethodID);\r\n this.ProgramLength = ko.validatedObservable(settings.ProgramLength);\r\n this.UnitLength = ko.validatedObservable(settings.UnitLength);\r\n this.WeightFactor = ko.validatedObservable(settings.WeightFactor);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.DeliveryMethod = ko.observable();\r\n this.Division = ko.observable();\r\n this.AdmissionsProcessStages = ko.observableArray([]);\r\n this.Campuses = ko.observableArray([]);\r\n this.Goals = ko.observableArray([]);\r\n this.AdmissionsOfferStages = ko.observableArray([]);\r\n this.ProgramStatus = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.ProgramID != undefined) {\r\n loaded.ProgramID(responseData.ProgramID);\r\n }\r\n if (responseData.ProgramStatusID != undefined) {\r\n loaded.ProgramStatusID(responseData.ProgramStatusID);\r\n }\r\n if (responseData.ApprovedDate != undefined) {\r\n loaded.ApprovedDate(responseData.ApprovedDate);\r\n }\r\n if (responseData.EffectiveDateFrom != undefined) {\r\n loaded.EffectiveDateFrom(responseData.EffectiveDateFrom);\r\n }\r\n if (responseData.EffectiveDateTo != undefined) {\r\n loaded.EffectiveDateTo(responseData.EffectiveDateTo);\r\n }\r\n if (responseData.DivisionID != undefined) {\r\n loaded.DivisionID(responseData.DivisionID);\r\n }\r\n if (responseData.DeliveryMethodID != undefined) {\r\n loaded.DeliveryMethodID(responseData.DeliveryMethodID);\r\n }\r\n if (responseData.ProgramLength != undefined) {\r\n loaded.ProgramLength(responseData.ProgramLength);\r\n }\r\n if (responseData.UnitLength != undefined) {\r\n loaded.UnitLength(responseData.UnitLength);\r\n }\r\n if (responseData.WeightFactor != undefined) {\r\n loaded.WeightFactor(responseData.WeightFactor);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.DeliveryMethod != null) {\r\n loaded.DeliveryMethod(new smapi.academic.AcademicDeliveryMethodModel().LoadFromResponse(responseData.DeliveryMethod));\r\n }\r\n if (responseData.Division != null) {\r\n loaded.Division(new smapi.academic.DivisionModel().LoadFromResponse(responseData.Division));\r\n }\r\n if (responseData.AdmissionsProcessStages != null && responseData.AdmissionsProcessStages.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AdmissionsProcessStages.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.AdmissionsProcessStages[i]));\r\n }\r\n loaded.AdmissionsProcessStages(items);\r\n }\r\n if (responseData.Campuses != null && responseData.Campuses.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Campuses.length; i++) {\r\n items.push(new smapi.facility.CampusModel().LoadFromResponse(responseData.Campuses[i]));\r\n }\r\n loaded.Campuses(items);\r\n }\r\n if (responseData.Goals != null && responseData.Goals.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Goals.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsEducationalGoalModel().LoadFromResponse(responseData.Goals[i]));\r\n }\r\n loaded.Goals(items);\r\n }\r\n if (responseData.AdmissionsProgramOfferingFlowDefinitions != null && responseData.AdmissionsProgramOfferingFlowDefinitions.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AdmissionsProgramOfferingFlowDefinitions.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsStageModel().LoadFromResponse(responseData.AdmissionsProgramOfferingFlowDefinitions[i].AdmissionsOfferStage));\r\n }\r\n loaded.AdmissionsOfferStages(items);\r\n }\r\n if (responseData.ProgramStatus != null) {\r\n loaded.ProgramStatus(new smapi.academic.ProgramStatusModel().LoadFromResponse(responseData.ProgramStatus));\r\n }\r\n return loaded;\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.Admissions.Entity.AdmissionsProgram', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ProgramID.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.ProgramStatusID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ApprovedDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.EffectiveDateFrom.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.EffectiveDateTo.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.DivisionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DeliveryMethodID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ProgramLength.extend({\r\n min: {\r\n params: -32768,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 32767,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.WeightFactor.extend({\r\n min: {\r\n params: 0,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_GreaterThan0_Key), '0')\r\n }, \r\n max: {\r\n params: 0,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_LessThan0_Key), '0')\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AdmissionsProgramOfferingModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n AdmissionsAcademicLevelID: null,\r\n GroupAcademicLevelID: null,\r\n AdmissionCohortID: null,\r\n PeriodBased: false,\r\n AvailableStart: null,\r\n AvailableEnd: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.AdmissionsAcademicLevelID = ko.validatedObservable(settings.AdmissionsAcademicLevelID);\r\n this.GroupAcademicLevelID = ko.validatedObservable(settings.GroupAcademicLevelID);\r\n this.AdmissionCohortID = ko.validatedObservable(settings.AdmissionCohortID);\r\n this.PeriodBased = ko.validatedObservable(settings.PeriodBased);\r\n this.AvailableStart = ko.validatedObservable(settings.AvailableStart);\r\n this.AvailableEnd = ko.validatedObservable(settings.AvailableEnd);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.GroupAcademicLevel = ko.observable();\r\n this.ExternalIDs = ko.observableArray([]);\r\n this.AssignPeriodTypes = ko.observableArray([]);\r\n this.DeliveryMethods = ko.observableArray([]);\r\n this.Items = ko.observableArray([]);\r\n this.AcademicLevel = ko.observable();\r\n this.Campuses = ko.observableArray([]);\r\n this.AdmissionsCohort = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.AdmissionsAcademicLevelID != undefined) {\r\n loaded.AdmissionsAcademicLevelID(responseData.AdmissionsAcademicLevelID);\r\n }\r\n if (responseData.GroupAcademicLevelID != undefined) {\r\n loaded.GroupAcademicLevelID(responseData.GroupAcademicLevelID);\r\n }\r\n if (responseData.AdmissionCohortID != undefined) {\r\n loaded.AdmissionCohortID(responseData.AdmissionCohortID);\r\n }\r\n if (responseData.PeriodBased != undefined) {\r\n loaded.PeriodBased(responseData.PeriodBased);\r\n }\r\n if (responseData.AvailableStart != undefined) {\r\n loaded.AvailableStart(responseData.AvailableStart);\r\n }\r\n if (responseData.AvailableEnd != undefined) {\r\n loaded.AvailableEnd(responseData.AvailableEnd);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.GroupAcademicLevel != null) {\r\n loaded.GroupAcademicLevel(new smapi.admissions.AdmissionsAcademicLevelModel().LoadFromResponse(responseData.GroupAcademicLevel));\r\n }\r\n if (responseData.ExternalIDs != null && responseData.ExternalIDs.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalIDs.length; i++) {\r\n items.push(new smapi.admissions.ExternalAdmissionsProgramOfferingIDModel().LoadFromResponse(responseData.ExternalIDs[i]));\r\n }\r\n loaded.ExternalIDs(items);\r\n }\r\n if (responseData.AssignPeriodTypes != null && responseData.AssignPeriodTypes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AssignPeriodTypes.length; i++) {\r\n items.push(new smapi.academic.AcademicPeriodTypeModel().LoadFromResponse(responseData.AssignPeriodTypes[i]));\r\n }\r\n loaded.AssignPeriodTypes(items);\r\n }\r\n if (responseData.DeliveryMethods != null && responseData.DeliveryMethods.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.DeliveryMethods.length; i++) {\r\n items.push(new smapi.academic.AcademicDeliveryMethodModel().LoadFromResponse(responseData.DeliveryMethods[i]));\r\n }\r\n loaded.DeliveryMethods(items);\r\n }\r\n if (responseData.Items != null && responseData.Items.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Items.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsProgramOfferingItemModel().LoadFromResponse(responseData.Items[i]));\r\n }\r\n loaded.Items(items);\r\n }\r\n if (responseData.AcademicLevel != null) {\r\n loaded.AcademicLevel(new smapi.admissions.AdmissionsAcademicLevelModel().LoadFromResponse(responseData.AcademicLevel));\r\n }\r\n if (responseData.Campuses != null && responseData.Campuses.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Campuses.length; i++) {\r\n items.push(new smapi.facility.CampusModel().LoadFromResponse(responseData.Campuses[i]));\r\n }\r\n loaded.Campuses(items);\r\n }\r\n if (responseData.AdmissionsCohort != null) {\r\n loaded.AdmissionsCohort(new smapi.admissions.AdmissionsCohortModel().LoadFromResponse(responseData.AdmissionsCohort));\r\n }\r\n return loaded;\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.Admissions.Entity.AdmissionsProgramOffering', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.AdmissionsAcademicLevelID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GroupAcademicLevelID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AdmissionCohortID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AvailableStart.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AvailableEnd.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 AdmissionsProgramOfferingItemModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n AdmissionsAcademicLevelID: null,\r\n ApplicationGoalID: null,\r\n AdmissionProgramID: null,\r\n DivisionID: null,\r\n TypeID: null,\r\n AcademicProgramID: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.AdmissionsAcademicLevelID = ko.validatedObservable(settings.AdmissionsAcademicLevelID);\r\n this.ApplicationGoalID = ko.validatedObservable(settings.ApplicationGoalID);\r\n this.AdmissionProgramID = ko.validatedObservable(settings.AdmissionProgramID);\r\n this.DivisionID = ko.validatedObservable(settings.DivisionID);\r\n this.TypeID = ko.validatedObservable(settings.TypeID);\r\n this.AcademicProgramID = ko.validatedObservable(settings.AcademicProgramID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AcademicProgram = ko.observable();\r\n this.Division = ko.observable();\r\n this.ExternalIDs = ko.observableArray([]);\r\n this.AcademicLevel = ko.observable();\r\n this.AdmissionProgram = ko.observable();\r\n this.ApplicationGoal = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.AdmissionsAcademicLevelID != undefined) {\r\n loaded.AdmissionsAcademicLevelID(responseData.AdmissionsAcademicLevelID);\r\n }\r\n if (responseData.ApplicationGoalID != undefined) {\r\n loaded.ApplicationGoalID(responseData.ApplicationGoalID);\r\n }\r\n if (responseData.AdmissionProgramID != undefined) {\r\n loaded.AdmissionProgramID(responseData.AdmissionProgramID);\r\n }\r\n if (responseData.DivisionID != undefined) {\r\n loaded.DivisionID(responseData.DivisionID);\r\n }\r\n if (responseData.TypeID != undefined) {\r\n loaded.TypeID(responseData.TypeID);\r\n }\r\n if (responseData.AcademicProgramID != undefined) {\r\n loaded.AcademicProgramID(responseData.AcademicProgramID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AcademicProgram != null) {\r\n loaded.AcademicProgram(new smapi.academic.AcademicProgramModel().LoadFromResponse(responseData.AcademicProgram));\r\n }\r\n if (responseData.Division != null) {\r\n loaded.Division(new smapi.academic.DivisionModel().LoadFromResponse(responseData.Division));\r\n }\r\n if (responseData.ExternalIDs != null && responseData.ExternalIDs.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalIDs.length; i++) {\r\n items.push(new smapi.admissions.ExternalAdmissionsProgramOfferingItemIDModel().LoadFromResponse(responseData.ExternalIDs[i]));\r\n }\r\n loaded.ExternalIDs(items);\r\n }\r\n if (responseData.AcademicLevel != null) {\r\n loaded.AcademicLevel(new smapi.admissions.AdmissionsAcademicLevelModel().LoadFromResponse(responseData.AcademicLevel));\r\n }\r\n if (responseData.AdmissionProgram != null) {\r\n loaded.AdmissionProgram(new smapi.admissions.AdmissionsProgramModel().LoadFromResponse(responseData.AdmissionProgram));\r\n }\r\n if (responseData.ApplicationGoal != null) {\r\n loaded.ApplicationGoal(new smapi.admissions.AdmissionsEducationalGoalModel().LoadFromResponse(responseData.ApplicationGoal));\r\n }\r\n return loaded;\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.Admissions.Entity.AdmissionsProgramOfferingItem', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.AdmissionsAcademicLevelID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ApplicationGoalID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AdmissionProgramID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DivisionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AcademicProgramID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AdmissionsRankingListModel(options) {\r\n var defaults = {\r\n GenerationDate: null,\r\n ApplicationEvaluationSetupID: 0,\r\n AdmissionsPeriodID: 0,\r\n AdmissionsProgramID: 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.GenerationDate = ko.validatedObservable(settings.GenerationDate);\r\n this.ApplicationEvaluationSetupID = ko.validatedObservable(settings.ApplicationEvaluationSetupID);\r\n this.AdmissionsPeriodID = ko.validatedObservable(settings.AdmissionsPeriodID);\r\n this.AdmissionsProgramID = ko.validatedObservable(settings.AdmissionsProgramID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.ApplicationEvaluationSetup = ko.observable();\r\n this.AdmissionsPeriod = ko.observable();\r\n this.AdmissionsProgram = ko.observable();\r\n this.AdmissionsApplicationRanks = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.GenerationDate != undefined) {\r\n loaded.GenerationDate(responseData.GenerationDate);\r\n }\r\n if (responseData.ApplicationEvaluationSetupID != undefined) {\r\n loaded.ApplicationEvaluationSetupID(responseData.ApplicationEvaluationSetupID);\r\n }\r\n if (responseData.AdmissionsPeriodID != undefined) {\r\n loaded.AdmissionsPeriodID(responseData.AdmissionsPeriodID);\r\n }\r\n if (responseData.AdmissionsProgramID != undefined) {\r\n loaded.AdmissionsProgramID(responseData.AdmissionsProgramID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.ApplicationEvaluationSetup != null) {\r\n loaded.ApplicationEvaluationSetup(new smapi.admissions.ApplicationEvaluationSetupModel().LoadFromResponse(responseData.ApplicationEvaluationSetup));\r\n }\r\n if (responseData.AdmissionsPeriod != null) {\r\n loaded.AdmissionsPeriod(new smapi.admissions.AdmissionsPeriodModel().LoadFromResponse(responseData.AdmissionsPeriod));\r\n }\r\n if (responseData.AdmissionsProgram != null) {\r\n loaded.AdmissionsProgram(new smapi.admissions.AdmissionsProgramModel().LoadFromResponse(responseData.AdmissionsProgram));\r\n }\r\n if (responseData.AdmissionsApplicationRanks != null && responseData.AdmissionsApplicationRanks.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AdmissionsApplicationRanks.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsApplicationRankModel().LoadFromResponse(responseData.AdmissionsApplicationRanks[i]));\r\n }\r\n loaded.AdmissionsApplicationRanks(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.Admissions.Entity.AdmissionsRankingList', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.GenerationDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ApplicationEvaluationSetupID.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.AdmissionsPeriodID.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.AdmissionsProgramID.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 AdmissionsStageModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n AllowForImport: false,\r\n FinancialAid: false,\r\n Milestone: false,\r\n CreateStudent: false,\r\n AdmissionsStageStatusID: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.AllowForImport = ko.validatedObservable(settings.AllowForImport);\r\n this.FinancialAid = ko.validatedObservable(settings.FinancialAid);\r\n this.Milestone = ko.validatedObservable(settings.Milestone);\r\n this.CreateStudent = ko.validatedObservable(settings.CreateStudent);\r\n this.AdmissionsStageStatusID = ko.validatedObservable(settings.AdmissionsStageStatusID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AdmissionsTypes = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.AllowForImport != undefined) {\r\n loaded.AllowForImport(responseData.AllowForImport);\r\n }\r\n if (responseData.FinancialAid != undefined) {\r\n loaded.FinancialAid(responseData.FinancialAid);\r\n }\r\n if (responseData.Milestone != undefined) {\r\n loaded.Milestone(responseData.Milestone);\r\n }\r\n if (responseData.CreateStudent != undefined) {\r\n loaded.CreateStudent(responseData.CreateStudent);\r\n }\r\n if (responseData.AdmissionsStageStatusID != undefined) {\r\n loaded.AdmissionsStageStatusID(responseData.AdmissionsStageStatusID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AdmissionsTypes != null && responseData.AdmissionsTypes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AdmissionsTypes.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsTypeModel().LoadFromResponse(responseData.AdmissionsTypes[i]));\r\n }\r\n loaded.AdmissionsTypes(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.Admissions.Entity.AdmissionsStage', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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: 250,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '250')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 250,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '250')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AllowForImport.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.FinancialAid.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.AdmissionsStageStatusID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AdmissionsTestNameModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Admissions.Entity.AdmissionsTestName', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AdmissionsTestStatusModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Admissions.Entity.AdmissionsTestStatus', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AdmissionsTestSubjectModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Admissions.Entity.AdmissionsTestSubject', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AdmissionsTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n AdmissionsStageStatusID: null,\r\n AdmissionsAcademicLevelID: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.AdmissionsStageStatusID = ko.validatedObservable(settings.AdmissionsStageStatusID);\r\n this.AdmissionsAcademicLevelID = ko.validatedObservable(settings.AdmissionsAcademicLevelID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.OverriddenBehaviors = ko.observableArray([]);\r\n this.AdmissionsAcademicLevel = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.AdmissionsStageStatusID != undefined) {\r\n loaded.AdmissionsStageStatusID(responseData.AdmissionsStageStatusID);\r\n }\r\n if (responseData.AdmissionsAcademicLevelID != undefined) {\r\n loaded.AdmissionsAcademicLevelID(responseData.AdmissionsAcademicLevelID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.OverriddenBehaviors != null && responseData.OverriddenBehaviors.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.OverriddenBehaviors.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsProcessStageBehaviorModel().LoadFromResponse(responseData.OverriddenBehaviors[i]));\r\n }\r\n loaded.OverriddenBehaviors(items);\r\n }\r\n if (responseData.AdmissionsAcademicLevel != null) {\r\n loaded.AdmissionsAcademicLevel(new smapi.admissions.AdmissionsAcademicLevelModel().LoadFromResponse(responseData.AdmissionsAcademicLevel));\r\n }\r\n return loaded;\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.Admissions.Entity.AdmissionsType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.AdmissionsStageStatusID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AdmissionsAcademicLevelID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 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 ApplicationAthleticProgramsModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n PlanOnParticipating: false,\r\n IsAthlete: false,\r\n HasBeenEvaluated: false,\r\n AthleteSetDate: null,\r\n AthleteSetByPersonID: null,\r\n Requirement48C: false,\r\n ProspectiveAthlete: false,\r\n DataStepID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.PlanOnParticipating = ko.validatedObservable(settings.PlanOnParticipating);\r\n this.IsAthlete = ko.validatedObservable(settings.IsAthlete);\r\n this.HasBeenEvaluated = ko.validatedObservable(settings.HasBeenEvaluated);\r\n this.AthleteSetDate = ko.validatedObservable(settings.AthleteSetDate);\r\n this.AthleteSetByPersonID = ko.validatedObservable(settings.AthleteSetByPersonID);\r\n this.Requirement48C = ko.validatedObservable(settings.Requirement48C);\r\n this.ProspectiveAthlete = ko.validatedObservable(settings.ProspectiveAthlete);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.DataStep = ko.observable();\r\n this.AthleteSetByPerson = ko.observable();\r\n this.AthleticProgram = ko.observableArray([]);\r\n this.EligibilityCenter = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.PlanOnParticipating != undefined) {\r\n loaded.PlanOnParticipating(responseData.PlanOnParticipating);\r\n }\r\n if (responseData.IsAthlete != undefined) {\r\n loaded.IsAthlete(responseData.IsAthlete);\r\n }\r\n if (responseData.HasBeenEvaluated != undefined) {\r\n loaded.HasBeenEvaluated(responseData.HasBeenEvaluated);\r\n }\r\n if (responseData.AthleteSetDate != undefined) {\r\n loaded.AthleteSetDate(responseData.AthleteSetDate);\r\n }\r\n if (responseData.AthleteSetByPersonID != undefined) {\r\n loaded.AthleteSetByPersonID(responseData.AthleteSetByPersonID);\r\n }\r\n if (responseData.Requirement48C != undefined) {\r\n loaded.Requirement48C(responseData.Requirement48C);\r\n }\r\n if (responseData.ProspectiveAthlete != undefined) {\r\n loaded.ProspectiveAthlete(responseData.ProspectiveAthlete);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.ApplicationAthleticProgramsStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n if (responseData.AthleteSetByPerson != null) {\r\n loaded.AthleteSetByPerson(new smapi.community.PersonModel().LoadFromResponse(responseData.AthleteSetByPerson));\r\n }\r\n if (responseData.AthleticProgram != null && responseData.AthleticProgram.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AthleticProgram.length; i++) {\r\n items.push(new smapi.admissions.AthleticProgramModel().LoadFromResponse(responseData.AthleticProgram[i]));\r\n }\r\n loaded.AthleticProgram(items);\r\n }\r\n if (responseData.EligibilityCenter != null && responseData.EligibilityCenter.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.EligibilityCenter.length; i++) {\r\n items.push(new smapi.academic.AthleticEligibilityCenterModel().LoadFromResponse(responseData.EligibilityCenter[i]));\r\n }\r\n loaded.EligibilityCenter(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.Admissions.Entity.ApplicationAthleticPrograms', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PlanOnParticipating.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.IsAthlete.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.HasBeenEvaluated.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.AthleteSetDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AthleteSetByPersonID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ProspectiveAthlete.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 ApplicationAthleticProgramsStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.ApplicationAthleticPrograms = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.ApplicationAthleticPrograms != null && responseData.ApplicationAthleticPrograms.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ApplicationAthleticPrograms.length; i++) {\r\n items.push(new smapi.admissions.ApplicationAthleticProgramsModel().LoadFromResponse(responseData.ApplicationAthleticPrograms[i]));\r\n }\r\n loaded.ApplicationAthleticPrograms(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.ApplicationAthleticProgramsStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 ApplicationEvaluationModel(options) {\r\n var defaults = {\r\n AdmissionsAttemptID: 0,\r\n AdmissionsProgramID: 0,\r\n StatusID: 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.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.AdmissionsProgramID = ko.validatedObservable(settings.AdmissionsProgramID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AdmissionsAttempt = ko.observable();\r\n this.AdmissionProgram = ko.observable();\r\n this.ApplicationEvaluationComments = ko.observableArray([]);\r\n this.ApplicationEvaluationReviewerStatus = ko.observableArray([]);\r\n this.ApplicationEvaluationStatus = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.AdmissionsProgramID != undefined) {\r\n loaded.AdmissionsProgramID(responseData.AdmissionsProgramID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.AdmissionProgram != null) {\r\n loaded.AdmissionProgram(new smapi.admissions.AdmissionsProgramModel().LoadFromResponse(responseData.AdmissionProgram));\r\n }\r\n if (responseData.ApplicationEvaluationComments != null && responseData.ApplicationEvaluationComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ApplicationEvaluationComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ApplicationEvaluationComments[i]));\r\n }\r\n loaded.ApplicationEvaluationComments(items);\r\n }\r\n if (responseData.ApplicationEvaluationReviewerStatus != null && responseData.ApplicationEvaluationReviewerStatus.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ApplicationEvaluationReviewerStatus.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationReviewerStatusModel().LoadFromResponse(responseData.ApplicationEvaluationReviewerStatus[i]));\r\n }\r\n loaded.ApplicationEvaluationReviewerStatus(items);\r\n }\r\n if (responseData.ApplicationEvaluationStatus != null) {\r\n loaded.ApplicationEvaluationStatus(new smapi.admissions.ApplicationEvaluationStatusModel().LoadFromResponse(responseData.ApplicationEvaluationStatus));\r\n }\r\n return loaded;\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.Admissions.Entity.ApplicationEvaluation', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.AdmissionsAttemptID.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.AdmissionsProgramID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ApplicationEvaluationCommentModel(options) {\r\n var defaults = {\r\n ApplicationEvaluationID: 0,\r\n AdmissionsAttemptStepID: null,\r\n PersonID: 0,\r\n Comment: '',\r\n CommentDate: null,\r\n Score: 0,\r\n ScoreDate: 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.ApplicationEvaluationID = ko.validatedObservable(settings.ApplicationEvaluationID);\r\n this.AdmissionsAttemptStepID = ko.validatedObservable(settings.AdmissionsAttemptStepID);\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.Comment = ko.validatedObservable(settings.Comment);\r\n this.CommentDate = ko.validatedObservable(settings.CommentDate);\r\n this.Score = ko.validatedObservable(settings.Score);\r\n this.ScoreDate = ko.validatedObservable(settings.ScoreDate);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.ApplicationEvaluation = ko.observable();\r\n this.AdmissionsAttemptStep = ko.observable();\r\n this.Person = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ApplicationEvaluationID != undefined) {\r\n loaded.ApplicationEvaluationID(responseData.ApplicationEvaluationID);\r\n }\r\n if (responseData.AdmissionsAttemptStepID != undefined) {\r\n loaded.AdmissionsAttemptStepID(responseData.AdmissionsAttemptStepID);\r\n }\r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.Comment != undefined) {\r\n loaded.Comment(responseData.Comment);\r\n }\r\n if (responseData.CommentDate != undefined) {\r\n loaded.CommentDate(responseData.CommentDate);\r\n }\r\n if (responseData.Score != undefined) {\r\n loaded.Score(responseData.Score);\r\n }\r\n if (responseData.ScoreDate != undefined) {\r\n loaded.ScoreDate(responseData.ScoreDate);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.ApplicationEvaluation != null) {\r\n loaded.ApplicationEvaluation(new smapi.admissions.ApplicationEvaluationModel().LoadFromResponse(responseData.ApplicationEvaluation));\r\n }\r\n if (responseData.AdmissionsAttemptStep != null) {\r\n loaded.AdmissionsAttemptStep(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.AdmissionsAttemptStep));\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n return loaded;\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.Admissions.Entity.ApplicationEvaluationComment', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ApplicationEvaluationID.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.AdmissionsAttemptStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 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.Comment.extend({\r\n maxLength: {\r\n params: 1000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1000')\r\n }\r\n });\r\n this.CommentDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.Score.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ScoreDate.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 ApplicationEvaluationCriteriaModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.ProcessStage = ko.observableArray([]);\r\n this.ApplicationEvaluationWeight = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.ProcessStage != null && responseData.ProcessStage.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ProcessStage.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationRuleModel().LoadFromResponse(responseData.ProcessStage[i]));\r\n }\r\n loaded.ProcessStage(items);\r\n }\r\n if (responseData.ApplicationEvaluationWeight != null && responseData.ApplicationEvaluationWeight.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ApplicationEvaluationWeight.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationWeightModel().LoadFromResponse(responseData.ApplicationEvaluationWeight[i]));\r\n }\r\n loaded.ApplicationEvaluationWeight(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.Admissions.Entity.ApplicationEvaluationCriteria', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ApplicationEvaluationReviewerStatusModel(options) {\r\n var defaults = {\r\n ApplicationEvaluationID: 0,\r\n PersonID: 0,\r\n StatusID: 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.ApplicationEvaluationID = ko.validatedObservable(settings.ApplicationEvaluationID);\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.ApplicationEvaluation = ko.observable();\r\n this.Person = ko.observable();\r\n this.Status = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ApplicationEvaluationID != undefined) {\r\n loaded.ApplicationEvaluationID(responseData.ApplicationEvaluationID);\r\n }\r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.ApplicationEvaluation != null) {\r\n loaded.ApplicationEvaluation(new smapi.admissions.ApplicationEvaluationModel().LoadFromResponse(responseData.ApplicationEvaluation));\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.Status != null) {\r\n loaded.Status(new smapi.admissions.ApplicationEvaluationStatusModel().LoadFromResponse(responseData.Status));\r\n }\r\n return loaded;\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.Admissions.Entity.ApplicationEvaluationReviewerStatus', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ApplicationEvaluationID.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 required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ApplicationEvaluationRuleModel(options) {\r\n var defaults = {\r\n SortOrder: 0,\r\n AdmissionsProcessStageID: 0,\r\n ApplicationEvaluationCriteriaID: 0,\r\n RankingAlgorithmID: 0,\r\n RankingAlgorithmDateEntityFieldID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.AdmissionsProcessStageID = ko.validatedObservable(settings.AdmissionsProcessStageID);\r\n this.ApplicationEvaluationCriteriaID = ko.validatedObservable(settings.ApplicationEvaluationCriteriaID);\r\n this.RankingAlgorithmID = ko.validatedObservable(settings.RankingAlgorithmID);\r\n this.RankingAlgorithmDateEntityFieldID = ko.validatedObservable(settings.RankingAlgorithmDateEntityFieldID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AdmissionsProcessStage = ko.observable();\r\n this.ApplicationEvaluationCriteria = ko.observable();\r\n this.RankingAlgorithm = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.AdmissionsProcessStageID != undefined) {\r\n loaded.AdmissionsProcessStageID(responseData.AdmissionsProcessStageID);\r\n }\r\n if (responseData.ApplicationEvaluationCriteriaID != undefined) {\r\n loaded.ApplicationEvaluationCriteriaID(responseData.ApplicationEvaluationCriteriaID);\r\n }\r\n if (responseData.RankingAlgorithmID != undefined) {\r\n loaded.RankingAlgorithmID(responseData.RankingAlgorithmID);\r\n }\r\n if (responseData.RankingAlgorithmDateEntityFieldID != undefined) {\r\n loaded.RankingAlgorithmDateEntityFieldID(responseData.RankingAlgorithmDateEntityFieldID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AdmissionsProcessStage != null) {\r\n loaded.AdmissionsProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.AdmissionsProcessStage));\r\n }\r\n if (responseData.ApplicationEvaluationCriteria != null) {\r\n loaded.ApplicationEvaluationCriteria(new smapi.admissions.ApplicationEvaluationCriteriaModel().LoadFromResponse(responseData.ApplicationEvaluationCriteria));\r\n }\r\n if (responseData.RankingAlgorithm != null) {\r\n loaded.RankingAlgorithm(new smapi.admissions.RankingAlgorithmModel().LoadFromResponse(responseData.RankingAlgorithm));\r\n }\r\n return loaded;\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.Admissions.Entity.ApplicationEvaluationRule', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AdmissionsProcessStageID.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.ApplicationEvaluationCriteriaID.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.RankingAlgorithmID.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.RankingAlgorithmDateEntityFieldID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 ApplicationEvaluationSetupModel(options) {\r\n var defaults = {\r\n CriteriaID: null,\r\n ReviewersAmount: 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.CriteriaID = ko.validatedObservable(settings.CriteriaID);\r\n this.ReviewersAmount = ko.validatedObservable(settings.ReviewersAmount);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.ApplicationEvaluationSetupPrograms = ko.observableArray([]);\r\n this.ApplicationEvaluationSetupPeriods = ko.observableArray([]);\r\n this.ApplicationEvaluationCriteria = ko.observable();\r\n this.ApplicationEvaluationSetupCommitteeSettings = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.CriteriaID != undefined) {\r\n loaded.CriteriaID(responseData.CriteriaID);\r\n }\r\n if (responseData.ReviewersAmount != undefined) {\r\n loaded.ReviewersAmount(responseData.ReviewersAmount);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.ApplicationEvaluationSetupPrograms != null && responseData.ApplicationEvaluationSetupPrograms.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ApplicationEvaluationSetupPrograms.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsProgramModel().LoadFromResponse(responseData.ApplicationEvaluationSetupPrograms[i]));\r\n }\r\n loaded.ApplicationEvaluationSetupPrograms(items);\r\n }\r\n if (responseData.ApplicationEvaluationSetupPeriods != null && responseData.ApplicationEvaluationSetupPeriods.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ApplicationEvaluationSetupPeriods.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsPeriodModel().LoadFromResponse(responseData.ApplicationEvaluationSetupPeriods[i]));\r\n }\r\n loaded.ApplicationEvaluationSetupPeriods(items);\r\n }\r\n if (responseData.ApplicationEvaluationCriteria != null) {\r\n loaded.ApplicationEvaluationCriteria(new smapi.admissions.ApplicationEvaluationCriteriaModel().LoadFromResponse(responseData.ApplicationEvaluationCriteria));\r\n }\r\n if (responseData.ApplicationEvaluationSetupCommitteeSettings != null && responseData.ApplicationEvaluationSetupCommitteeSettings.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ApplicationEvaluationSetupCommitteeSettings.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationSetupCommitteeSettingsModel().LoadFromResponse(responseData.ApplicationEvaluationSetupCommitteeSettings[i]));\r\n }\r\n loaded.ApplicationEvaluationSetupCommitteeSettings(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.Admissions.Entity.ApplicationEvaluationSetup', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.CriteriaID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ReviewersAmount.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: 0,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_GreaterThan0_Key), '0')\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 ApplicationEvaluationSetupCommitteeSettingsModel(options) {\r\n var defaults = {\r\n ApplicationEvaluationSetupID: 0,\r\n CommitteeSettingID: 0,\r\n IsMarked: 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.ApplicationEvaluationSetupID = ko.validatedObservable(settings.ApplicationEvaluationSetupID);\r\n this.CommitteeSettingID = ko.validatedObservable(settings.CommitteeSettingID);\r\n this.IsMarked = ko.validatedObservable(settings.IsMarked);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.ApplicationEvaluationSetup = ko.observable();\r\n this.CommitteeSettings = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ApplicationEvaluationSetupID != undefined) {\r\n loaded.ApplicationEvaluationSetupID(responseData.ApplicationEvaluationSetupID);\r\n }\r\n if (responseData.CommitteeSettingID != undefined) {\r\n loaded.CommitteeSettingID(responseData.CommitteeSettingID);\r\n }\r\n if (responseData.IsMarked != undefined) {\r\n loaded.IsMarked(responseData.IsMarked);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.ApplicationEvaluationSetup != null) {\r\n loaded.ApplicationEvaluationSetup(new smapi.admissions.ApplicationEvaluationSetupModel().LoadFromResponse(responseData.ApplicationEvaluationSetup));\r\n }\r\n if (responseData.CommitteeSettings != null) {\r\n loaded.CommitteeSettings(new smapi.admissions.CommitteeSettingsModel().LoadFromResponse(responseData.CommitteeSettings));\r\n }\r\n return loaded;\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.Admissions.Entity.ApplicationEvaluationSetupCommitteeSettings', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ApplicationEvaluationSetupID.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.CommitteeSettingID.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.IsMarked.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 ApplicationEvaluationStatusModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n IsReviewer: false,\r\n IsAdmissionOfficer: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.IsReviewer = ko.validatedObservable(settings.IsReviewer);\r\n this.IsAdmissionOfficer = ko.validatedObservable(settings.IsAdmissionOfficer);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.IsReviewer != undefined) {\r\n loaded.IsReviewer(responseData.IsReviewer);\r\n }\r\n if (responseData.IsAdmissionOfficer != undefined) {\r\n loaded.IsAdmissionOfficer(responseData.IsAdmissionOfficer);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.Admissions.Entity.ApplicationEvaluationStatus', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.IsReviewer.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.IsAdmissionOfficer.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 ApplicationEvaluationWeightModel(options) {\r\n var defaults = {\r\n Weight: 0,\r\n AdmissionsProcessStageAttributesID: 0,\r\n ApplicationEvaluationCriteriaID: 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.Weight = ko.validatedObservable(settings.Weight);\r\n this.AdmissionsProcessStageAttributesID = ko.validatedObservable(settings.AdmissionsProcessStageAttributesID);\r\n this.ApplicationEvaluationCriteriaID = ko.validatedObservable(settings.ApplicationEvaluationCriteriaID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AdmissionsProcessStageAttributes = ko.observable();\r\n this.ApplicationEvaluationCriteria = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Weight != undefined) {\r\n loaded.Weight(responseData.Weight);\r\n }\r\n if (responseData.AdmissionsProcessStageAttributesID != undefined) {\r\n loaded.AdmissionsProcessStageAttributesID(responseData.AdmissionsProcessStageAttributesID);\r\n }\r\n if (responseData.ApplicationEvaluationCriteriaID != undefined) {\r\n loaded.ApplicationEvaluationCriteriaID(responseData.ApplicationEvaluationCriteriaID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AdmissionsProcessStageAttributes != null) {\r\n loaded.AdmissionsProcessStageAttributes(new smapi.admissions.AdmissionsProcessStageAttributesModel().LoadFromResponse(responseData.AdmissionsProcessStageAttributes));\r\n }\r\n if (responseData.ApplicationEvaluationCriteria != null) {\r\n loaded.ApplicationEvaluationCriteria(new smapi.admissions.ApplicationEvaluationCriteriaModel().LoadFromResponse(responseData.ApplicationEvaluationCriteria));\r\n }\r\n return loaded;\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.Admissions.Entity.ApplicationEvaluationWeight', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Weight.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AdmissionsProcessStageAttributesID.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.ApplicationEvaluationCriteriaID.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 ApplicationStudentSurveyModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n Parent4YearCollegeAttended: false,\r\n WorkHourPlansID: null,\r\n ChoiceRankID: null,\r\n PriorAttendanceID: null,\r\n DataStepID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.Parent4YearCollegeAttended = ko.validatedObservable(settings.Parent4YearCollegeAttended);\r\n this.WorkHourPlansID = ko.validatedObservable(settings.WorkHourPlansID);\r\n this.ChoiceRankID = ko.validatedObservable(settings.ChoiceRankID);\r\n this.PriorAttendanceID = ko.validatedObservable(settings.PriorAttendanceID);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.DataStep = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.Parent4YearCollegeAttended != undefined) {\r\n loaded.Parent4YearCollegeAttended(responseData.Parent4YearCollegeAttended);\r\n }\r\n if (responseData.WorkHourPlansID != undefined) {\r\n loaded.WorkHourPlansID(responseData.WorkHourPlansID);\r\n }\r\n if (responseData.ChoiceRankID != undefined) {\r\n loaded.ChoiceRankID(responseData.ChoiceRankID);\r\n }\r\n if (responseData.PriorAttendanceID != undefined) {\r\n loaded.PriorAttendanceID(responseData.PriorAttendanceID);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.ApplicationStudentSurveyStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n return loaded;\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.Admissions.Entity.ApplicationStudentSurvey', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Parent4YearCollegeAttended.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.WorkHourPlansID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ChoiceRankID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PriorAttendanceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 ApplicationStudentSurveyStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.ApplicationStudentSurveys = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.ApplicationStudentSurveys != null && responseData.ApplicationStudentSurveys.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ApplicationStudentSurveys.length; i++) {\r\n items.push(new smapi.admissions.ApplicationStudentSurveyModel().LoadFromResponse(responseData.ApplicationStudentSurveys[i]));\r\n }\r\n loaded.ApplicationStudentSurveys(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.ApplicationStudentSurveyStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 AthleticProgramModel(options) {\r\n var defaults = {\r\n Participates: false,\r\n MensProgramID: null,\r\n WomensProgramID: 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.Participates = ko.validatedObservable(settings.Participates);\r\n this.MensProgramID = ko.validatedObservable(settings.MensProgramID);\r\n this.WomensProgramID = ko.validatedObservable(settings.WomensProgramID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Participates != undefined) {\r\n loaded.Participates(responseData.Participates);\r\n }\r\n if (responseData.MensProgramID != undefined) {\r\n loaded.MensProgramID(responseData.MensProgramID);\r\n }\r\n if (responseData.WomensProgramID != undefined) {\r\n loaded.WomensProgramID(responseData.WomensProgramID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.Admissions.Entity.AthleticProgram', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Participates.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MensProgramID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.WomensProgramID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 CollegeInformationModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n CollegeName: '',\r\n CollegeID: null,\r\n TranscriptEvalStatusID: null,\r\n StudentID: '',\r\n CreditsEarned: 0,\r\n CreditsTransferred: 0,\r\n GradePoint: 0,\r\n GradePointOf: 0,\r\n StartDate: null,\r\n EndDate: null,\r\n ConferralDate: null,\r\n CollegeTypeID: null,\r\n Comments: '',\r\n SemesterTypeID: null,\r\n StatusID: null,\r\n TranscriptDocumentID: null,\r\n I20DocumentID: null,\r\n AdmissionsAcademicLevelID: null,\r\n PersonAcademicGoalID: null,\r\n EducationalGoal: '',\r\n DataStepID: 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 ProgramName: null,\r\n CredentialID: null,\r\n City: null\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.CollegeName = ko.validatedObservable(settings.CollegeName);\r\n this.CollegeID = ko.validatedObservable(settings.CollegeID);\r\n this.TranscriptEvalStatusID = ko.validatedObservable(settings.TranscriptEvalStatusID);\r\n this.StudentID = ko.validatedObservable(settings.StudentID);\r\n this.CreditsEarned = ko.validatedObservable(settings.CreditsEarned);\r\n this.CreditsTransferred = ko.validatedObservable(settings.CreditsTransferred);\r\n this.GradePoint = ko.validatedObservable(settings.GradePoint);\r\n this.GradePointOf = ko.validatedObservable(settings.GradePointOf);\r\n this.StartDate = ko.validatedObservable(settings.StartDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.ConferralDate = ko.validatedObservable(settings.ConferralDate);\r\n this.CollegeTypeID = ko.validatedObservable(settings.CollegeTypeID);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.SemesterTypeID = ko.validatedObservable(settings.SemesterTypeID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.TranscriptDocumentID = ko.validatedObservable(settings.TranscriptDocumentID);\r\n this.I20DocumentID = ko.validatedObservable(settings.I20DocumentID);\r\n this.AdmissionsAcademicLevelID = ko.validatedObservable(settings.AdmissionsAcademicLevelID);\r\n this.PersonAcademicGoalID = ko.validatedObservable(settings.PersonAcademicGoalID);\r\n this.EducationalGoal = ko.validatedObservable(settings.EducationalGoal);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n // New fields added only for APAS\r\n this.ProgramName = ko.validatedObservable(settings.ProgramName);\r\n this.CredentialID = ko.validatedObservable(settings.CredentialID);\r\n this.City = ko.validatedObservable(settings.City);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.PersonAcademicGoal = ko.observable();\r\n this.Person = ko.observable();\r\n this.College = ko.observable();\r\n this.DataStep = ko.observable();\r\n this.SemesterType = ko.observable();\r\n this.TranscriptDocument = ko.observable();\r\n this.I20Document = ko.observable();\r\n this.AdmissionsAcademicLevel = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.CollegeName != undefined) {\r\n loaded.CollegeName(responseData.CollegeName);\r\n }\r\n if (responseData.CollegeID != undefined) {\r\n loaded.CollegeID(responseData.CollegeID);\r\n }\r\n if (responseData.TranscriptEvalStatusID != undefined) {\r\n loaded.TranscriptEvalStatusID(responseData.TranscriptEvalStatusID);\r\n }\r\n if (responseData.StudentID != undefined) {\r\n loaded.StudentID(responseData.StudentID);\r\n }\r\n if (responseData.CreditsEarned != undefined) {\r\n loaded.CreditsEarned(responseData.CreditsEarned);\r\n }\r\n if (responseData.CreditsTransferred != undefined) {\r\n loaded.CreditsTransferred(responseData.CreditsTransferred);\r\n }\r\n if (responseData.GradePoint != undefined) {\r\n loaded.GradePoint(responseData.GradePoint);\r\n }\r\n if (responseData.GradePointOf != undefined) {\r\n loaded.GradePointOf(responseData.GradePointOf);\r\n }\r\n if (responseData.StartDate != undefined) {\r\n loaded.StartDate(responseData.StartDate);\r\n }\r\n if (responseData.EndDate != undefined) {\r\n loaded.EndDate(responseData.EndDate);\r\n }\r\n if (responseData.ConferralDate != undefined) {\r\n loaded.ConferralDate(responseData.ConferralDate);\r\n }\r\n if (responseData.CollegeTypeID != undefined) {\r\n loaded.CollegeTypeID(responseData.CollegeTypeID);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.SemesterTypeID != undefined) {\r\n loaded.SemesterTypeID(responseData.SemesterTypeID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.TranscriptDocumentID != undefined) {\r\n loaded.TranscriptDocumentID(responseData.TranscriptDocumentID);\r\n }\r\n if (responseData.I20DocumentID != undefined) {\r\n loaded.I20DocumentID(responseData.I20DocumentID);\r\n }\r\n if (responseData.AdmissionsAcademicLevelID != undefined) {\r\n loaded.AdmissionsAcademicLevelID(responseData.AdmissionsAcademicLevelID);\r\n }\r\n if (responseData.PersonAcademicGoalID != undefined) {\r\n loaded.PersonAcademicGoalID(responseData.PersonAcademicGoalID);\r\n }\r\n if (responseData.EducationalGoal != undefined) {\r\n loaded.EducationalGoal(responseData.EducationalGoal);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.PersonAcademicGoal != null) {\r\n loaded.PersonAcademicGoal(new smapi.academic.PersonAcademicGoalModel().LoadFromResponse(responseData.PersonAcademicGoal));\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.College != null) {\r\n loaded.College(new smapi.academic.CollegeModel().LoadFromResponse(responseData.College));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.CollegeInformationStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n if (responseData.SemesterType != null) {\r\n loaded.SemesterType(new smapi.admissions.CollegeSemesterTypeModel().LoadFromResponse(responseData.SemesterType));\r\n }\r\n if (responseData.TranscriptDocument != null && responseData.TranscriptDocument != undefined ) {\r\n loaded.TranscriptDocument(new smapi.admissions.TranscriptDocumentModel().LoadFromResponse(responseData.TranscriptDocument));\r\n }\r\n if (responseData.I20Document != null) {\r\n loaded.I20Document(new smapi.admissions.AdmissionsDocumentModel().LoadFromResponse(responseData.I20Document));\r\n }\r\n if (responseData.AdmissionsAcademicLevel != null) {\r\n loaded.AdmissionsAcademicLevel(new smapi.admissions.AdmissionsAcademicLevelModel().LoadFromResponse(responseData.AdmissionsAcademicLevel));\r\n }\r\n if (responseData.ProgramName != undefined) {\r\n loaded.ProgramName(responseData.ProgramName);\r\n }\r\n if (responseData.CredentialID != undefined) {\r\n loaded.CredentialID(responseData.CredentialID);\r\n }\r\n if (responseData.City != undefined) {\r\n loaded.City(responseData.City);\r\n }\r\n return loaded;\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.Admissions.Entity.CollegeInformation', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CollegeName.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.CollegeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TranscriptEvalStatusID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StudentID.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.CreditsEarned.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CreditsTransferred.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GradePoint.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GradePointOf.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StartDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.EndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ConferralDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.CollegeTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SemesterTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StatusID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TranscriptDocumentID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.I20DocumentID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AdmissionsAcademicLevelID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PersonAcademicGoalID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EducationalGoal.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 CollegeInformationGoalModel(options) {\r\n var defaults = {\r\n AdmissionsEducationalGoalID: null,\r\n Program: '',\r\n CollegeInformationID: 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.AdmissionsEducationalGoalID = ko.validatedObservable(settings.AdmissionsEducationalGoalID);\r\n this.Program = ko.validatedObservable(settings.Program);\r\n this.CollegeInformationID = ko.validatedObservable(settings.CollegeInformationID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.CollegeInformation = ko.observable();\r\n this.AdmissionsEducationalGoal = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.AdmissionsEducationalGoalID != undefined) {\r\n loaded.AdmissionsEducationalGoalID(responseData.AdmissionsEducationalGoalID);\r\n }\r\n if (responseData.Program != undefined) {\r\n loaded.Program(responseData.Program);\r\n }\r\n if (responseData.CollegeInformationID != undefined) {\r\n loaded.CollegeInformationID(responseData.CollegeInformationID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.CollegeInformation != null) {\r\n loaded.CollegeInformation(new smapi.admissions.CollegeInformationModel().LoadFromResponse(responseData.CollegeInformation));\r\n }\r\n if (responseData.AdmissionsEducationalGoal != null) {\r\n loaded.AdmissionsEducationalGoal(new smapi.admissions.AdmissionsEducationalGoalModel().LoadFromResponse(responseData.AdmissionsEducationalGoal));\r\n }\r\n return loaded;\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.Admissions.Entity.CollegeInformationGoal', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.AdmissionsEducationalGoalID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Program.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.CollegeInformationID.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 CollegeInformationStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.CollegeDetails = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.CollegeDetails != null && responseData.CollegeDetails.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.CollegeDetails.length; i++) {\r\n items.push(new smapi.admissions.CollegeInformationModel().LoadFromResponse(responseData.CollegeDetails[i]));\r\n }\r\n loaded.CollegeDetails(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.CollegeInformationStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 CollegeSemesterTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n CreditFactor: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.CreditFactor = ko.validatedObservable(settings.CreditFactor);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.CreditFactor != undefined) {\r\n loaded.CreditFactor(responseData.CreditFactor);\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.Admissions.Entity.CollegeSemesterType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.CreditFactor.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.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 CommitteeSettingsModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n CommitteeSettingsType: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.CommitteeSettingsType = ko.validatedObservable(settings.CommitteeSettingsType);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.ApplicationEvaluationSetupCommitteeSettings = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.CommitteeSettingsType != undefined) {\r\n loaded.CommitteeSettingsType(responseData.CommitteeSettingsType);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.ApplicationEvaluationSetupCommitteeSettings != null && responseData.ApplicationEvaluationSetupCommitteeSettings.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ApplicationEvaluationSetupCommitteeSettings.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationSetupCommitteeSettingsModel().LoadFromResponse(responseData.ApplicationEvaluationSetupCommitteeSettings[i]));\r\n }\r\n loaded.ApplicationEvaluationSetupCommitteeSettings(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.Admissions.Entity.CommitteeSettings', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.CommitteeSettingsType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function CriterionModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n TestDate: null,\r\n Score: 0,\r\n SourceID: null,\r\n StateID: null,\r\n DataStepID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.TestDate = ko.validatedObservable(settings.TestDate);\r\n this.Score = ko.validatedObservable(settings.Score);\r\n this.SourceID = ko.validatedObservable(settings.SourceID);\r\n this.StateID = ko.validatedObservable(settings.StateID);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.DataStep = ko.observable();\r\n this.GoverningDistrict = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.TestDate != undefined) {\r\n loaded.TestDate(responseData.TestDate);\r\n }\r\n if (responseData.Score != undefined) {\r\n loaded.Score(responseData.Score);\r\n }\r\n if (responseData.SourceID != undefined) {\r\n loaded.SourceID(responseData.SourceID);\r\n }\r\n if (responseData.StateID != undefined) {\r\n loaded.StateID(responseData.StateID);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.CriterionStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n if (responseData.GoverningDistrict != null) {\r\n loaded.GoverningDistrict(new smapi.community.GoverningDistrictModel().LoadFromResponse(responseData.GoverningDistrict));\r\n }\r\n return loaded;\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.Admissions.Entity.Criterion', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TestDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.Score.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SourceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StateID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 CriterionStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.CriterionTestScores = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.CriterionTestScores != null && responseData.CriterionTestScores.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.CriterionTestScores.length; i++) {\r\n items.push(new smapi.admissions.CriterionModel().LoadFromResponse(responseData.CriterionTestScores[i]));\r\n }\r\n loaded.CriterionTestScores(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.CriterionStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 EssayModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n EssayText: '',\r\n DataStepID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.EssayText = ko.validatedObservable(settings.EssayText);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.DataStep = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.EssayText != undefined) {\r\n loaded.EssayText(responseData.EssayText);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.EssayStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n return loaded;\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.Admissions.Entity.Essay', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EssayText.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 EssayStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Essays = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Essays != null && responseData.Essays.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Essays.length; i++) {\r\n items.push(new smapi.admissions.EssayModel().LoadFromResponse(responseData.Essays[i]));\r\n }\r\n loaded.Essays(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.EssayStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 ExternalAdmissionsProgramOfferingIDModel(options) {\r\n var defaults = {\r\n ExternalSystem: '',\r\n ExternalEntity: '',\r\n ExternalID: 0,\r\n AdmissionsProgramOfferingID: 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.ExternalSystem = ko.validatedObservable(settings.ExternalSystem);\r\n this.ExternalEntity = ko.validatedObservable(settings.ExternalEntity);\r\n this.ExternalID = ko.validatedObservable(settings.ExternalID);\r\n this.AdmissionsProgramOfferingID = ko.validatedObservable(settings.AdmissionsProgramOfferingID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Offering = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ExternalSystem != undefined) {\r\n loaded.ExternalSystem(responseData.ExternalSystem);\r\n }\r\n if (responseData.ExternalEntity != undefined) {\r\n loaded.ExternalEntity(responseData.ExternalEntity);\r\n }\r\n if (responseData.ExternalID != undefined) {\r\n loaded.ExternalID(responseData.ExternalID);\r\n }\r\n if (responseData.AdmissionsProgramOfferingID != undefined) {\r\n loaded.AdmissionsProgramOfferingID(responseData.AdmissionsProgramOfferingID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Offering != null) {\r\n loaded.Offering(new smapi.admissions.AdmissionsProgramOfferingModel().LoadFromResponse(responseData.Offering));\r\n }\r\n return loaded;\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.Admissions.Entity.ExternalAdmissionsProgramOfferingID', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ExternalSystem.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ExternalEntity.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ExternalID.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.AdmissionsProgramOfferingID.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 ExternalAdmissionsProgramOfferingItemIDModel(options) {\r\n var defaults = {\r\n ExternalSystem: '',\r\n ExternalEntity: '',\r\n ExternalID: 0,\r\n AdmissionsProgramOfferingItemID: 0,\r\n AcademicProgramID: 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.ExternalSystem = ko.validatedObservable(settings.ExternalSystem);\r\n this.ExternalEntity = ko.validatedObservable(settings.ExternalEntity);\r\n this.ExternalID = ko.validatedObservable(settings.ExternalID);\r\n this.AdmissionsProgramOfferingItemID = ko.validatedObservable(settings.AdmissionsProgramOfferingItemID);\r\n this.AcademicProgramID = ko.validatedObservable(settings.AcademicProgramID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AcademicProgram = ko.observable();\r\n this.OfferingItem = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ExternalSystem != undefined) {\r\n loaded.ExternalSystem(responseData.ExternalSystem);\r\n }\r\n if (responseData.ExternalEntity != undefined) {\r\n loaded.ExternalEntity(responseData.ExternalEntity);\r\n }\r\n if (responseData.ExternalID != undefined) {\r\n loaded.ExternalID(responseData.ExternalID);\r\n }\r\n if (responseData.AdmissionsProgramOfferingItemID != undefined) {\r\n loaded.AdmissionsProgramOfferingItemID(responseData.AdmissionsProgramOfferingItemID);\r\n }\r\n if (responseData.AcademicProgramID != undefined) {\r\n loaded.AcademicProgramID(responseData.AcademicProgramID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AcademicProgram != null) {\r\n loaded.AcademicProgram(new smapi.academic.AcademicProgramModel().LoadFromResponse(responseData.AcademicProgram));\r\n }\r\n if (responseData.OfferingItem != null) {\r\n loaded.OfferingItem(new smapi.admissions.AdmissionsProgramOfferingItemModel().LoadFromResponse(responseData.OfferingItem));\r\n }\r\n return loaded;\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.Admissions.Entity.ExternalAdmissionsProgramOfferingItemID', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ExternalSystem.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ExternalEntity.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ExternalID.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.AdmissionsProgramOfferingItemID.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.AcademicProgramID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 GEDModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n TestDate: null,\r\n Score: 0,\r\n SourceID: null,\r\n StateID: null,\r\n DataStepID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.TestDate = ko.validatedObservable(settings.TestDate);\r\n this.Score = ko.validatedObservable(settings.Score);\r\n this.SourceID = ko.validatedObservable(settings.SourceID);\r\n this.StateID = ko.validatedObservable(settings.StateID);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.DataStep = ko.observable();\r\n this.GoverningDistrict = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.TestDate != undefined) {\r\n loaded.TestDate(responseData.TestDate);\r\n }\r\n if (responseData.Score != undefined) {\r\n loaded.Score(responseData.Score);\r\n }\r\n if (responseData.SourceID != undefined) {\r\n loaded.SourceID(responseData.SourceID);\r\n }\r\n if (responseData.StateID != undefined) {\r\n loaded.StateID(responseData.StateID);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.GEDStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n if (responseData.GoverningDistrict != null) {\r\n loaded.GoverningDistrict(new smapi.community.GoverningDistrictModel().LoadFromResponse(responseData.GoverningDistrict));\r\n }\r\n return loaded;\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.Admissions.Entity.GED', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TestDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.Score.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SourceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StateID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 GEDStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.GEDScores = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.GEDScores != null && responseData.GEDScores.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.GEDScores.length; i++) {\r\n items.push(new smapi.admissions.GEDModel().LoadFromResponse(responseData.GEDScores[i]));\r\n }\r\n loaded.GEDScores(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.GEDStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 GenericTestModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n TestTypeID: null,\r\n TestDate: null,\r\n Score: 0,\r\n PassingScore: 0,\r\n UseForPlacement: false,\r\n SourceID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.TestTypeID = ko.validatedObservable(settings.TestTypeID);\r\n this.TestDate = ko.validatedObservable(settings.TestDate);\r\n this.Score = ko.validatedObservable(settings.Score);\r\n this.PassingScore = ko.validatedObservable(settings.PassingScore);\r\n this.UseForPlacement = ko.validatedObservable(settings.UseForPlacement);\r\n this.SourceID = ko.validatedObservable(settings.SourceID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.TestTypeID != undefined) {\r\n loaded.TestTypeID(responseData.TestTypeID);\r\n }\r\n if (responseData.TestDate != undefined) {\r\n loaded.TestDate(responseData.TestDate);\r\n }\r\n if (responseData.Score != undefined) {\r\n loaded.Score(responseData.Score);\r\n }\r\n if (responseData.PassingScore != undefined) {\r\n loaded.PassingScore(responseData.PassingScore);\r\n }\r\n if (responseData.UseForPlacement != undefined) {\r\n loaded.UseForPlacement(responseData.UseForPlacement);\r\n }\r\n if (responseData.SourceID != undefined) {\r\n loaded.SourceID(responseData.SourceID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n return loaded;\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.Admissions.Entity.GenericTest', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TestTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TestDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.Score.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PassingScore.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.UseForPlacement.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.SourceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 GMATModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n TestDate: null,\r\n RegistrationNumber: '',\r\n IrregularityCode: '',\r\n Verbal: 0,\r\n Quantitative: 0,\r\n Total: 0,\r\n Writing: 0,\r\n UseForPlacement: false,\r\n SourceID: null,\r\n DataStepID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.TestDate = ko.validatedObservable(settings.TestDate);\r\n this.RegistrationNumber = ko.validatedObservable(settings.RegistrationNumber);\r\n this.IrregularityCode = ko.validatedObservable(settings.IrregularityCode);\r\n this.Verbal = ko.validatedObservable(settings.Verbal);\r\n this.Quantitative = ko.validatedObservable(settings.Quantitative);\r\n this.Total = ko.validatedObservable(settings.Total);\r\n this.Writing = ko.validatedObservable(settings.Writing);\r\n this.UseForPlacement = ko.validatedObservable(settings.UseForPlacement);\r\n this.SourceID = ko.validatedObservable(settings.SourceID);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.DataStep = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.TestDate != undefined) {\r\n loaded.TestDate(responseData.TestDate);\r\n }\r\n if (responseData.RegistrationNumber != undefined) {\r\n loaded.RegistrationNumber(responseData.RegistrationNumber);\r\n }\r\n if (responseData.IrregularityCode != undefined) {\r\n loaded.IrregularityCode(responseData.IrregularityCode);\r\n }\r\n if (responseData.Verbal != undefined) {\r\n loaded.Verbal(responseData.Verbal);\r\n }\r\n if (responseData.Quantitative != undefined) {\r\n loaded.Quantitative(responseData.Quantitative);\r\n }\r\n if (responseData.Total != undefined) {\r\n loaded.Total(responseData.Total);\r\n }\r\n if (responseData.Writing != undefined) {\r\n loaded.Writing(responseData.Writing);\r\n }\r\n if (responseData.UseForPlacement != undefined) {\r\n loaded.UseForPlacement(responseData.UseForPlacement);\r\n }\r\n if (responseData.SourceID != undefined) {\r\n loaded.SourceID(responseData.SourceID);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.GMATStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n return loaded;\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.Admissions.Entity.GMAT', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TestDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.RegistrationNumber.extend({\r\n maxLength: {\r\n params: 20,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '20')\r\n }\r\n });\r\n this.IrregularityCode.extend({\r\n maxLength: {\r\n params: 20,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '20')\r\n }\r\n });\r\n this.Verbal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Quantitative.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Total.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Writing.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.UseForPlacement.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.SourceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 GMATStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.GMATTestScores = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.GMATTestScores != null && responseData.GMATTestScores.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.GMATTestScores.length; i++) {\r\n items.push(new smapi.admissions.GMATModel().LoadFromResponse(responseData.GMATTestScores[i]));\r\n }\r\n loaded.GMATTestScores(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.GMATStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 GREGeneralModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n TestDate: null,\r\n RegistrationNumber: '',\r\n Verbal: 0,\r\n Quantitative: 0,\r\n Writing: 0,\r\n UseForPlacement: false,\r\n SourceID: null,\r\n DataStepID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.TestDate = ko.validatedObservable(settings.TestDate);\r\n this.RegistrationNumber = ko.validatedObservable(settings.RegistrationNumber);\r\n this.Verbal = ko.validatedObservable(settings.Verbal);\r\n this.Quantitative = ko.validatedObservable(settings.Quantitative);\r\n this.Writing = ko.validatedObservable(settings.Writing);\r\n this.UseForPlacement = ko.validatedObservable(settings.UseForPlacement);\r\n this.SourceID = ko.validatedObservable(settings.SourceID);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.DataStep = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.TestDate != undefined) {\r\n loaded.TestDate(responseData.TestDate);\r\n }\r\n if (responseData.RegistrationNumber != undefined) {\r\n loaded.RegistrationNumber(responseData.RegistrationNumber);\r\n }\r\n if (responseData.Verbal != undefined) {\r\n loaded.Verbal(responseData.Verbal);\r\n }\r\n if (responseData.Quantitative != undefined) {\r\n loaded.Quantitative(responseData.Quantitative);\r\n }\r\n if (responseData.Writing != undefined) {\r\n loaded.Writing(responseData.Writing);\r\n }\r\n if (responseData.UseForPlacement != undefined) {\r\n loaded.UseForPlacement(responseData.UseForPlacement);\r\n }\r\n if (responseData.SourceID != undefined) {\r\n loaded.SourceID(responseData.SourceID);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.GREGeneralStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n return loaded;\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.Admissions.Entity.GREGeneral', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TestDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.RegistrationNumber.extend({\r\n maxLength: {\r\n params: 20,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '20')\r\n }\r\n });\r\n this.Verbal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: 0,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_GreaterThan0_Key), '0')\r\n }, \r\n max: {\r\n params: 800,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_LessThan0_Key), '800')\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Quantitative.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: 0,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_GreaterThan0_Key), '0')\r\n }, \r\n max: {\r\n params: 800,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_LessThan0_Key), '800')\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Writing.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: 0,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_GreaterThan0_Key), '0')\r\n }, \r\n max: {\r\n params: 6,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_LessThan0_Key), '6')\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.UseForPlacement.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.SourceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 GREGeneralStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.GREGeneralTestScores = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.GREGeneralTestScores != null && responseData.GREGeneralTestScores.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.GREGeneralTestScores.length; i++) {\r\n items.push(new smapi.admissions.GREGeneralModel().LoadFromResponse(responseData.GREGeneralTestScores[i]));\r\n }\r\n loaded.GREGeneralTestScores(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.GREGeneralStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 HighSchoolModel(options) {\r\n var defaults = {\r\n OrganizationID: 0,\r\n DisplayName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.OrganizationID = ko.validatedObservable(settings.OrganizationID);\r\n this.DisplayName = ko.validatedObservable(settings.DisplayName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Organization = ko.observable();\r\n this.HighSchoolCodes = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.OrganizationID != undefined) {\r\n loaded.OrganizationID(responseData.OrganizationID);\r\n }\r\n if (responseData.DisplayName != undefined) {\r\n loaded.DisplayName(responseData.DisplayName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Organization != null) {\r\n loaded.Organization(new smapi.community.OrganizationModel().LoadFromResponse(responseData.Organization));\r\n }\r\n if (responseData.HighSchoolCodes != null && responseData.HighSchoolCodes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.HighSchoolCodes.length; i++) {\r\n items.push(new smapi.admissions.HighSchoolCodeModel().LoadFromResponse(responseData.HighSchoolCodes[i]));\r\n }\r\n loaded.HighSchoolCodes(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.Admissions.Entity.HighSchool', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.OrganizationID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DisplayName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 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 HighSchoolCodeModel(options) {\r\n var defaults = {\r\n Code: '',\r\n HighSchoolCodeTypeID: null,\r\n HighSchoolID: 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.Code = ko.validatedObservable(settings.Code);\r\n this.HighSchoolCodeTypeID = ko.validatedObservable(settings.HighSchoolCodeTypeID);\r\n this.HighSchoolID = ko.validatedObservable(settings.HighSchoolID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.HighSchool = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Code != undefined) {\r\n loaded.Code(responseData.Code);\r\n }\r\n if (responseData.HighSchoolCodeTypeID != undefined) {\r\n loaded.HighSchoolCodeTypeID(responseData.HighSchoolCodeTypeID);\r\n }\r\n if (responseData.HighSchoolID != undefined) {\r\n loaded.HighSchoolID(responseData.HighSchoolID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.HighSchool != null) {\r\n loaded.HighSchool(new smapi.admissions.HighSchoolModel().LoadFromResponse(responseData.HighSchool));\r\n }\r\n return loaded;\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.Admissions.Entity.HighSchoolCode', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Code.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 20,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '20')\r\n }\r\n });\r\n this.HighSchoolCodeTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.HighSchoolID.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 HighSchoolInformationModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n HighSchoolName: '',\r\n SourceID: null,\r\n HighSchoolID: null,\r\n StudentID: '',\r\n GraduationDate: null,\r\n StartDate: null,\r\n EndDate: null,\r\n EvaluationDate: null,\r\n CounselorName: '',\r\n CounselorPhone: '',\r\n CounselorTitle: '',\r\n GPA: 0,\r\n GPAScale: 0,\r\n ClassRank: 0,\r\n ClassSize: 0,\r\n Graduated: false,\r\n ProjectedGPAVerbal: 0,\r\n ProjectedGPAMath: 0,\r\n TranscriptDocumentID: null,\r\n DataStepID: 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 HighestLevelAchieved: null,\r\n Credentials: [],\r\n City: '',\r\n Courses: null,\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.HighSchoolName = ko.validatedObservable(settings.HighSchoolName);\r\n this.SourceID = ko.validatedObservable(settings.SourceID);\r\n this.HighSchoolID = ko.validatedObservable(settings.HighSchoolID);\r\n this.StudentID = ko.validatedObservable(settings.StudentID);\r\n this.GraduationDate = ko.validatedObservable(settings.GraduationDate);\r\n this.StartDate = ko.validatedObservable(settings.StartDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.EvaluationDate = ko.validatedObservable(settings.EvaluationDate);\r\n this.CounselorName = ko.validatedObservable(settings.CounselorName);\r\n this.CounselorPhone = ko.validatedObservable(settings.CounselorPhone);\r\n this.CounselorTitle = ko.validatedObservable(settings.CounselorTitle);\r\n this.GPA = ko.validatedObservable(settings.GPA);\r\n this.GPAScale = ko.validatedObservable(settings.GPAScale);\r\n this.ClassRank = ko.validatedObservable(settings.ClassRank);\r\n this.City = ko.observable(settings.City);\r\n this.HighestLevelAchieved = ko.observable(settings.HighestLevelAchieved);\r\n this.Credentials = ko.observable(settings.Credentials);\r\n this.Courses = ko.observable(settings.Courses);\r\n this.ClassSize = ko.validatedObservable(settings.ClassSize);\r\n this.Graduated = ko.validatedObservable(settings.Graduated);\r\n this.ProjectedGPAVerbal = ko.validatedObservable(settings.ProjectedGPAVerbal);\r\n this.ProjectedGPAMath = ko.validatedObservable(settings.ProjectedGPAMath);\r\n this.TranscriptDocumentID = ko.validatedObservable(settings.TranscriptDocumentID);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.HighSchool = ko.observable();\r\n this.Person = ko.observable();\r\n this.TranscriptDocument = ko.observable();\r\n this.DataStep = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.HighSchoolName != undefined) {\r\n loaded.HighSchoolName(responseData.HighSchoolName);\r\n }\r\n if (responseData.SourceID != undefined) {\r\n loaded.SourceID(responseData.SourceID);\r\n }\r\n if (responseData.HighSchoolID != undefined) {\r\n loaded.HighSchoolID(responseData.HighSchoolID);\r\n }\r\n if (responseData.StudentID != undefined) {\r\n loaded.StudentID(responseData.StudentID);\r\n }\r\n if (responseData.GraduationDate != undefined) {\r\n loaded.GraduationDate(responseData.GraduationDate);\r\n }\r\n if (responseData.StartDate != undefined) {\r\n loaded.StartDate(responseData.StartDate);\r\n }\r\n if (responseData.EndDate != undefined) {\r\n loaded.EndDate(responseData.EndDate);\r\n }\r\n if (responseData.EvaluationDate != undefined) {\r\n loaded.EvaluationDate(responseData.EvaluationDate);\r\n }\r\n if (responseData.CounselorName != undefined) {\r\n loaded.CounselorName(responseData.CounselorName);\r\n }\r\n if (responseData.CounselorPhone != undefined) {\r\n loaded.CounselorPhone(responseData.CounselorPhone);\r\n }\r\n if (responseData.CounselorTitle != undefined) {\r\n loaded.CounselorTitle(responseData.CounselorTitle);\r\n }\r\n if (responseData.GPA != undefined) {\r\n loaded.GPA(responseData.GPA);\r\n }\r\n if (responseData.GPAScale != undefined) {\r\n loaded.GPAScale(responseData.GPAScale);\r\n }\r\n if (responseData.City != undefined) {\r\n loaded.City(responseData.City);\r\n }\r\n if (responseData.HighestLevelAchieved != undefined) {\r\n loaded.HighestLevelAchieved(responseData.HighestLevelAchieved);\r\n }\r\n if (responseData.Credentials != undefined) {\r\n loaded.Credentials(responseData.Credentials);\r\n }\r\n if (responseData.Courses != undefined) {\r\n loaded.Courses(responseData.Courses);\r\n }\r\n if (responseData.ClassRank != undefined) {\r\n loaded.ClassRank(responseData.ClassRank);\r\n }\r\n if (responseData.ClassSize != undefined) {\r\n loaded.ClassSize(responseData.ClassSize);\r\n }\r\n if (responseData.Graduated != undefined) {\r\n loaded.Graduated(responseData.Graduated);\r\n }\r\n if (responseData.ProjectedGPAVerbal != undefined) {\r\n loaded.ProjectedGPAVerbal(responseData.ProjectedGPAVerbal);\r\n }\r\n if (responseData.ProjectedGPAMath != undefined) {\r\n loaded.ProjectedGPAMath(responseData.ProjectedGPAMath);\r\n }\r\n if (responseData.TranscriptDocumentID != undefined) {\r\n loaded.TranscriptDocumentID(responseData.TranscriptDocumentID);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.HighSchool != null) {\r\n loaded.HighSchool(new smapi.admissions.HighSchoolModel().LoadFromResponse(responseData.HighSchool));\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.TranscriptDocument != null && responseData.TranscriptDocument != undefined ) {\r\n loaded.TranscriptDocument(new smapi.admissions.AdmissionsDocumentModel().LoadFromResponse(responseData.TranscriptDocument));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.HighSchoolInformationStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n return loaded;\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.Admissions.Entity.HighSchoolInformation', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.HighSchoolName.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SourceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.HighSchoolID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StudentID.extend({\r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.GraduationDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.StartDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.EndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.EvaluationDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.CounselorName.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.CounselorPhone.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.CounselorTitle.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.GPA.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GPAScale.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ClassRank.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ClassSize.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Graduated.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ProjectedGPAVerbal.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ProjectedGPAMath.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TranscriptDocumentID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 HighSchoolInformationStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.HighSchoolDetails = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.HighSchoolDetails != null && responseData.HighSchoolDetails.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.HighSchoolDetails.length; i++) {\r\n items.push(new smapi.admissions.HighSchoolInformationModel().LoadFromResponse(responseData.HighSchoolDetails[i]));\r\n }\r\n loaded.HighSchoolDetails(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.HighSchoolInformationStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 PlacementTestModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n TestDate: null,\r\n Score1: 0,\r\n Score2: 0,\r\n Score3: 0,\r\n Score4: 0,\r\n Score5: 0,\r\n TestNameID: null,\r\n TestSubjectID: null,\r\n TestStatusID: null,\r\n UseForPlacement: false,\r\n SourceID: null,\r\n DataStepID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.TestDate = ko.validatedObservable(settings.TestDate);\r\n this.Score1 = ko.validatedObservable(settings.Score1);\r\n this.Score2 = ko.validatedObservable(settings.Score2);\r\n this.Score3 = ko.validatedObservable(settings.Score3);\r\n this.Score4 = ko.validatedObservable(settings.Score4);\r\n this.Score5 = ko.validatedObservable(settings.Score5);\r\n this.TestNameID = ko.validatedObservable(settings.TestNameID);\r\n this.TestSubjectID = ko.validatedObservable(settings.TestSubjectID);\r\n this.TestStatusID = ko.validatedObservable(settings.TestStatusID);\r\n this.UseForPlacement = ko.validatedObservable(settings.UseForPlacement);\r\n this.SourceID = ko.validatedObservable(settings.SourceID);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.DataStep = ko.observable();\r\n this.AdmissionsTestName = ko.observable();\r\n this.AdmissionsTestSubject = ko.observable();\r\n this.AdmissionsTestStatus = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.TestDate != undefined) {\r\n loaded.TestDate(responseData.TestDate);\r\n }\r\n if (responseData.Score1 != undefined) {\r\n loaded.Score1(responseData.Score1);\r\n }\r\n if (responseData.Score2 != undefined) {\r\n loaded.Score2(responseData.Score2);\r\n }\r\n if (responseData.Score3 != undefined) {\r\n loaded.Score3(responseData.Score3);\r\n }\r\n if (responseData.Score4 != undefined) {\r\n loaded.Score4(responseData.Score4);\r\n }\r\n if (responseData.Score5 != undefined) {\r\n loaded.Score5(responseData.Score5);\r\n }\r\n if (responseData.TestNameID != undefined) {\r\n loaded.TestNameID(responseData.TestNameID);\r\n }\r\n if (responseData.TestSubjectID != undefined) {\r\n loaded.TestSubjectID(responseData.TestSubjectID);\r\n }\r\n if (responseData.TestStatusID != undefined) {\r\n loaded.TestStatusID(responseData.TestStatusID);\r\n }\r\n if (responseData.UseForPlacement != undefined) {\r\n loaded.UseForPlacement(responseData.UseForPlacement);\r\n }\r\n if (responseData.SourceID != undefined) {\r\n loaded.SourceID(responseData.SourceID);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.PlacementTestStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n if (responseData.AdmissionsTestName != null) {\r\n loaded.AdmissionsTestName(new smapi.admissions.AdmissionsTestNameModel().LoadFromResponse(responseData.AdmissionsTestName));\r\n }\r\n if (responseData.AdmissionsTestSubject != null) {\r\n loaded.AdmissionsTestSubject(new smapi.admissions.AdmissionsTestSubjectModel().LoadFromResponse(responseData.AdmissionsTestSubject));\r\n }\r\n if (responseData.AdmissionsTestStatus != null) {\r\n loaded.AdmissionsTestStatus(new smapi.admissions.AdmissionsTestStatusModel().LoadFromResponse(responseData.AdmissionsTestStatus));\r\n }\r\n return loaded;\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.Admissions.Entity.PlacementTest', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TestDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.Score1.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Score2.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Score3.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Score4.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Score5.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TestNameID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TestSubjectID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TestStatusID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.UseForPlacement.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.SourceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 PlacementTestExemptionModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n TestDate: null,\r\n Written: 0,\r\n Grammar: 0,\r\n Reading: 0,\r\n Total: 0,\r\n EnglishCourse: 0,\r\n UseForPlacement: false,\r\n SourceID: null,\r\n DataStepID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.TestDate = ko.validatedObservable(settings.TestDate);\r\n this.Written = ko.validatedObservable(settings.Written);\r\n this.Grammar = ko.validatedObservable(settings.Grammar);\r\n this.Reading = ko.validatedObservable(settings.Reading);\r\n this.Total = ko.validatedObservable(settings.Total);\r\n this.EnglishCourse = ko.validatedObservable(settings.EnglishCourse);\r\n this.UseForPlacement = ko.validatedObservable(settings.UseForPlacement);\r\n this.SourceID = ko.validatedObservable(settings.SourceID);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.DataStep = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.TestDate != undefined) {\r\n loaded.TestDate(responseData.TestDate);\r\n }\r\n if (responseData.Written != undefined) {\r\n loaded.Written(responseData.Written);\r\n }\r\n if (responseData.Grammar != undefined) {\r\n loaded.Grammar(responseData.Grammar);\r\n }\r\n if (responseData.Reading != undefined) {\r\n loaded.Reading(responseData.Reading);\r\n }\r\n if (responseData.Total != undefined) {\r\n loaded.Total(responseData.Total);\r\n }\r\n if (responseData.EnglishCourse != undefined) {\r\n loaded.EnglishCourse(responseData.EnglishCourse);\r\n }\r\n if (responseData.UseForPlacement != undefined) {\r\n loaded.UseForPlacement(responseData.UseForPlacement);\r\n }\r\n if (responseData.SourceID != undefined) {\r\n loaded.SourceID(responseData.SourceID);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.PlacementTestExemptionStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n return loaded;\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.Admissions.Entity.PlacementTestExemption', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TestDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.Written.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Grammar.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Reading.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Total.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EnglishCourse.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.UseForPlacement.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.SourceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 PlacementTestExemptionStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.PlacementTestExemptions = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.PlacementTestExemptions != null && responseData.PlacementTestExemptions.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.PlacementTestExemptions.length; i++) {\r\n items.push(new smapi.admissions.PlacementTestExemptionModel().LoadFromResponse(responseData.PlacementTestExemptions[i]));\r\n }\r\n loaded.PlacementTestExemptions(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.PlacementTestExemptionStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 PlacementTestStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.PlacementTests = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.PlacementTests != null && responseData.PlacementTests.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.PlacementTests.length; i++) {\r\n items.push(new smapi.admissions.PlacementTestModel().LoadFromResponse(responseData.PlacementTests[i]));\r\n }\r\n loaded.PlacementTests(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.PlacementTestStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 PortalStepModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Admissions.Entity.PortalStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function PraxisModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n TestDate: null,\r\n ETSID: '',\r\n Name: '',\r\n Score: 0,\r\n PassingScore: 0,\r\n UseForPlacement: false,\r\n SourceID: null,\r\n StateID: null,\r\n DataStepID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.TestDate = ko.validatedObservable(settings.TestDate);\r\n this.ETSID = ko.validatedObservable(settings.ETSID);\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Score = ko.validatedObservable(settings.Score);\r\n this.PassingScore = ko.validatedObservable(settings.PassingScore);\r\n this.UseForPlacement = ko.validatedObservable(settings.UseForPlacement);\r\n this.SourceID = ko.validatedObservable(settings.SourceID);\r\n this.StateID = ko.validatedObservable(settings.StateID);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.DataStep = ko.observable();\r\n this.GoverningDistrict = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.TestDate != undefined) {\r\n loaded.TestDate(responseData.TestDate);\r\n }\r\n if (responseData.ETSID != undefined) {\r\n loaded.ETSID(responseData.ETSID);\r\n }\r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Score != undefined) {\r\n loaded.Score(responseData.Score);\r\n }\r\n if (responseData.PassingScore != undefined) {\r\n loaded.PassingScore(responseData.PassingScore);\r\n }\r\n if (responseData.UseForPlacement != undefined) {\r\n loaded.UseForPlacement(responseData.UseForPlacement);\r\n }\r\n if (responseData.SourceID != undefined) {\r\n loaded.SourceID(responseData.SourceID);\r\n }\r\n if (responseData.StateID != undefined) {\r\n loaded.StateID(responseData.StateID);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.PraxisStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n if (responseData.GoverningDistrict != null) {\r\n loaded.GoverningDistrict(new smapi.community.GoverningDistrictModel().LoadFromResponse(responseData.GoverningDistrict));\r\n }\r\n return loaded;\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.Admissions.Entity.Praxis', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TestDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ETSID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 20,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '20')\r\n }\r\n });\r\n this.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.Score.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PassingScore.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.UseForPlacement.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.SourceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StateID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 PraxisIIModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n TestDate: null,\r\n ETSID: '',\r\n Name: '',\r\n Score: 0,\r\n PassingScore: 0,\r\n UseForPlacement: false,\r\n SourceID: null,\r\n StateID: null,\r\n DataStepID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.TestDate = ko.validatedObservable(settings.TestDate);\r\n this.ETSID = ko.validatedObservable(settings.ETSID);\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Score = ko.validatedObservable(settings.Score);\r\n this.PassingScore = ko.validatedObservable(settings.PassingScore);\r\n this.UseForPlacement = ko.validatedObservable(settings.UseForPlacement);\r\n this.SourceID = ko.validatedObservable(settings.SourceID);\r\n this.StateID = ko.validatedObservable(settings.StateID);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.DataStep = ko.observable();\r\n this.GoverningDistrict = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.TestDate != undefined) {\r\n loaded.TestDate(responseData.TestDate);\r\n }\r\n if (responseData.ETSID != undefined) {\r\n loaded.ETSID(responseData.ETSID);\r\n }\r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Score != undefined) {\r\n loaded.Score(responseData.Score);\r\n }\r\n if (responseData.PassingScore != undefined) {\r\n loaded.PassingScore(responseData.PassingScore);\r\n }\r\n if (responseData.UseForPlacement != undefined) {\r\n loaded.UseForPlacement(responseData.UseForPlacement);\r\n }\r\n if (responseData.SourceID != undefined) {\r\n loaded.SourceID(responseData.SourceID);\r\n }\r\n if (responseData.StateID != undefined) {\r\n loaded.StateID(responseData.StateID);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.PraxisIIStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n if (responseData.GoverningDistrict != null) {\r\n loaded.GoverningDistrict(new smapi.community.GoverningDistrictModel().LoadFromResponse(responseData.GoverningDistrict));\r\n }\r\n return loaded;\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.Admissions.Entity.PraxisII', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TestDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ETSID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 20,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '20')\r\n }\r\n });\r\n this.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.Score.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PassingScore.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.UseForPlacement.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.SourceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StateID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 PraxisIIStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.PraxisIITestScores = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.PraxisIITestScores != null && responseData.PraxisIITestScores.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.PraxisIITestScores.length; i++) {\r\n items.push(new smapi.admissions.PraxisIIModel().LoadFromResponse(responseData.PraxisIITestScores[i]));\r\n }\r\n loaded.PraxisIITestScores(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.PraxisIIStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 PraxisStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.PraxisTestScores = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.PraxisTestScores != null && responseData.PraxisTestScores.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.PraxisTestScores.length; i++) {\r\n items.push(new smapi.admissions.PraxisModel().LoadFromResponse(responseData.PraxisTestScores[i]));\r\n }\r\n loaded.PraxisTestScores(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.PraxisStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 RankingAlgorithmModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Admissions.Entity.RankingAlgorithm', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 RequestedLoginInformationModel(options) {\r\n var defaults = {\r\n RequestedID: '',\r\n Password: '',\r\n PersonID: 0,\r\n DataStepID: 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.RequestedID = ko.validatedObservable(settings.RequestedID);\r\n this.Password = ko.validatedObservable(settings.Password);\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.DataStep = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.RequestedID != undefined) {\r\n loaded.RequestedID(responseData.RequestedID);\r\n }\r\n if (responseData.Password != undefined) {\r\n loaded.Password(responseData.Password);\r\n }\r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.RequestedLoginInformationStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n return loaded;\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.Admissions.Entity.RequestedLoginInformation', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.RequestedID.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.Password.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 RequestedLoginInformationStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.RequestedLoginDetails = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.RequestedLoginDetails != null && responseData.RequestedLoginDetails.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.RequestedLoginDetails.length; i++) {\r\n items.push(new smapi.admissions.RequestedLoginInformationModel().LoadFromResponse(responseData.RequestedLoginDetails[i]));\r\n }\r\n loaded.RequestedLoginDetails(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.RequestedLoginInformationStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 RNLicenseModel(options) {\r\n var defaults = {\r\n LicenseNum: '',\r\n RNDocumentID: null,\r\n ExpirationDate: null,\r\n PersonID: 0,\r\n DataStepID: 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.LicenseNum = ko.validatedObservable(settings.LicenseNum);\r\n this.RNDocumentID = ko.validatedObservable(settings.RNDocumentID);\r\n this.ExpirationDate = ko.validatedObservable(settings.ExpirationDate);\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.RNDocument = ko.observable();\r\n this.Person = ko.observable();\r\n this.DataStep = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.LicenseNum != undefined) {\r\n loaded.LicenseNum(responseData.LicenseNum);\r\n }\r\n if (responseData.RNDocumentID != undefined) {\r\n loaded.RNDocumentID(responseData.RNDocumentID);\r\n }\r\n if (responseData.ExpirationDate != undefined) {\r\n loaded.ExpirationDate(responseData.ExpirationDate);\r\n }\r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.RNDocument != null) {\r\n loaded.RNDocument(new smapi.admissions.AdmissionsDocumentModel().LoadFromResponse(responseData.RNDocument));\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.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.RNLicenseStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n return loaded;\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.Admissions.Entity.RNLicense', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.LicenseNum.extend({\r\n maxLength: {\r\n params: 200,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '200')\r\n }\r\n });\r\n this.RNDocumentID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ExpirationDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 RNLicenseStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.RNLicenses = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.RNLicenses != null && responseData.RNLicenses.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.RNLicenses.length; i++) {\r\n items.push(new smapi.admissions.RNLicenseModel().LoadFromResponse(responseData.RNLicenses[i]));\r\n }\r\n loaded.RNLicenses(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.RNLicenseStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 SATModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n TestDate: null,\r\n Reading: 0,\r\n Math: 0,\r\n Writing: 0,\r\n Essay: 0,\r\n Composite: 0,\r\n UseForPlacement: false,\r\n SourceID: null,\r\n GradeLevelID: null,\r\n RevisedScoreIndicator: false,\r\n TotalScore: 0,\r\n EvidenceBasedReadingAndWritingSectionScore: 0,\r\n MathSectionScore: 0,\r\n ReadingTestScore: 0,\r\n WritingAndLanguageTestScore: 0,\r\n MathTestScore: 0,\r\n AnalysisInScienceCrossTestScore: 0,\r\n AnalysisInHistorySocialScienceCrossTestScore: 0,\r\n RelevantWordsInContextSubscore: 0,\r\n CommandOfEvidenceSubscore: 0,\r\n ExpressionOfIdeasSubscore: 0,\r\n StandardEnglishConventionsSubscore: 0,\r\n HeartOfAlgebraSubscore: 0,\r\n PassportToAdvancedMathematicsSubscore: 0,\r\n ProblemSolvingAndDataAnalysisSubscore: 0,\r\n EssayReadingSubscore: 0,\r\n EssayAnalysisSubscore: 0,\r\n EssayWritingSubscore: 0,\r\n DataStepID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.TestDate = ko.validatedObservable(settings.TestDate);\r\n this.Reading = ko.validatedObservable(settings.Reading);\r\n this.Math = ko.validatedObservable(settings.Math);\r\n this.Writing = ko.validatedObservable(settings.Writing);\r\n this.Essay = ko.validatedObservable(settings.Essay);\r\n this.Composite = ko.validatedObservable(settings.Composite);\r\n this.UseForPlacement = ko.validatedObservable(settings.UseForPlacement);\r\n this.SourceID = ko.validatedObservable(settings.SourceID);\r\n this.GradeLevelID = ko.validatedObservable(settings.GradeLevelID);\r\n this.RevisedScoreIndicator = ko.validatedObservable(settings.RevisedScoreIndicator);\r\n this.TotalScore = ko.validatedObservable(settings.TotalScore);\r\n this.EvidenceBasedReadingAndWritingSectionScore = ko.validatedObservable(settings.EvidenceBasedReadingAndWritingSectionScore);\r\n this.MathSectionScore = ko.validatedObservable(settings.MathSectionScore);\r\n this.ReadingTestScore = ko.validatedObservable(settings.ReadingTestScore);\r\n this.WritingAndLanguageTestScore = ko.validatedObservable(settings.WritingAndLanguageTestScore);\r\n this.MathTestScore = ko.validatedObservable(settings.MathTestScore);\r\n this.AnalysisInScienceCrossTestScore = ko.validatedObservable(settings.AnalysisInScienceCrossTestScore);\r\n this.AnalysisInHistorySocialScienceCrossTestScore = ko.validatedObservable(settings.AnalysisInHistorySocialScienceCrossTestScore);\r\n this.RelevantWordsInContextSubscore = ko.validatedObservable(settings.RelevantWordsInContextSubscore);\r\n this.CommandOfEvidenceSubscore = ko.validatedObservable(settings.CommandOfEvidenceSubscore);\r\n this.ExpressionOfIdeasSubscore = ko.validatedObservable(settings.ExpressionOfIdeasSubscore);\r\n this.StandardEnglishConventionsSubscore = ko.validatedObservable(settings.StandardEnglishConventionsSubscore);\r\n this.HeartOfAlgebraSubscore = ko.validatedObservable(settings.HeartOfAlgebraSubscore);\r\n this.PassportToAdvancedMathematicsSubscore = ko.validatedObservable(settings.PassportToAdvancedMathematicsSubscore);\r\n this.ProblemSolvingAndDataAnalysisSubscore = ko.validatedObservable(settings.ProblemSolvingAndDataAnalysisSubscore);\r\n this.EssayReadingSubscore = ko.validatedObservable(settings.EssayReadingSubscore);\r\n this.EssayAnalysisSubscore = ko.validatedObservable(settings.EssayAnalysisSubscore);\r\n this.EssayWritingSubscore = ko.validatedObservable(settings.EssayWritingSubscore);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.GradeLevel = ko.observable();\r\n this.DataStep = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.TestDate != undefined) {\r\n loaded.TestDate(responseData.TestDate);\r\n }\r\n if (responseData.Reading != undefined) {\r\n loaded.Reading(responseData.Reading);\r\n }\r\n if (responseData.Math != undefined) {\r\n loaded.Math(responseData.Math);\r\n }\r\n if (responseData.Writing != undefined) {\r\n loaded.Writing(responseData.Writing);\r\n }\r\n if (responseData.Essay != undefined) {\r\n loaded.Essay(responseData.Essay);\r\n }\r\n if (responseData.Composite != undefined) {\r\n loaded.Composite(responseData.Composite);\r\n }\r\n if (responseData.UseForPlacement != undefined) {\r\n loaded.UseForPlacement(responseData.UseForPlacement);\r\n }\r\n if (responseData.SourceID != undefined) {\r\n loaded.SourceID(responseData.SourceID);\r\n }\r\n if (responseData.GradeLevelID != undefined) {\r\n loaded.GradeLevelID(responseData.GradeLevelID);\r\n }\r\n if (responseData.RevisedScoreIndicator != undefined) {\r\n loaded.RevisedScoreIndicator(responseData.RevisedScoreIndicator);\r\n }\r\n if (responseData.TotalScore != undefined) {\r\n loaded.TotalScore(responseData.TotalScore);\r\n }\r\n if (responseData.EvidenceBasedReadingAndWritingSectionScore != undefined) {\r\n loaded.EvidenceBasedReadingAndWritingSectionScore(responseData.EvidenceBasedReadingAndWritingSectionScore);\r\n }\r\n if (responseData.MathSectionScore != undefined) {\r\n loaded.MathSectionScore(responseData.MathSectionScore);\r\n }\r\n if (responseData.ReadingTestScore != undefined) {\r\n loaded.ReadingTestScore(responseData.ReadingTestScore);\r\n }\r\n if (responseData.WritingAndLanguageTestScore != undefined) {\r\n loaded.WritingAndLanguageTestScore(responseData.WritingAndLanguageTestScore);\r\n }\r\n if (responseData.MathTestScore != undefined) {\r\n loaded.MathTestScore(responseData.MathTestScore);\r\n }\r\n if (responseData.AnalysisInScienceCrossTestScore != undefined) {\r\n loaded.AnalysisInScienceCrossTestScore(responseData.AnalysisInScienceCrossTestScore);\r\n }\r\n if (responseData.AnalysisInHistorySocialScienceCrossTestScore != undefined) {\r\n loaded.AnalysisInHistorySocialScienceCrossTestScore(responseData.AnalysisInHistorySocialScienceCrossTestScore);\r\n }\r\n if (responseData.RelevantWordsInContextSubscore != undefined) {\r\n loaded.RelevantWordsInContextSubscore(responseData.RelevantWordsInContextSubscore);\r\n }\r\n if (responseData.CommandOfEvidenceSubscore != undefined) {\r\n loaded.CommandOfEvidenceSubscore(responseData.CommandOfEvidenceSubscore);\r\n }\r\n if (responseData.ExpressionOfIdeasSubscore != undefined) {\r\n loaded.ExpressionOfIdeasSubscore(responseData.ExpressionOfIdeasSubscore);\r\n }\r\n if (responseData.StandardEnglishConventionsSubscore != undefined) {\r\n loaded.StandardEnglishConventionsSubscore(responseData.StandardEnglishConventionsSubscore);\r\n }\r\n if (responseData.HeartOfAlgebraSubscore != undefined) {\r\n loaded.HeartOfAlgebraSubscore(responseData.HeartOfAlgebraSubscore);\r\n }\r\n if (responseData.PassportToAdvancedMathematicsSubscore != undefined) {\r\n loaded.PassportToAdvancedMathematicsSubscore(responseData.PassportToAdvancedMathematicsSubscore);\r\n }\r\n if (responseData.ProblemSolvingAndDataAnalysisSubscore != undefined) {\r\n loaded.ProblemSolvingAndDataAnalysisSubscore(responseData.ProblemSolvingAndDataAnalysisSubscore);\r\n }\r\n if (responseData.EssayReadingSubscore != undefined) {\r\n loaded.EssayReadingSubscore(responseData.EssayReadingSubscore);\r\n }\r\n if (responseData.EssayAnalysisSubscore != undefined) {\r\n loaded.EssayAnalysisSubscore(responseData.EssayAnalysisSubscore);\r\n }\r\n if (responseData.EssayWritingSubscore != undefined) {\r\n loaded.EssayWritingSubscore(responseData.EssayWritingSubscore);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.GradeLevel != null) {\r\n loaded.GradeLevel(new smapi.admissions.ScoreGradeLevelModel().LoadFromResponse(responseData.GradeLevel));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.SATStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n return loaded;\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.Admissions.Entity.SAT', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TestDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.Reading.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Math.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Writing.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Essay.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Composite.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.UseForPlacement.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.SourceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GradeLevelID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RevisedScoreIndicator.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.TotalScore.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EvidenceBasedReadingAndWritingSectionScore.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MathSectionScore.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ReadingTestScore.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.WritingAndLanguageTestScore.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MathTestScore.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 79228162514264337593543950335,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AnalysisInScienceCrossTestScore.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.AnalysisInHistorySocialScienceCrossTestScore.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.RelevantWordsInContextSubscore.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.CommandOfEvidenceSubscore.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.ExpressionOfIdeasSubscore.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.StandardEnglishConventionsSubscore.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.HeartOfAlgebraSubscore.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.PassportToAdvancedMathematicsSubscore.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.ProblemSolvingAndDataAnalysisSubscore.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.EssayReadingSubscore.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.EssayAnalysisSubscore.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.EssayWritingSubscore.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.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 SATStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.SATTestScores = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.SATTestScores != null && responseData.SATTestScores.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.SATTestScores.length; i++) {\r\n items.push(new smapi.admissions.SATModel().LoadFromResponse(responseData.SATTestScores[i]));\r\n }\r\n loaded.SATTestScores(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.SATStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 ScoreGradeLevelModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n CollegeBoardID: '',\r\n BusinessMeaningName: '',\r\n SystemProtected: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.CollegeBoardID = ko.validatedObservable(settings.CollegeBoardID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.CollegeBoardID != undefined) {\r\n loaded.CollegeBoardID(responseData.CollegeBoardID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Admissions.Entity.ScoreGradeLevel', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CollegeBoardID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 2,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '2')\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.SystemProtected.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 SevisModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n EnglishProficiencyRequired: false,\r\n EnglishNotRequiredReason: '',\r\n DataStepID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.EnglishProficiencyRequired = ko.validatedObservable(settings.EnglishProficiencyRequired);\r\n this.EnglishNotRequiredReason = ko.validatedObservable(settings.EnglishNotRequiredReason);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.DataStep = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.EnglishProficiencyRequired != undefined) {\r\n loaded.EnglishProficiencyRequired(responseData.EnglishProficiencyRequired);\r\n }\r\n if (responseData.EnglishNotRequiredReason != undefined) {\r\n loaded.EnglishNotRequiredReason(responseData.EnglishNotRequiredReason);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.SevisStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n return loaded;\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.Admissions.Entity.Sevis', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EnglishProficiencyRequired.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.EnglishNotRequiredReason.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.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 SevisStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.SevisTestScores = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.SevisTestScores != null && responseData.SevisTestScores.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.SevisTestScores.length; i++) {\r\n items.push(new smapi.admissions.SevisModel().LoadFromResponse(responseData.SevisTestScores[i]));\r\n }\r\n loaded.SevisTestScores(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.SevisStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 StudentCategoryModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Admissions.Entity.StudentCategory', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function TOEFLModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n TestDate: null,\r\n Score: 0,\r\n SourceID: null,\r\n DataStepID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.TestDate = ko.validatedObservable(settings.TestDate);\r\n this.Score = ko.validatedObservable(settings.Score);\r\n this.SourceID = ko.validatedObservable(settings.SourceID);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.DataStep = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.TestDate != undefined) {\r\n loaded.TestDate(responseData.TestDate);\r\n }\r\n if (responseData.Score != undefined) {\r\n loaded.Score(responseData.Score);\r\n }\r\n if (responseData.SourceID != undefined) {\r\n loaded.SourceID(responseData.SourceID);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.TOEFLStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n return loaded;\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.Admissions.Entity.TOEFL', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TestDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.Score.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SourceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 TOEFLCBModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n TestDate: null,\r\n Listening: 0,\r\n Writing: 0,\r\n Reading: 0,\r\n Total: 0,\r\n Essay: 0,\r\n SourceID: null,\r\n DataStepID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.TestDate = ko.validatedObservable(settings.TestDate);\r\n this.Listening = ko.validatedObservable(settings.Listening);\r\n this.Writing = ko.validatedObservable(settings.Writing);\r\n this.Reading = ko.validatedObservable(settings.Reading);\r\n this.Total = ko.validatedObservable(settings.Total);\r\n this.Essay = ko.validatedObservable(settings.Essay);\r\n this.SourceID = ko.validatedObservable(settings.SourceID);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.DataStep = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.TestDate != undefined) {\r\n loaded.TestDate(responseData.TestDate);\r\n }\r\n if (responseData.Listening != undefined) {\r\n loaded.Listening(responseData.Listening);\r\n }\r\n if (responseData.Writing != undefined) {\r\n loaded.Writing(responseData.Writing);\r\n }\r\n if (responseData.Reading != undefined) {\r\n loaded.Reading(responseData.Reading);\r\n }\r\n if (responseData.Total != undefined) {\r\n loaded.Total(responseData.Total);\r\n }\r\n if (responseData.Essay != undefined) {\r\n loaded.Essay(responseData.Essay);\r\n }\r\n if (responseData.SourceID != undefined) {\r\n loaded.SourceID(responseData.SourceID);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.TOEFLCBStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n return loaded;\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.Admissions.Entity.TOEFLCB', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TestDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.Listening.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Writing.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Reading.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Total.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Essay.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SourceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 TOEFLCBStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.TOEFLCBTestScores = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.TOEFLCBTestScores != null && responseData.TOEFLCBTestScores.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.TOEFLCBTestScores.length; i++) {\r\n items.push(new smapi.admissions.TOEFLCBModel().LoadFromResponse(responseData.TOEFLCBTestScores[i]));\r\n }\r\n loaded.TOEFLCBTestScores(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.TOEFLCBStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 TOEFLPBModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n TestDate: null,\r\n Listening: 0,\r\n Writing: 0,\r\n Reading: 0,\r\n Total: 0,\r\n TWE: 0,\r\n SourceID: null,\r\n DataStepID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.TestDate = ko.validatedObservable(settings.TestDate);\r\n this.Listening = ko.validatedObservable(settings.Listening);\r\n this.Writing = ko.validatedObservable(settings.Writing);\r\n this.Reading = ko.validatedObservable(settings.Reading);\r\n this.Total = ko.validatedObservable(settings.Total);\r\n this.TWE = ko.validatedObservable(settings.TWE);\r\n this.SourceID = ko.validatedObservable(settings.SourceID);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Person = ko.observable();\r\n this.DataStep = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.TestDate != undefined) {\r\n loaded.TestDate(responseData.TestDate);\r\n }\r\n if (responseData.Listening != undefined) {\r\n loaded.Listening(responseData.Listening);\r\n }\r\n if (responseData.Writing != undefined) {\r\n loaded.Writing(responseData.Writing);\r\n }\r\n if (responseData.Reading != undefined) {\r\n loaded.Reading(responseData.Reading);\r\n }\r\n if (responseData.Total != undefined) {\r\n loaded.Total(responseData.Total);\r\n }\r\n if (responseData.TWE != undefined) {\r\n loaded.TWE(responseData.TWE);\r\n }\r\n if (responseData.SourceID != undefined) {\r\n loaded.SourceID(responseData.SourceID);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Person != null) {\r\n loaded.Person(new smapi.community.PersonModel().LoadFromResponse(responseData.Person));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.TOEFLPBStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n return loaded;\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.Admissions.Entity.TOEFLPB', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TestDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.Listening.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Writing.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Reading.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Total.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TWE.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SourceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 TOEFLPBStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.TOEFLPBTestScores = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.TOEFLPBTestScores != null && responseData.TOEFLPBTestScores.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.TOEFLPBTestScores.length; i++) {\r\n items.push(new smapi.admissions.TOEFLPBModel().LoadFromResponse(responseData.TOEFLPBTestScores[i]));\r\n }\r\n loaded.TOEFLPBTestScores(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.TOEFLPBStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 TOEFLStepModel(options) {\r\n var defaults = {\r\n ClassType: 0,\r\n Comments: '',\r\n AdmissionsAttemptID: 0,\r\n ProcessStageID: null,\r\n ParentStepID: null,\r\n StatusID: 0,\r\n RequiredOptionID: null,\r\n StepStartDate: null,\r\n StepEndDate: null,\r\n NavigatorScreenPath: '',\r\n ExpectedStepEndDate: null,\r\n AdHoc: false,\r\n ProgressOveridden: false,\r\n ExternalStage: false,\r\n MinExternalData: 0,\r\n MaxExternalData: 0,\r\n DueDate: null,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.Comments = ko.validatedObservable(settings.Comments);\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ProcessStageID = ko.validatedObservable(settings.ProcessStageID);\r\n this.ParentStepID = ko.validatedObservable(settings.ParentStepID);\r\n this.StatusID = ko.validatedObservable(settings.StatusID);\r\n this.RequiredOptionID = ko.validatedObservable(settings.RequiredOptionID);\r\n this.StepStartDate = ko.validatedObservable(settings.StepStartDate);\r\n this.StepEndDate = ko.validatedObservable(settings.StepEndDate);\r\n this.NavigatorScreenPath = ko.validatedObservable(settings.NavigatorScreenPath);\r\n this.ExpectedStepEndDate = ko.validatedObservable(settings.ExpectedStepEndDate);\r\n this.AdHoc = ko.validatedObservable(settings.AdHoc);\r\n this.ProgressOveridden = ko.validatedObservable(settings.ProgressOveridden);\r\n this.ExternalStage = ko.validatedObservable(settings.ExternalStage);\r\n this.MinExternalData = ko.validatedObservable(settings.MinExternalData);\r\n this.MaxExternalData = ko.validatedObservable(settings.MaxExternalData);\r\n this.DueDate = ko.validatedObservable(settings.DueDate);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.TOEFLTestScores = ko.observableArray([]);\r\n this.AdmissionsAttempt = ko.observable();\r\n this.ProcessStage = ko.observable();\r\n this.ReviewerComments = ko.observableArray([]);\r\n this.ExternalData = ko.observableArray([]);\r\n this.Parent = 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 {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.Comments != undefined) {\r\n loaded.Comments(responseData.Comments);\r\n }\r\n if (responseData.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ProcessStageID != undefined) {\r\n loaded.ProcessStageID(responseData.ProcessStageID);\r\n }\r\n if (responseData.ParentStepID != undefined) {\r\n loaded.ParentStepID(responseData.ParentStepID);\r\n }\r\n if (responseData.StatusID != undefined) {\r\n loaded.StatusID(responseData.StatusID);\r\n }\r\n if (responseData.RequiredOptionID != undefined) {\r\n loaded.RequiredOptionID(responseData.RequiredOptionID);\r\n }\r\n if (responseData.StepStartDate != undefined) {\r\n loaded.StepStartDate(responseData.StepStartDate);\r\n }\r\n if (responseData.StepEndDate != undefined) {\r\n loaded.StepEndDate(responseData.StepEndDate);\r\n }\r\n if (responseData.NavigatorScreenPath != undefined) {\r\n loaded.NavigatorScreenPath(responseData.NavigatorScreenPath);\r\n }\r\n if (responseData.ExpectedStepEndDate != undefined) {\r\n loaded.ExpectedStepEndDate(responseData.ExpectedStepEndDate);\r\n }\r\n if (responseData.AdHoc != undefined) {\r\n loaded.AdHoc(responseData.AdHoc);\r\n }\r\n if (responseData.ProgressOveridden != undefined) {\r\n loaded.ProgressOveridden(responseData.ProgressOveridden);\r\n }\r\n if (responseData.ExternalStage != undefined) {\r\n loaded.ExternalStage(responseData.ExternalStage);\r\n }\r\n if (responseData.MinExternalData != undefined) {\r\n loaded.MinExternalData(responseData.MinExternalData);\r\n }\r\n if (responseData.MaxExternalData != undefined) {\r\n loaded.MaxExternalData(responseData.MaxExternalData);\r\n }\r\n if (responseData.DueDate != undefined) {\r\n loaded.DueDate(responseData.DueDate);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.TOEFLTestScores != null && responseData.TOEFLTestScores.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.TOEFLTestScores.length; i++) {\r\n items.push(new smapi.admissions.TOEFLModel().LoadFromResponse(responseData.TOEFLTestScores[i]));\r\n }\r\n loaded.TOEFLTestScores(items);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n if (responseData.ProcessStage != null) {\r\n loaded.ProcessStage(new smapi.admissions.AdmissionsProcessStageModel().LoadFromResponse(responseData.ProcessStage));\r\n }\r\n if (responseData.ReviewerComments != null && responseData.ReviewerComments.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReviewerComments.length; i++) {\r\n items.push(new smapi.admissions.ApplicationEvaluationCommentModel().LoadFromResponse(responseData.ReviewerComments[i]));\r\n }\r\n loaded.ReviewerComments(items);\r\n }\r\n if (responseData.ExternalData != null && responseData.ExternalData.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ExternalData.length; i++) {\r\n items.push(new smapi.admissions.AdmissionsAttemptStepDataModel().LoadFromResponse(responseData.ExternalData[i]));\r\n }\r\n loaded.ExternalData(items);\r\n }\r\n if (responseData.Parent != null) {\r\n loaded.Parent(new smapi.admissions.AdmissionsAttemptStepModel().LoadFromResponse(responseData.Parent));\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.admissions.AdmissionsAttemptStepModel().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.Admissions.Entity.TOEFLStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Comments.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.AdmissionsAttemptID.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.ProcessStageID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.StatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequiredOptionID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepStartDate.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.StepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.NavigatorScreenPath.extend({\r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.ExpectedStepEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.AdHoc.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalStage.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MaxExternalData.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DueDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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 TranscriptDocumentModel(options) {\r\n var defaults = {\r\n SupportTransfer: false,\r\n AllAreTransferred: false,\r\n ClassType: 0,\r\n PersonID: 0,\r\n DocumentID: null,\r\n DocumentStatusID: null,\r\n CompletionDate: null,\r\n Comment: '',\r\n Reference: '',\r\n SourceID: null,\r\n DataStepID: 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.SupportTransfer = ko.validatedObservable(settings.SupportTransfer);\r\n this.AllAreTransferred = ko.validatedObservable(settings.AllAreTransferred);\r\n this.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.DocumentID = ko.validatedObservable(settings.DocumentID);\r\n this.DocumentStatusID = ko.validatedObservable(settings.DocumentStatusID);\r\n this.CompletionDate = ko.validatedObservable(settings.CompletionDate);\r\n this.Comment = ko.validatedObservable(settings.Comment);\r\n this.Reference = ko.validatedObservable(settings.Reference);\r\n this.SourceID = ko.validatedObservable(settings.SourceID);\r\n this.DataStepID = ko.validatedObservable(settings.DataStepID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Courses = ko.observableArray([]);\r\n this.Person = ko.observable();\r\n this.Document = ko.observable();\r\n this.DataStep = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.SupportTransfer != undefined) {\r\n loaded.SupportTransfer(responseData.SupportTransfer);\r\n }\r\n if (responseData.AllAreTransferred != undefined) {\r\n loaded.AllAreTransferred(responseData.AllAreTransferred);\r\n }\r\n if (responseData.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.DocumentID != undefined) {\r\n loaded.DocumentID(responseData.DocumentID);\r\n }\r\n if (responseData.DocumentStatusID != undefined) {\r\n loaded.DocumentStatusID(responseData.DocumentStatusID);\r\n }\r\n if (responseData.CompletionDate != undefined) {\r\n loaded.CompletionDate(responseData.CompletionDate);\r\n }\r\n if (responseData.Comment != undefined) {\r\n loaded.Comment(responseData.Comment);\r\n }\r\n if (responseData.Reference != undefined) {\r\n loaded.Reference(responseData.Reference);\r\n }\r\n if (responseData.SourceID != undefined) {\r\n loaded.SourceID(responseData.SourceID);\r\n }\r\n if (responseData.DataStepID != undefined) {\r\n loaded.DataStepID(responseData.DataStepID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Courses != null && responseData.Courses.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Courses.length; i++) {\r\n items.push(new smapi.admissions.TranscriptEvaluateCourseModel().LoadFromResponse(responseData.Courses[i]));\r\n }\r\n loaded.Courses(items);\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.Document != null) {\r\n loaded.Document(new smapi.community.DocumentModel().LoadFromResponse(responseData.Document));\r\n }\r\n if (responseData.DataStep != null) {\r\n loaded.DataStep(new smapi.admissions.AdmissionsDocumentStepModel().LoadFromResponse(responseData.DataStep));\r\n }\r\n return loaded;\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.Admissions.Entity.TranscriptDocument', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.SupportTransfer.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.AllAreTransferred.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ClassType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PersonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DocumentID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DocumentStatusID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CompletionDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.Comment.extend({\r\n maxLength: {\r\n params: 1000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1000')\r\n }\r\n });\r\n this.Reference.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.SourceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DataStepID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 TranscriptEvaluateCourseModel(options) {\r\n var defaults = {\r\n TranscriptDocumentID: null,\r\n PersonID: null,\r\n CollegeID: null,\r\n StartDate: null,\r\n EndDate: null,\r\n CourseID: '',\r\n CourseTitle: '',\r\n CourseMasterID: null,\r\n CourseEquivalenceID: null,\r\n CreditHours: 0,\r\n GradeID: null,\r\n IsTransfer: false,\r\n AttemptedHours: false,\r\n RepeatPolicyID: null,\r\n ShowGradeReport: false,\r\n ShowTranscript: false,\r\n ShowAdvisorTranscript: false,\r\n IgnoreRepeats: 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.TranscriptDocumentID = ko.validatedObservable(settings.TranscriptDocumentID);\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.CollegeID = ko.validatedObservable(settings.CollegeID);\r\n this.StartDate = ko.validatedObservable(settings.StartDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.CourseID = ko.validatedObservable(settings.CourseID);\r\n this.CourseTitle = ko.validatedObservable(settings.CourseTitle);\r\n this.CourseMasterID = ko.validatedObservable(settings.CourseMasterID);\r\n this.CourseEquivalenceID = ko.validatedObservable(settings.CourseEquivalenceID);\r\n this.CreditHours = ko.validatedObservable(settings.CreditHours);\r\n this.GradeID = ko.validatedObservable(settings.GradeID);\r\n this.IsTransfer = ko.validatedObservable(settings.IsTransfer);\r\n this.AttemptedHours = ko.validatedObservable(settings.AttemptedHours);\r\n this.RepeatPolicyID = ko.validatedObservable(settings.RepeatPolicyID);\r\n this.ShowGradeReport = ko.validatedObservable(settings.ShowGradeReport);\r\n this.ShowTranscript = ko.validatedObservable(settings.ShowTranscript);\r\n this.ShowAdvisorTranscript = ko.validatedObservable(settings.ShowAdvisorTranscript);\r\n this.IgnoreRepeats = ko.validatedObservable(settings.IgnoreRepeats);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.TranscriptDocument = ko.observable();\r\n this.Person = ko.observable();\r\n this.College = ko.observable();\r\n this.CourseMaster = ko.observable();\r\n this.CourseEquivalence = ko.observable();\r\n this.Grade = ko.observable();\r\n this.RepeatPolicy = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.TranscriptDocumentID != undefined) {\r\n loaded.TranscriptDocumentID(responseData.TranscriptDocumentID);\r\n }\r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.CollegeID != undefined) {\r\n loaded.CollegeID(responseData.CollegeID);\r\n }\r\n if (responseData.StartDate != undefined) {\r\n loaded.StartDate(responseData.StartDate);\r\n }\r\n if (responseData.EndDate != undefined) {\r\n loaded.EndDate(responseData.EndDate);\r\n }\r\n if (responseData.CourseID != undefined) {\r\n loaded.CourseID(responseData.CourseID);\r\n }\r\n if (responseData.CourseTitle != undefined) {\r\n loaded.CourseTitle(responseData.CourseTitle);\r\n }\r\n if (responseData.CourseMasterID != undefined) {\r\n loaded.CourseMasterID(responseData.CourseMasterID);\r\n }\r\n if (responseData.CourseEquivalenceID != undefined) {\r\n loaded.CourseEquivalenceID(responseData.CourseEquivalenceID);\r\n }\r\n if (responseData.CreditHours != undefined) {\r\n loaded.CreditHours(responseData.CreditHours);\r\n }\r\n if (responseData.GradeID != undefined) {\r\n loaded.GradeID(responseData.GradeID);\r\n }\r\n if (responseData.IsTransfer != undefined) {\r\n loaded.IsTransfer(responseData.IsTransfer);\r\n }\r\n if (responseData.AttemptedHours != undefined) {\r\n loaded.AttemptedHours(responseData.AttemptedHours);\r\n }\r\n if (responseData.RepeatPolicyID != undefined) {\r\n loaded.RepeatPolicyID(responseData.RepeatPolicyID);\r\n }\r\n if (responseData.ShowGradeReport != undefined) {\r\n loaded.ShowGradeReport(responseData.ShowGradeReport);\r\n }\r\n if (responseData.ShowTranscript != undefined) {\r\n loaded.ShowTranscript(responseData.ShowTranscript);\r\n }\r\n if (responseData.ShowAdvisorTranscript != undefined) {\r\n loaded.ShowAdvisorTranscript(responseData.ShowAdvisorTranscript);\r\n }\r\n if (responseData.IgnoreRepeats != undefined) {\r\n loaded.IgnoreRepeats(responseData.IgnoreRepeats);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.TranscriptDocument != null && responseData.TranscriptDocument != undefined ) {\r\n loaded.TranscriptDocument(new smapi.admissions.TranscriptDocumentModel().LoadFromResponse(responseData.TranscriptDocument));\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.College != null) {\r\n loaded.College(new smapi.academic.CollegeModel().LoadFromResponse(responseData.College));\r\n }\r\n if (responseData.CourseMaster != null) {\r\n loaded.CourseMaster(new smapi.academic.CourseMasterModel().LoadFromResponse(responseData.CourseMaster));\r\n }\r\n if (responseData.CourseEquivalence != null) {\r\n loaded.CourseEquivalence(new smapi.academic.CourseEquivalenceModel().LoadFromResponse(responseData.CourseEquivalence));\r\n }\r\n if (responseData.Grade != null) {\r\n loaded.Grade(new smapi.academic.GradeMasterModel().LoadFromResponse(responseData.Grade));\r\n }\r\n if (responseData.RepeatPolicy != null) {\r\n loaded.RepeatPolicy(new smapi.academic.RepeatPolicyModel().LoadFromResponse(responseData.RepeatPolicy));\r\n }\r\n return loaded;\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.Admissions.Entity.TranscriptEvaluateCourse', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.TranscriptDocumentID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.CollegeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StartDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.EndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.CourseID.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.CourseTitle.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.CourseMasterID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CourseEquivalenceID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CreditHours.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GradeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.IsTransfer.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.AttemptedHours.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.RepeatPolicyID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ShowGradeReport.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ShowTranscript.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ShowAdvisorTranscript.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.IgnoreRepeats.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.admissions.combined-1.0.0.html';\r\n jQuery.ajax({\r\n url: uri,\r\n type: 'GET',\r\n async: false,\r\n success: function (template) {\r\n jQuery(\"#\" + targetDiv).append(template);\r\n }\r\n });\r\n }\r\n function AdmissionsAttemptEUAdditionalInfoModel(options) {\r\n var defaults = {\r\n AdmissionsAttemptID: 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 HeardAboutInstituteFrom: '',\r\n InstituteCoursesPreviouslyTaken: '',\r\n InterviewViaSkype: false,\r\n InterviewSkypeNameOrEmail: '',\r\n InterviewViaPhone: false,\r\n InterviewPhoneNumber: '',\r\n InterviewInPerson: false,\r\n PreferredCommunicationTypeID: 0\r\n };\r\n\r\n var settings = jQuery.extend({}, defaults, options);\r\n\r\n // Self-Identification\r\n var self = this;\r\n\r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n\r\n // Properties as Observables\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n this.HeardAboutInstituteFrom = ko.validatedObservable(settings.HeardAboutInstituteFrom);\r\n this.InstituteCoursesPreviouslyTaken = ko.validatedObservable(settings.InstituteCoursesPreviouslyTaken);\r\n this.InterviewViaSkype = ko.validatedObservable(settings.InterviewViaSkype);\r\n this.InterviewSkypeNameOrEmail = ko.validatedObservable(settings.InterviewSkypeNameOrEmail);\r\n this.InterviewViaPhone = ko.validatedObservable(settings.InterviewViaPhone);\r\n this.InterviewPhoneNumber = ko.validatedObservable(settings.InterviewPhoneNumber);\r\n this.InterviewInPerson = ko.validatedObservable(settings.InterviewInPerson);\r\n this.PreferredCommunicationTypeID = ko.validatedObservable(settings.PreferredCommunicationTypeID);\r\n\r\n // Relationships as Observables and ObservableArrays\r\n this.AdmissionsAttempt = 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.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.HeardAboutInstituteFrom != undefined) {\r\n loaded.DateModified(responseData.HeardAboutInstituteFrom);\r\n }\r\n if (responseData.InstituteCoursesPreviouslyTaken != undefined) {\r\n loaded.DateModified(responseData.InstituteCoursesPreviouslyTaken);\r\n }\r\n if (responseData.InterviewViaSkype != undefined) {\r\n loaded.DateModified(responseData.InterviewViaSkype);\r\n }\r\n if (responseData.InterviewSkypeNameOrEmail != undefined) {\r\n loaded.DateModified(responseData.InterviewSkypeNameOrEmail);\r\n }\r\n if (responseData.InterviewViaPhone != undefined) {\r\n loaded.DateModified(responseData.InterviewViaPhone);\r\n }\r\n if (responseData.InterviewPhoneNumber != undefined) {\r\n loaded.DateModified(responseData.InterviewPhoneNumber);\r\n }\r\n if (responseData.InterviewInPerson != undefined) {\r\n loaded.DateModified(responseData.InterviewInPerson);\r\n }\r\n if (responseData.PreferredCommunicationTypeID != undefined) {\r\n loaded.DateModified(responseData.PreferredCommunicationTypeID);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n\r\n return loaded;\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.Admissions.Entity.AdmissionsAttempt', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.AdmissionsAttemptID.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 this.HeardAboutInstituteFrom.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.InstituteCoursesPreviouslyTaken.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.InterviewSkypeNameOrEmail.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.InterviewPhoneNumber.extend({\r\n maxLength: {\r\n params: 20,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '20')\r\n }\r\n });\r\n this.PreferredCommunicationTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n\r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n\r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function () {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n return self;\r\n }\r\n\r\n \r\n function AdmissionsAttemptUKAdditionalInfoModel(options) {\r\n var defaults = {\r\n AdmissionsAttemptID: 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 InstituteRelationship: false,\r\n InstituteRelationshipName: '',\r\n InstituteRelationshipDescription: '',\r\n HeardAboutInstituteFrom: '',\r\n InstituteCoursesPreviouslyTaken: '',\r\n InterviewViaSkype: false,\r\n InterviewSkypeNameOrEmail: '',\r\n InterviewViaPhone: false,\r\n InterviewPhoneNumber: '',\r\n InterviewInPerson: false,\r\n PreferredCommunicationTypeID: 0\r\n };\r\n\r\n var settings = jQuery.extend({}, defaults, options);\r\n\r\n // Self-Identification\r\n var self = this;\r\n\r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n\r\n // Properties as Observables\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n this.HeardAboutInstituteFrom = ko.validatedObservable(settings.HeardAboutInstituteFrom);\r\n this.InstituteCoursesPreviouslyTaken = ko.validatedObservable(settings.InstituteCoursesPreviouslyTaken);\r\n this.InstituteRelationship = ko.validatedObservable(settings.InstituteRelationship);\r\n this.InstituteRelationshipName = ko.validatedObservable(settings.InstituteRelationshipName);\r\n this.InstituteRelationshipDescription = ko.validatedObservable(settings.InstituteRelationshipDescription);\r\n this.InterviewViaSkype = ko.validatedObservable(settings.InterviewViaSkype);\r\n this.InterviewSkypeNameOrEmail = ko.validatedObservable(settings.InterviewSkypeNameOrEmail);\r\n this.InterviewViaPhone = ko.validatedObservable(settings.InterviewViaPhone);\r\n this.InterviewPhoneNumber = ko.validatedObservable(settings.InterviewPhoneNumber);\r\n this.InterviewInPerson = ko.validatedObservable(settings.InterviewInPerson);\r\n this.PreferredCommunicationTypeID = ko.validatedObservable(settings.PreferredCommunicationTypeID);\r\n\r\n // Relationships as Observables and ObservableArrays\r\n this.AdmissionsAttempt = 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.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.HeardAboutInstituteFrom != undefined) {\r\n loaded.DateModified(responseData.HeardAboutInstituteFrom);\r\n }\r\n if (responseData.InstituteCoursesPreviouslyTaken != undefined) {\r\n loaded.DateModified(responseData.InstituteCoursesPreviouslyTaken);\r\n }\r\n if (responseData.InstituteRelationship != undefined) {\r\n loaded.DateModified(responseData.InstituteRelationship);\r\n }\r\n if (responseData.InstituteRelationshipName != undefined) {\r\n loaded.DateModified(responseData.InstituteRelationshipName);\r\n }\r\n if (responseData.InstituteRelationshipDescription != undefined) {\r\n loaded.DateModified(responseData.InstituteRelationshipDescription);\r\n }\r\n if (responseData.InterviewViaSkype != undefined) {\r\n loaded.DateModified(responseData.InterviewViaSkype);\r\n }\r\n if (responseData.InterviewSkypeNameOrEmail != undefined) {\r\n loaded.DateModified(responseData.InterviewSkypeNameOrEmail);\r\n }\r\n if (responseData.InterviewViaPhone != undefined) {\r\n loaded.DateModified(responseData.InterviewViaPhone);\r\n }\r\n if (responseData.InterviewPhoneNumber != undefined) {\r\n loaded.DateModified(responseData.InterviewPhoneNumber);\r\n }\r\n if (responseData.InterviewInPerson != undefined) {\r\n loaded.DateModified(responseData.InterviewInPerson);\r\n }\r\n if (responseData.PreferredCommunicationTypeID != undefined) {\r\n loaded.DateModified(responseData.PreferredCommunicationTypeID);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n\r\n return loaded;\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.Admissions.Entity.AdmissionsAttempt', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.AdmissionsAttemptID.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 this.HeardAboutInstituteFrom.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.InstituteCoursesPreviouslyTaken.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.InstituteRelationshipName.extend({\r\n maxLength: {\r\n params: 60,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '60')\r\n }\r\n });\r\n this.InstituteRelationshipDescription.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.InterviewSkypeNameOrEmail.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.InterviewPhoneNumber.extend({\r\n maxLength: {\r\n params: 20,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '20')\r\n }\r\n });\r\n this.PreferredCommunicationTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n\r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n\r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function () {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n return self;\r\n }\r\n\r\n\r\n function AdmissionsAttemptUKPersonalStatementModel(options) {\r\n var defaults = {\r\n AdmissionsAttemptID: 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 PersonalStatement: ''\r\n };\r\n\r\n var settings = jQuery.extend({}, defaults, options);\r\n\r\n // Self-Identification\r\n var self = this;\r\n\r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n\r\n // Properties as Observables\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n this.PersonalStatement = ko.validatedObservable(settings.PersonalStatement);\r\n\r\n // Relationships as Observables and ObservableArrays\r\n this.AdmissionsAttempt = 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.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.PersonalStatement != undefined) {\r\n loaded.DateModified(responseData.PersonalStatement);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n\r\n return loaded;\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.Admissions.Entity.AdmissionsAttempt', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.AdmissionsAttemptID.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 this.PersonalStatement.extend({\r\n maxLength: {\r\n params: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n\r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n\r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function () {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n return self;\r\n }\r\n\r\n\r\n function AdmissionsSpecialismModel(options) {\r\n var defaults = {\r\n AdmissionsAttemptID: 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 SpecialismID: 0,\r\n SpecialismCategoryID: 0,\r\n StaffID: 0,\r\n ReasonForStaffChange: '',\r\n APILink: ''\r\n };\r\n\r\n var settings = jQuery.extend({}, defaults, options);\r\n\r\n // Self-Identification\r\n var self = this;\r\n\r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n\r\n // Properties as Observables\r\n this.AdmissionsAttemptID = ko.validatedObservable(settings.AdmissionsAttemptID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n this.SpecialismID = ko.validatedObservable(settings.SpecialismID);\r\n this.SpecialismCategoryID = ko.validatedObservable(settings.SpecialismCategoryID);\r\n this.StaffID = ko.validatedObservable(settings.StaffID);\r\n this.ReasonForStaffChange = ko.validatedObservable(settings.ReasonForStaffChange);\r\n\r\n // Relationships as Observables and ObservableArrays\r\n this.AdmissionsAttempt = 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.AdmissionsAttemptID != undefined) {\r\n loaded.AdmissionsAttemptID(responseData.AdmissionsAttemptID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.SpecialismID != undefined) {\r\n loaded.SpecialismID(responseData.SpecialismID);\r\n }\r\n if (responseData.SpecialismCategoryID != undefined) {\r\n loaded.SpecialismCategoryID(responseData.SpecialismCategoryID);\r\n }\r\n if (responseData.StaffID != undefined) {\r\n loaded.StaffID(responseData.StaffID);\r\n }\r\n if (responseData.ReasonForStaffChange != undefined) {\r\n loaded.ReasonForStaffChange(responseData.ReasonForStaffChange);\r\n }\r\n if (responseData.AdmissionsAttempt != null) {\r\n loaded.AdmissionsAttempt(new smapi.admissions.AdmissionsAttemptModel().LoadFromResponse(responseData.AdmissionsAttempt));\r\n }\r\n return loaded;\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.Admissions.Entity.ConservatoireAdmissionsSpecialism', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n }\r\n });\r\n }\r\n\r\n this.AdmissionsAttemptID.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 this.SpecialismID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SpecialismCategoryID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StaffID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ReasonForStaffChange.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n\r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n\r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function () {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n return self;\r\n }\r\n \r\n \r\n $.extend(true, smapi.admissions, {\r\n ACTModel: ACTModel,\r\n ACTStepModel: ACTStepModel,\r\n AdmissionsAcademicLevelModel: AdmissionsAcademicLevelModel,\r\n AdmissionsApplicationRankModel: AdmissionsApplicationRankModel,\r\n AdmissionsAttemptModel: AdmissionsAttemptModel,\r\n AdmissionsAttemptInteractionModel: AdmissionsAttemptInteractionModel,\r\n AdmissionsAttemptMilestoneModel: AdmissionsAttemptMilestoneModel,\r\n AdmissionsAttemptProgramModel: AdmissionsAttemptProgramModel,\r\n AdmissionsAttemptStepModel: AdmissionsAttemptStepModel,\r\n AdmissionsAttemptStepDataModel: AdmissionsAttemptStepDataModel,\r\n AdmissionsCohortModel: AdmissionsCohortModel,\r\n AdmissionsConcentrationModel: AdmissionsConcentrationModel,\r\n AdmissionsDocumentModel: AdmissionsDocumentModel,\r\n AdmissionsDocumentStepModel: AdmissionsDocumentStepModel,\r\n AdmissionsEducationalGoalModel: AdmissionsEducationalGoalModel,\r\n AdmissionsEventTypeModel: AdmissionsEventTypeModel,\r\n AdmissionsEventTypeStepModel: AdmissionsEventTypeStepModel,\r\n AdmissionsModuleSettingsModel: AdmissionsModuleSettingsModel,\r\n AdmissionsPaymentInformationModel: AdmissionsPaymentInformationModel,\r\n AdmissionsPaymentInformationStepModel: AdmissionsPaymentInformationStepModel,\r\n AdmissionsPeriodModel: AdmissionsPeriodModel,\r\n AdmissionsProcessStageModel: AdmissionsProcessStageModel,\r\n AdmissionsProcessStageAttributesModel: AdmissionsProcessStageAttributesModel,\r\n AdmissionsProcessStageBehaviorModel: AdmissionsProcessStageBehaviorModel,\r\n AdmissionsProcessStagePrerequisiteModel: AdmissionsProcessStagePrerequisiteModel,\r\n AdmissionsProgramModel: AdmissionsProgramModel,\r\n AdmissionsProgramOfferingModel: AdmissionsProgramOfferingModel,\r\n AdmissionsProgramOfferingItemModel: AdmissionsProgramOfferingItemModel,\r\n AdmissionsRankingListModel: AdmissionsRankingListModel,\r\n AdmissionsStageModel: AdmissionsStageModel,\r\n AdmissionsTestNameModel: AdmissionsTestNameModel,\r\n AdmissionsTestStatusModel: AdmissionsTestStatusModel,\r\n AdmissionsTestSubjectModel: AdmissionsTestSubjectModel,\r\n AdmissionsTypeModel: AdmissionsTypeModel,\r\n ApplicationAthleticProgramsModel: ApplicationAthleticProgramsModel,\r\n ApplicationAthleticProgramsStepModel: ApplicationAthleticProgramsStepModel,\r\n ApplicationEvaluationModel: ApplicationEvaluationModel,\r\n ApplicationEvaluationCommentModel: ApplicationEvaluationCommentModel,\r\n ApplicationEvaluationCriteriaModel: ApplicationEvaluationCriteriaModel,\r\n ApplicationEvaluationReviewerStatusModel: ApplicationEvaluationReviewerStatusModel,\r\n ApplicationEvaluationRuleModel: ApplicationEvaluationRuleModel,\r\n ApplicationEvaluationSetupModel: ApplicationEvaluationSetupModel,\r\n ApplicationEvaluationSetupCommitteeSettingsModel: ApplicationEvaluationSetupCommitteeSettingsModel,\r\n ApplicationEvaluationStatusModel: ApplicationEvaluationStatusModel,\r\n ApplicationEvaluationWeightModel: ApplicationEvaluationWeightModel,\r\n ApplicationStudentSurveyModel: ApplicationStudentSurveyModel,\r\n ApplicationStudentSurveyStepModel: ApplicationStudentSurveyStepModel,\r\n AthleticProgramModel: AthleticProgramModel,\r\n CollegeInformationModel: CollegeInformationModel,\r\n CollegeInformationGoalModel: CollegeInformationGoalModel,\r\n CollegeInformationStepModel: CollegeInformationStepModel,\r\n CollegeSemesterTypeModel: CollegeSemesterTypeModel,\r\n CommitteeSettingsModel: CommitteeSettingsModel,\r\n CriterionModel: CriterionModel,\r\n CriterionStepModel: CriterionStepModel,\r\n EssayModel: EssayModel,\r\n EssayStepModel: EssayStepModel,\r\n ExternalAdmissionsProgramOfferingIDModel: ExternalAdmissionsProgramOfferingIDModel,\r\n ExternalAdmissionsProgramOfferingItemIDModel: ExternalAdmissionsProgramOfferingItemIDModel,\r\n GEDModel: GEDModel,\r\n GEDStepModel: GEDStepModel,\r\n GenericTestModel: GenericTestModel,\r\n GMATModel: GMATModel,\r\n GMATStepModel: GMATStepModel,\r\n GREGeneralModel: GREGeneralModel,\r\n GREGeneralStepModel: GREGeneralStepModel,\r\n HighSchoolModel: HighSchoolModel,\r\n HighSchoolCodeModel: HighSchoolCodeModel,\r\n HighSchoolInformationModel: HighSchoolInformationModel,\r\n HighSchoolInformationStepModel: HighSchoolInformationStepModel,\r\n PlacementTestModel: PlacementTestModel,\r\n PlacementTestExemptionModel: PlacementTestExemptionModel,\r\n PlacementTestExemptionStepModel: PlacementTestExemptionStepModel,\r\n PlacementTestStepModel: PlacementTestStepModel,\r\n PortalStepModel: PortalStepModel,\r\n PraxisModel: PraxisModel,\r\n PraxisIIModel: PraxisIIModel,\r\n PraxisIIStepModel: PraxisIIStepModel,\r\n PraxisStepModel: PraxisStepModel,\r\n RankingAlgorithmModel: RankingAlgorithmModel,\r\n RequestedLoginInformationModel: RequestedLoginInformationModel,\r\n RequestedLoginInformationStepModel: RequestedLoginInformationStepModel,\r\n RNLicenseModel: RNLicenseModel,\r\n RNLicenseStepModel: RNLicenseStepModel,\r\n SATModel: SATModel,\r\n SATStepModel: SATStepModel,\r\n ScoreGradeLevelModel: ScoreGradeLevelModel,\r\n SevisModel: SevisModel,\r\n SevisStepModel: SevisStepModel,\r\n StudentCategoryModel: StudentCategoryModel,\r\n TOEFLModel: TOEFLModel,\r\n TOEFLCBModel: TOEFLCBModel,\r\n TOEFLCBStepModel: TOEFLCBStepModel,\r\n TOEFLPBModel: TOEFLPBModel,\r\n TOEFLPBStepModel: TOEFLPBStepModel,\r\n TOEFLStepModel: TOEFLStepModel,\r\n TranscriptDocumentModel: TranscriptDocumentModel,\r\n TranscriptEvaluateCourseModel: TranscriptEvaluateCourseModel,\r\n LoadTemplates: LoadTemplates,\r\n AdmissionsAttemptEUAdditionalInfoModel : AdmissionsAttemptEUAdditionalInfoModel,\r\n AdmissionsAttemptUKAdditionalInfoModel: AdmissionsAttemptUKAdditionalInfoModel,\r\n AdmissionsAttemptUKPersonalStatementModel: AdmissionsAttemptUKPersonalStatementModel,\r\n AdmissionsSpecialismModel: AdmissionsSpecialismModel\r\n });\r\n})(jQuery);\r\n"]}