{"version":3,"file":"SMAPI.academic.combined-1.0.0.min.js","names":["$","undefined","smapi","window","extend","each","proxy","noop","isFunction","Globalize","academic","RepeatPolicyModel","options","settings","jQuery","Name","Description","MaxNumRepeats","RepeatLimitStartDate","RepeatLimitStartPeriodID","ProcessRuleSetID","RepeatEffectCumAttemptedHours","BusinessMeaningName","ID","GID","CreatedBy","DateCreated","ModifiedBy","DateModified","APILink","self","this","ko","observable","validatedObservable","RepeatLimitStartPeriod","ProcessRuleSet","LoadFromResponse","responseData","loaded","AcademicPeriodModel","entities","TRSRuleSetModel","LoadFromLink","baseApiUrl","access","getById","data","textStatus","jqXHR","container","ApiContainerModel","Status","Payload","ValidationTitle","ValidationMessages","statusText","required","message","sm","portal","utility","getResourceValue","constant","validate_FieldRequired_Key","maxLength","params","formatString","validate_0CharactersOrLess_Key","min","validate_MustBeNumeric_Key","max","number","date","validate_MustBeADate_Key","pattern","validate_ErrorInFormat0_Key","ModelErrors","validation","group","IsVMValid","length","DivisionModel","Code","AcademicDeliveryMethodModel","AcademicLevelModel","RepeatPolicyID","AvailableGoals","observableArray","EnrollmentLevel","RepeatPolicy","items","Array","i","push","EducationalGoalModel","EnrollmentLevelModel","StudentModel","PersonID","StudentID","Person","community","PersonModel","SortOrder","CreditHoursLowerThreshold","CreditHoursUpperThreshold","AcademicLevelID","AcademicLevel","EmployeeModel","GPID","MatriculationStatusModel","GoodStanding","AthleticEligibilityCenterModel","FERPAAlertsModel","FERPATypeID","Notes","FERPAType","GlossaryModel","Degreed","Abbreviation","PrimaryGoal","IsSingle","ExternalEducationalGoalModel","CollegeCodeModel","CollegeCodeTypeID","CollegeID","College","CollegeCodeType","CollegeModel","OrganizationID","DisplayName","Organization","CollegeCodes","OrganizationModel","AcademicPeriodOverlapModel","AcademicPeriodOverlapRatio","AcademicPeriodID","OverlapAcademicPeriodID","AcademicPeriod","OverlapAcademicPeriod","AcademicPeriodTypeModel","StartDate","EndDate","PeriodID","AllowRegistration","RegistrationBegin","RegistrationEnd","CalendarYear","PeriodDurationTypeID","FacilityPeriodID","BillingPeriodID","ParentAcademicPeriodID","Period","PeriodDurationType","FacilityPeriod","BillingPeriod","ParentAcademicPeriod","ChildAcademicPeriods","AcademicPeriodOverlaps","Categories","PeriodModel","PeriodDurationTypeModel","facility","FacilityPeriodModel","financials","BillingPeriodModel","PeriodDurationTypeThresholds","PeriodDurationTypeThresholdModel","HourThreshold","CourseThreshold","ThresholdTypeID","EnrollmentLoadID","ThresholdType","EnrollmentLoad","ThresholdTypeModel","EnrollmentLoadModel","ProgramMasterModel","DivisionID","Division","AvailableConcentrations","Goals","ConcentrationMasterModel","ConcentrationTypeModel","HonorModel","ProgramID","Program","PersonAcademicGoalConcentrationModel","PersonAcademicGoalID","ConcentrationTypeID","ConcentrationID","ConcentrationType","ConcentrationMaster","PersonAcademicGoal","PersonAcademicGoalModel","PersonAcademicGoalHonorModel","HonorID","Honor","GoalEarned","ConfirmDate","GraduationDate","EducationalGoalID","TransferGoal","AdmissionDate","OtherEducationalGoal","EducationRanking","GPA","ExternalEducationalGoal","PersonAcademicGoalHonors","PersonGoalPrograms","PersonGoalProgramModel","CourseTypeModel","CourseNeedMasterModel","PerClass","PerGroup","PerStudent","CourseNeedModel","CourseNeedMasterID","CourseNeedMaster","LocationPropertyModel","Quantity","BeginDate","PropertyID","PropertyofLocation","CourseGroupModel","GradeCatalogModel","Remedial","AvailableGrades","CatalogCategories","GradeMasterModel","CatalogCategoryModel","GradeEffectModel","EffectEnrollmentEarned","EffectEarned","EffectEnrollmentHours","EffectHours","EffectEnrollmentGPA","EffectGPA","EffectAttemptedHours","ActAsUnGraded","NonWeighted","GradeEffectTypeModel","GradeMasterGradeEffectModel","GradeMasterID","GradeEffectTypeID","GradeEffectID","GradeMaster","GradeEffectType","GradeEffect","CatalogID","Grade","GradePoint","CanMarkAsRepeat","ScoreLower","ScoreUpper","GradeCatalog","GradeEffects","CourseCatalogModel","CourseEnrollmentModeModel","ForCredit","EffectsGPA","ShortName","ApplicableRateTypes","RateTypeModel","EnrollmentModeMinGradeModel","MinimumPassingScore","EnrollmentModeID","GradeCatalogExclusiveID","MinimumGradeID","GradeCatalogExclusive","MinimumGrade","EnrollmentMode","CourseMasterMinGradeOverrideModel","EnrollmentModeMinGradeID","CourseMasterID","MinimumGradeOverride","EnrollmentModeMinGrade","CourseMaster","CourseMasterModel","CourseID","DepartmentID","CourseNumber","CourseTypeID","Title","CreditHours","DefaultCreditHours","ClockHours","VariableCredit","CanRepeat","Catalog","ShowGradeReport","ShowTranscript","RequiresFacultyApproval","TranscriptTitle","TranscriptDescription","TranscriptCreditHours","RepeatThreshold","PassingScore","SourceCollegeID","ExternalPassingGradeID","ExternalKey","CourseDepartment","IndependentStudy","MinimumAllowedCreditHours","MaximumAllowedCreditHours","AcademicDepartmentID","Department","CourseType","EnrollmentModeOverride","SourceCollege","ExternalPassingGrade","CourseGroups","Needs","CourseRequisites","CourseCatalog","CourseEquivalence","AcademicDepartment","SubjectAreas","DocumentRepository","Campuses","FundingSources","CourseUnits","LanguagesOfInstruction","QualificationModes","Requisites","NonCourseRequisites","LearningOutcomes","GroupModel","CourseRequirementMasterModel","CourseEquivalenceModel","AcademicDepartmentModel","AcademicSubjectAreaModel","DocumentRepositoryModel","CampusModel","CourseMasterFundingSourceModel","CourseUnitMeasureModel","LanguageOfInstructionModel","QualificationModeModel","CourseRequisiteModel","NonCourseRequisiteModel","LearningOutcomeModel","GoalStandingMasterModel","EnrollmentStatusMasterModel","CanRegister","SystemProtected","AcademicPeriodMilestoneGroupModel","Milestones","AcademicPeriodMilestoneMasterModel","AcademicPeriodMilestoneTypeModel","AcademicPeriodMilestoneCriteria","AcademicPeriodMilestoneCriteriaModel","EnrollmentLevels","AcademicPrograms","AcademicProgramModel","ProgramTypeModel","MilestoneBegin","MilestoneEnd","MilestoneBeginDaysFromPeriodStart","MilestoneEndDaysFromPeriodStart","MilestoneBeginDaysFromPeriodEnd","MilestoneEndDaysFromPeriodEnd","MilestoneID","MilestoneGroupID","RelativeToCourse","Milestone","MilestoneGroup","CourseRequirementModel","AcademicRequirementModel","OrdinalType","MinOrdinal","MaxOrdinal","AllowAllCourses","CourseGroupID","MinGradePoint","RequirementPriority","ReqUsesCourse","IgnoreUsedCourseFlag","DynamicRequirement","RequirementCategoryID","PeriodicityCount","PeriodicityID","ReqsLogicalOperator","CourseGroup","RequirementCategory","Periodicity","Requirements","AcademicProgram","RequirementCategoryModel","PeriodicityModel","CoursePrerequisites","CourseCoRequisites","CourseAntiRequisites","EqCourseMasterID","EquivalentCourseMaster","ProgramCategoryModel","AcademicProgramSuffix","ProgramCategoryID","ProgramCategories","ProgramConcentrationModel","AcademicManagerTypeModel","AcademicProgramManagerModel","AcademicManagerTypeID","EffectiveDateFrom","EffectiveDateTo","AcademicManagerType","ApprovedDate","ProgramMasterID","ProgramStatusID","DegreeAuditID","GoalID","DeliveryMethodID","TitleIVRefundTypeID","ProgramLength","UnitLength","WeightFactor","AcademicRequirementID","AutoCreateAdmissionsProgram","ProgramMaster","DeliveryMethod","Concentrations","AcademicRequirement","DegreeAudit","Managers","ReportingCodes","ProgramCategory","Goal","TitleIVRefundType","ProgramStatus","DegreeAuditModel","AcademicReportingCodeModel","ProgramStatusModel","validate_GreaterThan0_Key","validate_LessThan0_Key","ExternalAcademicProgramModel","ExternalAcademicReportingCodeModel","GradeTypeModel","TrackGradeHistory","AffectsGPA","RequiresRegistrarApproval","GradeFormatModel","ShowOnClient","GradeProcessModel","Fulltime","PELLImportKey","GoalTypeModel","GoalTypeID","ExternalAcademicProgramID","GoalType","ExternalAcademicProgram","ReasonModel","PersonMetRequirementModel","RequirementMetDate","OverrideSystem","ReasonID","RequirementStatus","NoteID","Note","OverrideReason","MetCourses","ContactNoteModel","MetRequirementCourseModel","GradeID","TransferCourseID","TranscriptCourseID","IsManualMap","CourseGroupQualifierRuleTypeModel","CourseUnitModel","CourseGroupQueryFilterTypeModel","PeriodOfCompletionUnitModel","CourseGroupCourseModel","UnitOfMeasureID","Units","MinGPA","Required","AllowTransfer","AllowEquivalent","Summarize","DegreeCourseGroupID","Fulfilled","Course","UnitOfMeasure","DegreeCourseGroup","DegreeCourseGroupModel","DegreeRequirementID","SortPriorityOrder","DegreeRequirement","Courses","Queries","DegreeRequirementModel","CourseGroupQueryModel","CourseGroupQualifierRuleValueModel","CourseGroupQualifierRuleID","DisplayValue","Value","CourseGroupQualifierRule","CourseGroupQualifierRuleModel","CourseGroupQualifierRuleTypeID","CourseGroupQualifierBlockID","PeriodOfCompletionUnitID","AcademicSubjectAreaID","IntValue1","IntValue2","DoubleValue1","DoubleValue2","ComparisonOperator","CourseGroupQualifierRuleType","CourseGroupQualifierBlock","PeriodOfCompletionUnit","AcademicSubjectArea","RuleValues","CourseGroupQualifierBlockModel","Operator","OuterOperator","Rules","CourseGroupQueryFilterValueModel","CourseGroupQueryFilterID","CourseGroupQueryFilter","CourseGroupQueryFilterModel","CourseGroupQueryFilterTypeID","CourseGroupQueryBlockID","CourseGroupQueryFilterType","CourseGroupQueryBlock","Values","CourseGroupQueryBlockModel","CourseGroupQueryID","ExternalOperator","CourseGroupQuery","Filters","Blocks","MinUnits","PeriodOfCompletionValue","RuleCriteriaForCourseGroups","RuleCriteriaForMilestones","DegreeRequirementMilestoneModel","RequirementMilestoneRuleBlockModel","DegreeRequirementQualifierRuleModel","DegreeRequirementQualifierBlockID","DegreeRequirementQualifierBlock","DegreeRequirementQualifierBlockModel","InnerOperator","DegreeAuditHistoryDetailModel","DegreeAuditHistoryID","Action","Path","ObjectType","OldValue","NewValue","DegreeAuditHistory","DegreeAuditHistoryModel","Comment","Details","Version","DefaultUnitOfMeasureID","DefaultMatchLimit","DefaultSummarize","CurrentSchoolCompletionUnitOfMeasureID","CurrentSchoolCompletionTotal","CurrentSchoolCompletionMin","OverridesID","Overrides","Student","DefaultUnitOfMeasure","CurrentSchoolCompletionUnitOfMeasure","RuleBlocks","History","DegreeAuditMilestoneTypeModel","AcademicMilestoneTypeModel","MilestoneTypeID","MilestoneType","DegreeRequirementMilestoneTypeModel","AcademicMilestoneTypeID","AcademicMilestoneType","RequirementMilestoneRuleModel","MilestoneRuleBlockID","MilestoneRuleBlock","InternalOperator","AcademicReportingCodeTypeModel","AcademicProgramID","ReportCodeTypeID","ReportCodeType","FundingSourceModel","FundBeginDate","FundEndDate","FundingSourceID","FundSource","SAPConfigurationScopeModel","AcademicPlanStepTypeModel","AcademicPlanStepModel","StepTypeID","StepMet","StepMetApproved","StepMetApprovedByID","StepDetails","AcademicPlanID","StepMetApprovedBy","AcademicPlan","StepType","UserModel","AcademicPlanModel","PlanMet","PlanMetApproved","PlanMetApprovedByID","PlanMetApprovedBy","Steps","AcademicStatusAppealReasonModel","RequiresExplanation","AcademicProgressStandingTypeModel","AcademicAwardTypeModel","AcademicProgressStatusModel","ClassType","StopRegistration","StopOnlineRegistration","StopTranscript","StopGradeCard","StopStatement","AllowAppeal","CSSClassName","Occurrence","HoldTypeID","StandingTypeID","AcademicAchievementTypeID","SAPScopeID","Frequency","EvaluationMonth","EvaluationDayOfMonth","RemedialCourses","MaxResetCount","HoldType","StandingType","AchievementType","NextSteps","QualifierBlocks","SAPScope","EvaluationPeriodTypes","HoldCategoryModel","AcademicProgressStatusFlowModel","AcademicProgressStatusBlockModel","StartingStatusID","NextStatusID","EvaluationWorkflowID","StartingStatus","NextStatus","EvaluationWorkflow","AcademicProgressStatusAppealModel","AcademicProgressAlertID","AppealReasonID","SpecialCircumstances","AppealEvalCommSent","GrantedStatusID","GrantedByID","AcademicProgressAlert","AppealReason","GrantedStatus","GrantedBy","AcademicProgressAlertModel","AlertStatusID","AppealID","ResolvedSetByID","AlertStatus","Appeal","ResolvedSetBy","CourseUnitTypeModel","UnitValue","EffectiveFromDate","EffectiveToDate","CourseUnitTypeID","UnitType","EnrollmentGroupModel","ActivityStatusModel","StudentActivityGroupModel","ActivityCompetencyModel","ActivityPositionModel","SkillModel","ActivityCompensationModel","StudentActivityTypeModel","StudentActivityGroupID","StudentActivityGroup","AcceptableRecordModel","RecordGID","NonCourseRequisiteID","NonCourseRequisite","NonCourseRequisiteTypeModel","SelectorView","RuleSetID","RuleSet","GreaterThanValue","LessThanValue","EqualToValue","NonCourseRequisiteTypeID","NonCourseRequisiteType","AcceptableRecords","CourseRequisiteTypeModel","CourseRequisiteQualifierRuleTypeModel","CourseRequisiteCourseModel","CourseRequisiteID","IsRequired","AllowEquivalence","CourseRequisite","CourseRequisiteQualifierRuleModel","CourseRequisiteQualifierRuleTypeID","CourseRequisiteQualifierBlockID","RuleType","QualifierBlock","CourseRequisiteQualifierBlockModel","CourseRequisiteTypeID","Type","QualfierBlocks","ResitOptionModel","ResitPolicyModel","ComponentActivityModel","ComponentAssessmentTypeModel","AssessmentCategoryTypeModel","AcademicProgressStatusRuleTypeModel","AcademicProgressStatusRuleModel","AcademicProgressStatusRuleTypeID","AcademicProgressStatusBlockID","AcademicProgressStatusBlock","EducationalGoal","AcademicProgressStatusID","AcademicProgressStatus","StudentGroupTypeModel","StudentGroupModel","StudentGroupTypeID","StudentGroupType","LoadTemplates","basePath","targetDiv","uri","ajax","url","type","async","success","template","append"],"sources":["assets/js/models/SMAPI.academic.combined-1.0.0.js"],"mappings":"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","ignoreList":[],"sourcesContent":["(function ($, undefined) {\r\n \r\n var smapi = window.smapi = window.smapi || {},\r\n extend = $.extend,\r\n each = $.each,\r\n proxy = $.proxy,\r\n noop = $.noop,\r\n isFunction = $.isFunction,\r\n globalize = window.Globalize;\r\n \r\n extend(smapi, { academic: {} });\r\n \r\n function RepeatPolicyModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n MaxNumRepeats: 0,\r\n RepeatLimitStartDate: null,\r\n RepeatLimitStartPeriodID: null,\r\n ProcessRuleSetID: null,\r\n RepeatEffectCumAttemptedHours: false,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.MaxNumRepeats = ko.validatedObservable(settings.MaxNumRepeats);\r\n this.RepeatLimitStartDate = ko.validatedObservable(settings.RepeatLimitStartDate);\r\n this.RepeatLimitStartPeriodID = ko.validatedObservable(settings.RepeatLimitStartPeriodID);\r\n this.ProcessRuleSetID = ko.validatedObservable(settings.ProcessRuleSetID);\r\n this.RepeatEffectCumAttemptedHours = ko.validatedObservable(settings.RepeatEffectCumAttemptedHours);\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.RepeatLimitStartPeriod = ko.observable();\r\n this.ProcessRuleSet = 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.MaxNumRepeats != undefined) {\r\n loaded.MaxNumRepeats(responseData.MaxNumRepeats);\r\n }\r\n if (responseData.RepeatLimitStartDate != undefined) {\r\n loaded.RepeatLimitStartDate(responseData.RepeatLimitStartDate);\r\n }\r\n if (responseData.RepeatLimitStartPeriodID != undefined) {\r\n loaded.RepeatLimitStartPeriodID(responseData.RepeatLimitStartPeriodID);\r\n }\r\n if (responseData.ProcessRuleSetID != undefined) {\r\n loaded.ProcessRuleSetID(responseData.ProcessRuleSetID);\r\n }\r\n if (responseData.RepeatEffectCumAttemptedHours != undefined) {\r\n loaded.RepeatEffectCumAttemptedHours(responseData.RepeatEffectCumAttemptedHours);\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.RepeatLimitStartPeriod != null) {\r\n loaded.RepeatLimitStartPeriod(new smapi.academic.AcademicPeriodModel().LoadFromResponse(responseData.RepeatLimitStartPeriod));\r\n }\r\n if (responseData.ProcessRuleSet != null) {\r\n loaded.ProcessRuleSet(new smapi.entities.TRSRuleSetModel().LoadFromResponse(responseData.ProcessRuleSet));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.RepeatPolicy', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.MaxNumRepeats.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RepeatLimitStartDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.RepeatLimitStartPeriodID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ProcessRuleSetID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 DivisionModel(options) {\r\n var defaults = {\r\n Code: '',\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Code = ko.validatedObservable(settings.Code);\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Code != undefined) {\r\n loaded.Code(responseData.Code);\r\n }\r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.Division', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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: 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.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 AcademicDeliveryMethodModel(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.Academic.Entity.AcademicDeliveryMethod', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 AcademicLevelModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n Code: '',\r\n RepeatPolicyID: 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.Code = ko.validatedObservable(settings.Code);\r\n this.RepeatPolicyID = ko.validatedObservable(settings.RepeatPolicyID);\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.AvailableGoals = ko.observableArray([]);\r\n this.EnrollmentLevel = ko.observableArray([]);\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.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.Code != undefined) {\r\n loaded.Code(responseData.Code);\r\n }\r\n if (responseData.RepeatPolicyID != undefined) {\r\n loaded.RepeatPolicyID(responseData.RepeatPolicyID);\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.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.academic.EducationalGoalModel().LoadFromResponse(responseData.AvailableGoals[i]));\r\n }\r\n loaded.AvailableGoals(items);\r\n }\r\n if (responseData.EnrollmentLevel != null && responseData.EnrollmentLevel.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.EnrollmentLevel.length; i++) {\r\n items.push(new smapi.academic.EnrollmentLevelModel().LoadFromResponse(responseData.EnrollmentLevel[i]));\r\n }\r\n loaded.EnrollmentLevel(items);\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.Academic.Entity.AcademicLevel', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.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: 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.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.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 StudentModel(options) {\r\n var defaults = {\r\n PersonID: null,\r\n StudentID: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\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.StudentID = ko.validatedObservable(settings.StudentID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = 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.StudentID != undefined) {\r\n loaded.StudentID(responseData.StudentID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n 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.Academic.Entity.Student', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StudentID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 20,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '20')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function EnrollmentLevelModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n CreditHoursLowerThreshold: 0,\r\n CreditHoursUpperThreshold: 0,\r\n AcademicLevelID: 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.CreditHoursLowerThreshold = ko.validatedObservable(settings.CreditHoursLowerThreshold);\r\n this.CreditHoursUpperThreshold = ko.validatedObservable(settings.CreditHoursUpperThreshold);\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 \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\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.CreditHoursLowerThreshold != undefined) {\r\n loaded.CreditHoursLowerThreshold(responseData.CreditHoursLowerThreshold);\r\n }\r\n if (responseData.CreditHoursUpperThreshold != undefined) {\r\n loaded.CreditHoursUpperThreshold(responseData.CreditHoursUpperThreshold);\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 return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.EnrollmentLevel', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CreditHoursLowerThreshold.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.CreditHoursUpperThreshold.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.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.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 EmployeeModel(options) {\r\n var defaults = {\r\n PersonID: null,\r\n GPID: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\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.GPID = ko.validatedObservable(settings.GPID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = 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.GPID != undefined) {\r\n loaded.GPID(responseData.GPID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n 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.Academic.Entity.Employee', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.PersonID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GPID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 20,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '20')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function MatriculationStatusModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n GoodStanding: false,\r\n SortOrder: '',\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.GoodStanding = ko.validatedObservable(settings.GoodStanding);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.GoodStanding != undefined) {\r\n loaded.GoodStanding(responseData.GoodStanding);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.MatriculationStatus', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 10,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '10')\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AthleticEligibilityCenterModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.AthleticEligibilityCenter', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 40,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '40')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function FERPAAlertsModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n FERPATypeID: null,\r\n Notes: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\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.FERPATypeID = ko.validatedObservable(settings.FERPATypeID);\r\n this.Notes = ko.validatedObservable(settings.Notes);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = 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.FERPAType = 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.FERPATypeID != undefined) {\r\n loaded.FERPATypeID(responseData.FERPATypeID);\r\n }\r\n if (responseData.Notes != undefined) {\r\n loaded.Notes(responseData.Notes);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n 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.FERPAType != null) {\r\n loaded.FERPAType(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.FERPAType));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.FERPAAlerts', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.FERPATypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Notes.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 500,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '500')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function EducationalGoalModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n Degreed: false,\r\n AcademicLevelID: null,\r\n Abbreviation: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n PrimaryGoal: false,\r\n IsSingle: 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.Degreed = ko.validatedObservable(settings.Degreed);\r\n this.AcademicLevelID = ko.validatedObservable(settings.AcademicLevelID);\r\n this.Abbreviation = ko.validatedObservable(settings.Abbreviation);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.PrimaryGoal = ko.validatedObservable(settings.PrimaryGoal);\r\n this.IsSingle = ko.validatedObservable(settings.IsSingle);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = 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 \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\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.AcademicLevelID != undefined) {\r\n loaded.AcademicLevelID(responseData.AcademicLevelID);\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.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.PrimaryGoal != undefined) {\r\n loaded.PrimaryGoal(responseData.PrimaryGoal);\r\n }\r\n if (responseData.IsSingle != undefined) {\r\n loaded.IsSingle(responseData.IsSingle);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n 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 return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.EducationalGoal', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.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.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.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 ExternalEducationalGoalModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n Degreed: false,\r\n AcademicLevelID: null,\r\n Abbreviation: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.Degreed = ko.validatedObservable(settings.Degreed);\r\n this.AcademicLevelID = ko.validatedObservable(settings.AcademicLevelID);\r\n this.Abbreviation = ko.validatedObservable(settings.Abbreviation);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AcademicLevel = 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.Degreed != undefined) {\r\n loaded.Degreed(responseData.Degreed);\r\n }\r\n if (responseData.AcademicLevelID != undefined) {\r\n loaded.AcademicLevelID(responseData.AcademicLevelID);\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.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 return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.ExternalEducationalGoal', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n maxLength: {\r\n params: 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.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.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 min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 CollegeCodeModel(options) {\r\n var defaults = {\r\n Code: '',\r\n CollegeCodeTypeID: null,\r\n CollegeID: 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.CollegeCodeTypeID = ko.validatedObservable(settings.CollegeCodeTypeID);\r\n this.CollegeID = ko.validatedObservable(settings.CollegeID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.College = ko.observable();\r\n this.CollegeCodeType = 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.CollegeCodeTypeID != undefined) {\r\n loaded.CollegeCodeTypeID(responseData.CollegeCodeTypeID);\r\n }\r\n if (responseData.CollegeID != undefined) {\r\n loaded.CollegeID(responseData.CollegeID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\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.CollegeCodeType != null) {\r\n loaded.CollegeCodeType(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.CollegeCodeType));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.CollegeCode', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.CollegeCodeTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 CollegeModel(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.CollegeCodes = 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.CollegeCodes != null && responseData.CollegeCodes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.CollegeCodes.length; i++) {\r\n items.push(new smapi.academic.CollegeCodeModel().LoadFromResponse(responseData.CollegeCodes[i]));\r\n }\r\n loaded.CollegeCodes(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.Academic.Entity.College', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 AcademicPeriodOverlapModel(options) {\r\n var defaults = {\r\n AcademicPeriodOverlapRatio: 0,\r\n AcademicPeriodID: null,\r\n OverlapAcademicPeriodID: 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.AcademicPeriodOverlapRatio = ko.validatedObservable(settings.AcademicPeriodOverlapRatio);\r\n this.AcademicPeriodID = ko.validatedObservable(settings.AcademicPeriodID);\r\n this.OverlapAcademicPeriodID = ko.validatedObservable(settings.OverlapAcademicPeriodID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AcademicPeriod = ko.observable();\r\n this.OverlapAcademicPeriod = 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.AcademicPeriodOverlapRatio != undefined) {\r\n loaded.AcademicPeriodOverlapRatio(responseData.AcademicPeriodOverlapRatio);\r\n }\r\n if (responseData.AcademicPeriodID != undefined) {\r\n loaded.AcademicPeriodID(responseData.AcademicPeriodID);\r\n }\r\n if (responseData.OverlapAcademicPeriodID != undefined) {\r\n loaded.OverlapAcademicPeriodID(responseData.OverlapAcademicPeriodID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AcademicPeriod != null) {\r\n loaded.AcademicPeriod(new smapi.academic.AcademicPeriodModel().LoadFromResponse(responseData.AcademicPeriod));\r\n }\r\n if (responseData.OverlapAcademicPeriod != null) {\r\n loaded.OverlapAcademicPeriod(new smapi.academic.AcademicPeriodModel().LoadFromResponse(responseData.OverlapAcademicPeriod));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.AcademicPeriodOverlap', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.AcademicPeriodOverlapRatio.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.AcademicPeriodID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.OverlapAcademicPeriodID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 AcademicPeriodTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.AcademicPeriodType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 AcademicPeriodModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n StartDate: null,\r\n EndDate: null,\r\n PeriodID: null,\r\n AllowRegistration: false,\r\n RegistrationBegin: null,\r\n RegistrationEnd: null,\r\n CalendarYear: '',\r\n SortOrder: '',\r\n PeriodDurationTypeID: null,\r\n FacilityPeriodID: null,\r\n BillingPeriodID: null,\r\n ParentAcademicPeriodID: 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.StartDate = ko.validatedObservable(settings.StartDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.PeriodID = ko.validatedObservable(settings.PeriodID);\r\n this.AllowRegistration = ko.validatedObservable(settings.AllowRegistration);\r\n this.RegistrationBegin = ko.validatedObservable(settings.RegistrationBegin);\r\n this.RegistrationEnd = ko.validatedObservable(settings.RegistrationEnd);\r\n this.CalendarYear = ko.validatedObservable(settings.CalendarYear);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.PeriodDurationTypeID = ko.validatedObservable(settings.PeriodDurationTypeID);\r\n this.FacilityPeriodID = ko.validatedObservable(settings.FacilityPeriodID);\r\n this.BillingPeriodID = ko.validatedObservable(settings.BillingPeriodID);\r\n this.ParentAcademicPeriodID = ko.validatedObservable(settings.ParentAcademicPeriodID);\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 this.PeriodDurationType = ko.observable();\r\n this.FacilityPeriod = ko.observable();\r\n this.BillingPeriod = ko.observable();\r\n this.ParentAcademicPeriod = ko.observable();\r\n this.ChildAcademicPeriods = ko.observableArray([]);\r\n this.AcademicPeriodOverlaps = ko.observableArray([]);\r\n this.Categories = 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.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.PeriodID != undefined) {\r\n loaded.PeriodID(responseData.PeriodID);\r\n }\r\n if (responseData.AllowRegistration != undefined) {\r\n loaded.AllowRegistration(responseData.AllowRegistration);\r\n }\r\n if (responseData.RegistrationBegin != undefined) {\r\n loaded.RegistrationBegin(responseData.RegistrationBegin);\r\n }\r\n if (responseData.RegistrationEnd != undefined) {\r\n loaded.RegistrationEnd(responseData.RegistrationEnd);\r\n }\r\n if (responseData.CalendarYear != undefined) {\r\n loaded.CalendarYear(responseData.CalendarYear);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.PeriodDurationTypeID != undefined) {\r\n loaded.PeriodDurationTypeID(responseData.PeriodDurationTypeID);\r\n }\r\n if (responseData.FacilityPeriodID != undefined) {\r\n loaded.FacilityPeriodID(responseData.FacilityPeriodID);\r\n }\r\n if (responseData.BillingPeriodID != undefined) {\r\n loaded.BillingPeriodID(responseData.BillingPeriodID);\r\n }\r\n if (responseData.ParentAcademicPeriodID != undefined) {\r\n loaded.ParentAcademicPeriodID(responseData.ParentAcademicPeriodID);\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 if (responseData.PeriodDurationType != null) {\r\n loaded.PeriodDurationType(new smapi.academic.PeriodDurationTypeModel().LoadFromResponse(responseData.PeriodDurationType));\r\n }\r\n if (responseData.FacilityPeriod != null) {\r\n loaded.FacilityPeriod(new smapi.facility.FacilityPeriodModel().LoadFromResponse(responseData.FacilityPeriod));\r\n }\r\n if (responseData.BillingPeriod != null) {\r\n loaded.BillingPeriod(new smapi.financials.BillingPeriodModel().LoadFromResponse(responseData.BillingPeriod));\r\n }\r\n if (responseData.ParentAcademicPeriod != null) {\r\n loaded.ParentAcademicPeriod(new smapi.academic.AcademicPeriodModel().LoadFromResponse(responseData.ParentAcademicPeriod));\r\n }\r\n if (responseData.ChildAcademicPeriods != null && responseData.ChildAcademicPeriods.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ChildAcademicPeriods.length; i++) {\r\n items.push(new smapi.academic.AcademicPeriodModel().LoadFromResponse(responseData.ChildAcademicPeriods[i]));\r\n }\r\n loaded.ChildAcademicPeriods(items);\r\n }\r\n if (responseData.AcademicPeriodOverlaps != null && responseData.AcademicPeriodOverlaps.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AcademicPeriodOverlaps.length; i++) {\r\n items.push(new smapi.academic.AcademicPeriodOverlapModel().LoadFromResponse(responseData.AcademicPeriodOverlaps[i]));\r\n }\r\n loaded.AcademicPeriodOverlaps(items);\r\n }\r\n if (responseData.Categories != null && responseData.Categories.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Categories.length; i++) {\r\n items.push(new smapi.academic.AcademicPeriodTypeModel().LoadFromResponse(responseData.Categories[i]));\r\n }\r\n loaded.Categories(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.Academic.Entity.AcademicPeriod', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.StartDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.EndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.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.RegistrationBegin.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.RegistrationEnd.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.CalendarYear.extend({\r\n maxLength: {\r\n params: 10,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '10')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n 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.PeriodDurationTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.FacilityPeriodID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BillingPeriodID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ParentAcademicPeriodID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 PeriodDurationTypeModel(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.PeriodDurationTypeThresholds = 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.PeriodDurationTypeThresholds != null && responseData.PeriodDurationTypeThresholds.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.PeriodDurationTypeThresholds.length; i++) {\r\n items.push(new smapi.academic.PeriodDurationTypeThresholdModel().LoadFromResponse(responseData.PeriodDurationTypeThresholds[i]));\r\n }\r\n loaded.PeriodDurationTypeThresholds(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.Academic.Entity.PeriodDurationType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.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 PeriodDurationTypeThresholdModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n AcademicLevelID: null,\r\n HourThreshold: 0,\r\n CourseThreshold: 0,\r\n ThresholdTypeID: null,\r\n EnrollmentLoadID: 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.HourThreshold = ko.validatedObservable(settings.HourThreshold);\r\n this.CourseThreshold = ko.validatedObservable(settings.CourseThreshold);\r\n this.ThresholdTypeID = ko.validatedObservable(settings.ThresholdTypeID);\r\n this.EnrollmentLoadID = ko.validatedObservable(settings.EnrollmentLoadID);\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.ThresholdType = ko.observable();\r\n this.EnrollmentLoad = 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.HourThreshold != undefined) {\r\n loaded.HourThreshold(responseData.HourThreshold);\r\n }\r\n if (responseData.CourseThreshold != undefined) {\r\n loaded.CourseThreshold(responseData.CourseThreshold);\r\n }\r\n if (responseData.ThresholdTypeID != undefined) {\r\n loaded.ThresholdTypeID(responseData.ThresholdTypeID);\r\n }\r\n if (responseData.EnrollmentLoadID != undefined) {\r\n loaded.EnrollmentLoadID(responseData.EnrollmentLoadID);\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.ThresholdType != null) {\r\n loaded.ThresholdType(new smapi.academic.ThresholdTypeModel().LoadFromResponse(responseData.ThresholdType));\r\n }\r\n if (responseData.EnrollmentLoad != null) {\r\n loaded.EnrollmentLoad(new smapi.academic.EnrollmentLoadModel().LoadFromResponse(responseData.EnrollmentLoad));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.PeriodDurationTypeThreshold', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.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.HourThreshold.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.CourseThreshold.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.ThresholdTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EnrollmentLoadID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 ThresholdTypeModel(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.Academic.Entity.ThresholdType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.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 ProgramMasterModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n DivisionID: 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.DivisionID = ko.validatedObservable(settings.DivisionID);\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.Division = ko.observable();\r\n this.AvailableConcentrations = ko.observableArray([]);\r\n this.Goals = 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.DivisionID != undefined) {\r\n loaded.DivisionID(responseData.DivisionID);\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.Division != null) {\r\n loaded.Division(new smapi.academic.DivisionModel().LoadFromResponse(responseData.Division));\r\n }\r\n if (responseData.AvailableConcentrations != null && responseData.AvailableConcentrations.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AvailableConcentrations.length; i++) {\r\n items.push(new smapi.academic.ConcentrationMasterModel().LoadFromResponse(responseData.AvailableConcentrations[i]));\r\n }\r\n loaded.AvailableConcentrations(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.academic.EducationalGoalModel().LoadFromResponse(responseData.Goals[i]));\r\n }\r\n loaded.Goals(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.Academic.Entity.ProgramMaster', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.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.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 ConcentrationTypeModel(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.Academic.Entity.ConcentrationType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 HonorModel(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.Academic.Entity.Honor', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 ConcentrationMasterModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n ProgramID: 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.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.Program = 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.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.Program != null) {\r\n loaded.Program(new smapi.academic.ProgramMasterModel().LoadFromResponse(responseData.Program));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.ConcentrationMaster', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.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 PersonAcademicGoalConcentrationModel(options) {\r\n var defaults = {\r\n PersonAcademicGoalID: null,\r\n ConcentrationTypeID: null,\r\n ConcentrationID: null,\r\n SortOrder: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonAcademicGoalID = ko.validatedObservable(settings.PersonAcademicGoalID);\r\n this.ConcentrationTypeID = ko.validatedObservable(settings.ConcentrationTypeID);\r\n this.ConcentrationID = ko.validatedObservable(settings.ConcentrationID);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.ConcentrationType = ko.observable();\r\n this.ConcentrationMaster = ko.observable();\r\n this.PersonAcademicGoal = 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.PersonAcademicGoalID != undefined) {\r\n loaded.PersonAcademicGoalID(responseData.PersonAcademicGoalID);\r\n }\r\n if (responseData.ConcentrationTypeID != undefined) {\r\n loaded.ConcentrationTypeID(responseData.ConcentrationTypeID);\r\n }\r\n if (responseData.ConcentrationID != undefined) {\r\n loaded.ConcentrationID(responseData.ConcentrationID);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.ConcentrationType != null) {\r\n loaded.ConcentrationType(new smapi.academic.ConcentrationTypeModel().LoadFromResponse(responseData.ConcentrationType));\r\n }\r\n if (responseData.ConcentrationMaster != null) {\r\n loaded.ConcentrationMaster(new smapi.academic.ConcentrationMasterModel().LoadFromResponse(responseData.ConcentrationMaster));\r\n }\r\n if (responseData.PersonAcademicGoal != null) {\r\n loaded.PersonAcademicGoal(new smapi.academic.PersonAcademicGoalModel().LoadFromResponse(responseData.PersonAcademicGoal));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.PersonAcademicGoalConcentration', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\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.ConcentrationTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.SortOrder.extend({\r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function PersonAcademicGoalHonorModel(options) {\r\n var defaults = {\r\n PersonAcademicGoalID: null,\r\n HonorID: 0,\r\n SortOrder: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonAcademicGoalID = ko.validatedObservable(settings.PersonAcademicGoalID);\r\n this.HonorID = ko.validatedObservable(settings.HonorID);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Honor = ko.observable();\r\n this.PersonAcademicGoal = 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.PersonAcademicGoalID != undefined) {\r\n loaded.PersonAcademicGoalID(responseData.PersonAcademicGoalID);\r\n }\r\n if (responseData.HonorID != undefined) {\r\n loaded.HonorID(responseData.HonorID);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Honor != null) {\r\n loaded.Honor(new smapi.academic.HonorModel().LoadFromResponse(responseData.Honor));\r\n }\r\n if (responseData.PersonAcademicGoal != null) {\r\n loaded.PersonAcademicGoal(new smapi.academic.PersonAcademicGoalModel().LoadFromResponse(responseData.PersonAcademicGoal));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.PersonAcademicGoalHonor', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\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.HonorID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function PersonAcademicGoalModel(options) {\r\n var defaults = {\r\n PersonID: 0,\r\n GoalEarned: false,\r\n ConfirmDate: null,\r\n GraduationDate: null,\r\n EducationalGoalID: 0,\r\n TransferGoal: false,\r\n AdmissionDate: null,\r\n CollegeID: null,\r\n OtherEducationalGoal: '',\r\n EducationRanking: '',\r\n GPA: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.GoalEarned = ko.validatedObservable(settings.GoalEarned);\r\n this.ConfirmDate = ko.validatedObservable(settings.ConfirmDate);\r\n this.GraduationDate = ko.validatedObservable(settings.GraduationDate);\r\n this.EducationalGoalID = ko.validatedObservable(settings.EducationalGoalID);\r\n this.TransferGoal = ko.validatedObservable(settings.TransferGoal);\r\n this.AdmissionDate = ko.validatedObservable(settings.AdmissionDate);\r\n this.CollegeID = ko.validatedObservable(settings.CollegeID);\r\n this.OtherEducationalGoal = ko.validatedObservable(settings.OtherEducationalGoal);\r\n this.EducationRanking = ko.validatedObservable(settings.EducationRanking);\r\n this.GPA = ko.validatedObservable(settings.GPA);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = 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.ExternalEducationalGoal = ko.observable();\r\n this.College = ko.observable();\r\n this.PersonAcademicGoalHonors = ko.observableArray([]);\r\n this.PersonGoalPrograms = 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.GoalEarned != undefined) {\r\n loaded.GoalEarned(responseData.GoalEarned);\r\n }\r\n if (responseData.ConfirmDate != undefined) {\r\n loaded.ConfirmDate(responseData.ConfirmDate);\r\n }\r\n if (responseData.GraduationDate != undefined) {\r\n loaded.GraduationDate(responseData.GraduationDate);\r\n }\r\n if (responseData.EducationalGoalID != undefined) {\r\n loaded.EducationalGoalID(responseData.EducationalGoalID);\r\n }\r\n if (responseData.TransferGoal != undefined) {\r\n loaded.TransferGoal(responseData.TransferGoal);\r\n }\r\n if (responseData.AdmissionDate != undefined) {\r\n loaded.AdmissionDate(responseData.AdmissionDate);\r\n }\r\n if (responseData.CollegeID != undefined) {\r\n loaded.CollegeID(responseData.CollegeID);\r\n }\r\n if (responseData.OtherEducationalGoal != undefined) {\r\n loaded.OtherEducationalGoal(responseData.OtherEducationalGoal);\r\n }\r\n if (responseData.EducationRanking != undefined) {\r\n loaded.EducationRanking(responseData.EducationRanking);\r\n }\r\n if (responseData.GPA != undefined) {\r\n loaded.GPA(responseData.GPA);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n 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.ExternalEducationalGoal != null) {\r\n loaded.ExternalEducationalGoal(new smapi.academic.ExternalEducationalGoalModel().LoadFromResponse(responseData.ExternalEducationalGoal));\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.PersonAcademicGoalHonors != null && responseData.PersonAcademicGoalHonors.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.PersonAcademicGoalHonors.length; i++) {\r\n items.push(new smapi.academic.PersonAcademicGoalHonorModel().LoadFromResponse(responseData.PersonAcademicGoalHonors[i]));\r\n }\r\n loaded.PersonAcademicGoalHonors(items);\r\n }\r\n if (responseData.PersonGoalPrograms != null && responseData.PersonGoalPrograms.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.PersonGoalPrograms.length; i++) {\r\n items.push(new smapi.academic.PersonGoalProgramModel().LoadFromResponse(responseData.PersonGoalPrograms[i]));\r\n }\r\n loaded.PersonGoalPrograms(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.Academic.Entity.PersonAcademicGoal', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.ConfirmDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\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.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.AdmissionDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_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.OtherEducationalGoal.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.EducationRanking.extend({\r\n maxLength: {\r\n params: 1,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '1')\r\n }\r\n });\r\n this.GPA.extend({\r\n min: {\r\n params: -179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function CourseTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.CourseType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 CourseNeedMasterModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n PerClass: false,\r\n PerGroup: false,\r\n PerStudent: 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.PerClass = ko.validatedObservable(settings.PerClass);\r\n this.PerGroup = ko.validatedObservable(settings.PerGroup);\r\n this.PerStudent = ko.validatedObservable(settings.PerStudent);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.PerClass != undefined) {\r\n loaded.PerClass(responseData.PerClass);\r\n }\r\n if (responseData.PerGroup != undefined) {\r\n loaded.PerGroup(responseData.PerGroup);\r\n }\r\n if (responseData.PerStudent != undefined) {\r\n loaded.PerStudent(responseData.PerStudent);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.Academic.Entity.CourseNeedMaster', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 CourseNeedModel(options) {\r\n var defaults = {\r\n CourseNeedMasterID: null,\r\n PerClass: false,\r\n PerGroup: false,\r\n PerStudent: 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.CourseNeedMasterID = ko.validatedObservable(settings.CourseNeedMasterID);\r\n this.PerClass = ko.validatedObservable(settings.PerClass);\r\n this.PerGroup = ko.validatedObservable(settings.PerGroup);\r\n this.PerStudent = ko.validatedObservable(settings.PerStudent);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.CourseNeedMaster = 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.CourseNeedMasterID != undefined) {\r\n loaded.CourseNeedMasterID(responseData.CourseNeedMasterID);\r\n }\r\n if (responseData.PerClass != undefined) {\r\n loaded.PerClass(responseData.PerClass);\r\n }\r\n if (responseData.PerGroup != undefined) {\r\n loaded.PerGroup(responseData.PerGroup);\r\n }\r\n if (responseData.PerStudent != undefined) {\r\n loaded.PerStudent(responseData.PerStudent);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.CourseNeedMaster != null) {\r\n loaded.CourseNeedMaster(new smapi.academic.CourseNeedMasterModel().LoadFromResponse(responseData.CourseNeedMaster));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.CourseNeed', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.CourseNeedMasterID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 LocationPropertyModel(options) {\r\n var defaults = {\r\n Quantity: 0,\r\n BeginDate: null,\r\n EndDate: null,\r\n PropertyID: 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.Quantity = ko.validatedObservable(settings.Quantity);\r\n this.BeginDate = ko.validatedObservable(settings.BeginDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.PropertyID = ko.validatedObservable(settings.PropertyID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.PropertyofLocation = 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.Quantity != undefined) {\r\n loaded.Quantity(responseData.Quantity);\r\n }\r\n if (responseData.BeginDate != undefined) {\r\n loaded.BeginDate(responseData.BeginDate);\r\n }\r\n if (responseData.EndDate != undefined) {\r\n loaded.EndDate(responseData.EndDate);\r\n }\r\n if (responseData.PropertyID != undefined) {\r\n loaded.PropertyID(responseData.PropertyID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.PropertyofLocation != null) {\r\n loaded.PropertyofLocation(new smapi.academic.CourseNeedMasterModel().LoadFromResponse(responseData.PropertyofLocation));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.LocationProperty', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Quantity.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.BeginDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.EndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.PropertyID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 CourseGroupModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.CourseGroup', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.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 GradeCatalogModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n Remedial: false,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.Remedial = ko.validatedObservable(settings.Remedial);\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.AvailableGrades = ko.observableArray([]);\r\n this.CatalogCategories = 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.Remedial != undefined) {\r\n loaded.Remedial(responseData.Remedial);\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.AvailableGrades != null && responseData.AvailableGrades.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AvailableGrades.length; i++) {\r\n items.push(new smapi.academic.GradeMasterModel().LoadFromResponse(responseData.AvailableGrades[i]));\r\n }\r\n loaded.AvailableGrades(items);\r\n }\r\n if (responseData.CatalogCategories != null && responseData.CatalogCategories.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.CatalogCategories.length; i++) {\r\n items.push(new smapi.academic.CatalogCategoryModel().LoadFromResponse(responseData.CatalogCategories[i]));\r\n }\r\n loaded.CatalogCategories(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.Academic.Entity.GradeCatalog', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 GradeEffectModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n EffectEnrollmentEarned: false,\r\n EffectEarned: false,\r\n EffectEnrollmentHours: false,\r\n EffectHours: false,\r\n EffectEnrollmentGPA: false,\r\n EffectGPA: false,\r\n EffectAttemptedHours: false,\r\n ActAsUnGraded: false,\r\n NonWeighted: 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.EffectEnrollmentEarned = ko.validatedObservable(settings.EffectEnrollmentEarned);\r\n this.EffectEarned = ko.validatedObservable(settings.EffectEarned);\r\n this.EffectEnrollmentHours = ko.validatedObservable(settings.EffectEnrollmentHours);\r\n this.EffectHours = ko.validatedObservable(settings.EffectHours);\r\n this.EffectEnrollmentGPA = ko.validatedObservable(settings.EffectEnrollmentGPA);\r\n this.EffectGPA = ko.validatedObservable(settings.EffectGPA);\r\n this.EffectAttemptedHours = ko.validatedObservable(settings.EffectAttemptedHours);\r\n this.ActAsUnGraded = ko.validatedObservable(settings.ActAsUnGraded);\r\n this.NonWeighted = ko.validatedObservable(settings.NonWeighted);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.EffectEnrollmentEarned != undefined) {\r\n loaded.EffectEnrollmentEarned(responseData.EffectEnrollmentEarned);\r\n }\r\n if (responseData.EffectEarned != undefined) {\r\n loaded.EffectEarned(responseData.EffectEarned);\r\n }\r\n if (responseData.EffectEnrollmentHours != undefined) {\r\n loaded.EffectEnrollmentHours(responseData.EffectEnrollmentHours);\r\n }\r\n if (responseData.EffectHours != undefined) {\r\n loaded.EffectHours(responseData.EffectHours);\r\n }\r\n if (responseData.EffectEnrollmentGPA != undefined) {\r\n loaded.EffectEnrollmentGPA(responseData.EffectEnrollmentGPA);\r\n }\r\n if (responseData.EffectGPA != undefined) {\r\n loaded.EffectGPA(responseData.EffectGPA);\r\n }\r\n if (responseData.EffectAttemptedHours != undefined) {\r\n loaded.EffectAttemptedHours(responseData.EffectAttemptedHours);\r\n }\r\n if (responseData.ActAsUnGraded != undefined) {\r\n loaded.ActAsUnGraded(responseData.ActAsUnGraded);\r\n }\r\n if (responseData.NonWeighted != undefined) {\r\n loaded.NonWeighted(responseData.NonWeighted);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.Academic.Entity.GradeEffect', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function GradeEffectTypeModel(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.Academic.Entity.GradeEffectType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.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 GradeMasterGradeEffectModel(options) {\r\n var defaults = {\r\n GradeMasterID: null,\r\n GradeEffectTypeID: null,\r\n GradeEffectID: 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.GradeMasterID = ko.validatedObservable(settings.GradeMasterID);\r\n this.GradeEffectTypeID = ko.validatedObservable(settings.GradeEffectTypeID);\r\n this.GradeEffectID = ko.validatedObservable(settings.GradeEffectID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.GradeMaster = ko.observable();\r\n this.GradeEffectType = ko.observable();\r\n this.GradeEffect = 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.GradeMasterID != undefined) {\r\n loaded.GradeMasterID(responseData.GradeMasterID);\r\n }\r\n if (responseData.GradeEffectTypeID != undefined) {\r\n loaded.GradeEffectTypeID(responseData.GradeEffectTypeID);\r\n }\r\n if (responseData.GradeEffectID != undefined) {\r\n loaded.GradeEffectID(responseData.GradeEffectID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.GradeMaster != null) {\r\n loaded.GradeMaster(new smapi.academic.GradeMasterModel().LoadFromResponse(responseData.GradeMaster));\r\n }\r\n if (responseData.GradeEffectType != null) {\r\n loaded.GradeEffectType(new smapi.academic.GradeEffectTypeModel().LoadFromResponse(responseData.GradeEffectType));\r\n }\r\n if (responseData.GradeEffect != null) {\r\n loaded.GradeEffect(new smapi.academic.GradeEffectModel().LoadFromResponse(responseData.GradeEffect));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.GradeMasterGradeEffect', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.GradeMasterID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GradeEffectTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GradeEffectID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 GradeMasterModel(options) {\r\n var defaults = {\r\n CatalogID: null,\r\n Grade: '',\r\n GradePoint: 0,\r\n CanMarkAsRepeat: false,\r\n ScoreLower: 0,\r\n ScoreUpper: 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.CatalogID = ko.validatedObservable(settings.CatalogID);\r\n this.Grade = ko.validatedObservable(settings.Grade);\r\n this.GradePoint = ko.validatedObservable(settings.GradePoint);\r\n this.CanMarkAsRepeat = ko.validatedObservable(settings.CanMarkAsRepeat);\r\n this.ScoreLower = ko.validatedObservable(settings.ScoreLower);\r\n this.ScoreUpper = ko.validatedObservable(settings.ScoreUpper);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.GradeCatalog = ko.observable();\r\n this.GradeEffects = 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.CatalogID != undefined) {\r\n loaded.CatalogID(responseData.CatalogID);\r\n }\r\n if (responseData.Grade != undefined) {\r\n loaded.Grade(responseData.Grade);\r\n }\r\n if (responseData.GradePoint != undefined) {\r\n loaded.GradePoint(responseData.GradePoint);\r\n }\r\n if (responseData.CanMarkAsRepeat != undefined) {\r\n loaded.CanMarkAsRepeat(responseData.CanMarkAsRepeat);\r\n }\r\n if (responseData.ScoreLower != undefined) {\r\n loaded.ScoreLower(responseData.ScoreLower);\r\n }\r\n if (responseData.ScoreUpper != undefined) {\r\n loaded.ScoreUpper(responseData.ScoreUpper);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.GradeCatalog != null) {\r\n loaded.GradeCatalog(new smapi.academic.GradeCatalogModel().LoadFromResponse(responseData.GradeCatalog));\r\n }\r\n if (responseData.GradeEffects != null && responseData.GradeEffects.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.GradeEffects.length; i++) {\r\n items.push(new smapi.academic.GradeMasterGradeEffectModel().LoadFromResponse(responseData.GradeEffects[i]));\r\n }\r\n loaded.GradeEffects(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.Academic.Entity.GradeMaster', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.CatalogID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Grade.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 15,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '15')\r\n }\r\n });\r\n this.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: -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.ScoreLower.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.ScoreUpper.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.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function CourseCatalogModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BeginDate: null,\r\n EndDate: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BeginDate = ko.validatedObservable(settings.BeginDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.BeginDate != undefined) {\r\n loaded.BeginDate(responseData.BeginDate);\r\n }\r\n if (responseData.EndDate != undefined) {\r\n loaded.EndDate(responseData.EndDate);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.Academic.Entity.CourseCatalog', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n maxLength: {\r\n params: 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.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -32768,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 32767,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BeginDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.EndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function CourseEnrollmentModeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n ForCredit: false,\r\n EffectsGPA: false,\r\n BusinessMeaningName: '',\r\n ShortName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\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.ForCredit = ko.validatedObservable(settings.ForCredit);\r\n this.EffectsGPA = ko.validatedObservable(settings.EffectsGPA);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ShortName = ko.validatedObservable(settings.ShortName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.ApplicableRateTypes = 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.ForCredit != undefined) {\r\n loaded.ForCredit(responseData.ForCredit);\r\n }\r\n if (responseData.EffectsGPA != undefined) {\r\n loaded.EffectsGPA(responseData.EffectsGPA);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ShortName != undefined) {\r\n loaded.ShortName(responseData.ShortName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.ApplicableRateTypes != null && responseData.ApplicableRateTypes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ApplicableRateTypes.length; i++) {\r\n items.push(new smapi.financials.RateTypeModel().LoadFromResponse(responseData.ApplicableRateTypes[i]));\r\n }\r\n loaded.ApplicableRateTypes(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.Academic.Entity.CourseEnrollmentMode', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.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.ShortName.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function EnrollmentModeMinGradeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n MinimumPassingScore: 0,\r\n EnrollmentModeID: null,\r\n AcademicLevelID: 0,\r\n GradeCatalogExclusiveID: null,\r\n MinimumGradeID: 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.MinimumPassingScore = ko.validatedObservable(settings.MinimumPassingScore);\r\n this.EnrollmentModeID = ko.validatedObservable(settings.EnrollmentModeID);\r\n this.AcademicLevelID = ko.validatedObservable(settings.AcademicLevelID);\r\n this.GradeCatalogExclusiveID = ko.validatedObservable(settings.GradeCatalogExclusiveID);\r\n this.MinimumGradeID = ko.validatedObservable(settings.MinimumGradeID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.GradeCatalogExclusive = ko.observable();\r\n this.MinimumGrade = ko.observable();\r\n this.AcademicLevel = ko.observable();\r\n this.EnrollmentMode = 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.MinimumPassingScore != undefined) {\r\n loaded.MinimumPassingScore(responseData.MinimumPassingScore);\r\n }\r\n if (responseData.EnrollmentModeID != undefined) {\r\n loaded.EnrollmentModeID(responseData.EnrollmentModeID);\r\n }\r\n if (responseData.AcademicLevelID != undefined) {\r\n loaded.AcademicLevelID(responseData.AcademicLevelID);\r\n }\r\n if (responseData.GradeCatalogExclusiveID != undefined) {\r\n loaded.GradeCatalogExclusiveID(responseData.GradeCatalogExclusiveID);\r\n }\r\n if (responseData.MinimumGradeID != undefined) {\r\n loaded.MinimumGradeID(responseData.MinimumGradeID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.GradeCatalogExclusive != null) {\r\n loaded.GradeCatalogExclusive(new smapi.academic.GradeCatalogModel().LoadFromResponse(responseData.GradeCatalogExclusive));\r\n }\r\n if (responseData.MinimumGrade != null) {\r\n loaded.MinimumGrade(new smapi.academic.GradeMasterModel().LoadFromResponse(responseData.MinimumGrade));\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.EnrollmentMode != null) {\r\n loaded.EnrollmentMode(new smapi.academic.CourseEnrollmentModeModel().LoadFromResponse(responseData.EnrollmentMode));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.EnrollmentModeMinGrade', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.MinimumPassingScore.extend({\r\n min: {\r\n params: -179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EnrollmentModeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.GradeCatalogExclusiveID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MinimumGradeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 CourseMasterMinGradeOverrideModel(options) {\r\n var defaults = {\r\n MinimumPassingScore: 0,\r\n GradeMasterID: null,\r\n EnrollmentModeMinGradeID: 0,\r\n CourseMasterID: 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.MinimumPassingScore = ko.validatedObservable(settings.MinimumPassingScore);\r\n this.GradeMasterID = ko.validatedObservable(settings.GradeMasterID);\r\n this.EnrollmentModeMinGradeID = ko.validatedObservable(settings.EnrollmentModeMinGradeID);\r\n this.CourseMasterID = ko.validatedObservable(settings.CourseMasterID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.MinimumGradeOverride = ko.observable();\r\n this.EnrollmentModeMinGrade = ko.observable();\r\n this.CourseMaster = 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.MinimumPassingScore != undefined) {\r\n loaded.MinimumPassingScore(responseData.MinimumPassingScore);\r\n }\r\n if (responseData.GradeMasterID != undefined) {\r\n loaded.GradeMasterID(responseData.GradeMasterID);\r\n }\r\n if (responseData.EnrollmentModeMinGradeID != undefined) {\r\n loaded.EnrollmentModeMinGradeID(responseData.EnrollmentModeMinGradeID);\r\n }\r\n if (responseData.CourseMasterID != undefined) {\r\n loaded.CourseMasterID(responseData.CourseMasterID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.MinimumGradeOverride != null) {\r\n loaded.MinimumGradeOverride(new smapi.academic.GradeMasterModel().LoadFromResponse(responseData.MinimumGradeOverride));\r\n }\r\n if (responseData.EnrollmentModeMinGrade != null) {\r\n loaded.EnrollmentModeMinGrade(new smapi.academic.EnrollmentModeMinGradeModel().LoadFromResponse(responseData.EnrollmentModeMinGrade));\r\n }\r\n if (responseData.CourseMaster != null) {\r\n loaded.CourseMaster(new smapi.academic.CourseMasterModel().LoadFromResponse(responseData.CourseMaster));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.CourseMasterMinGradeOverride', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.MinimumPassingScore.extend({\r\n min: {\r\n params: -179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GradeMasterID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EnrollmentModeMinGradeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CourseMasterID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 CourseMasterModel(options) {\r\n var defaults = {\r\n CourseID: '',\r\n DepartmentID: null,\r\n CourseNumber: '',\r\n CourseTypeID: null,\r\n Title: '',\r\n Description: '',\r\n CreditHours: 0,\r\n DefaultCreditHours: 0,\r\n ClockHours: 0,\r\n VariableCredit: false,\r\n CanRepeat: false,\r\n BeginDate: null,\r\n EndDate: null,\r\n AcademicLevelID: null,\r\n Catalog: false,\r\n ShowGradeReport: false,\r\n ShowTranscript: false,\r\n RequiresFacultyApproval: false,\r\n TranscriptTitle: '',\r\n TranscriptDescription: '',\r\n TranscriptCreditHours: 0,\r\n RepeatThreshold: 0,\r\n PassingScore: 0,\r\n SourceCollegeID: null,\r\n ExternalPassingGradeID: null,\r\n ExternalKey: '',\r\n CourseDepartment: '',\r\n IndependentStudy: false,\r\n MinimumAllowedCreditHours: 0,\r\n MaximumAllowedCreditHours: 0,\r\n AcademicDepartmentID: 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.CourseID = ko.validatedObservable(settings.CourseID);\r\n this.DepartmentID = ko.validatedObservable(settings.DepartmentID);\r\n this.CourseNumber = ko.validatedObservable(settings.CourseNumber);\r\n this.CourseTypeID = ko.validatedObservable(settings.CourseTypeID);\r\n this.Title = ko.validatedObservable(settings.Title);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.CreditHours = ko.validatedObservable(settings.CreditHours);\r\n this.DefaultCreditHours = ko.validatedObservable(settings.DefaultCreditHours);\r\n this.ClockHours = ko.validatedObservable(settings.ClockHours);\r\n this.VariableCredit = ko.validatedObservable(settings.VariableCredit);\r\n this.CanRepeat = ko.validatedObservable(settings.CanRepeat);\r\n this.BeginDate = ko.validatedObservable(settings.BeginDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.AcademicLevelID = ko.validatedObservable(settings.AcademicLevelID);\r\n this.Catalog = ko.validatedObservable(settings.Catalog);\r\n this.ShowGradeReport = ko.validatedObservable(settings.ShowGradeReport);\r\n this.ShowTranscript = ko.validatedObservable(settings.ShowTranscript);\r\n this.RequiresFacultyApproval = ko.validatedObservable(settings.RequiresFacultyApproval);\r\n this.TranscriptTitle = ko.validatedObservable(settings.TranscriptTitle);\r\n this.TranscriptDescription = ko.validatedObservable(settings.TranscriptDescription);\r\n this.TranscriptCreditHours = ko.validatedObservable(settings.TranscriptCreditHours);\r\n this.RepeatThreshold = ko.validatedObservable(settings.RepeatThreshold);\r\n this.PassingScore = ko.validatedObservable(settings.PassingScore);\r\n this.SourceCollegeID = ko.validatedObservable(settings.SourceCollegeID);\r\n this.ExternalPassingGradeID = ko.validatedObservable(settings.ExternalPassingGradeID);\r\n this.ExternalKey = ko.validatedObservable(settings.ExternalKey);\r\n this.CourseDepartment = ko.validatedObservable(settings.CourseDepartment);\r\n this.IndependentStudy = ko.validatedObservable(settings.IndependentStudy);\r\n this.MinimumAllowedCreditHours = ko.validatedObservable(settings.MinimumAllowedCreditHours);\r\n this.MaximumAllowedCreditHours = ko.validatedObservable(settings.MaximumAllowedCreditHours);\r\n this.AcademicDepartmentID = ko.validatedObservable(settings.AcademicDepartmentID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Department = ko.observable();\r\n this.CourseType = ko.observable();\r\n this.AcademicLevel = ko.observable();\r\n this.EnrollmentModeOverride = ko.observableArray([]);\r\n this.SourceCollege = ko.observable();\r\n this.ExternalPassingGrade = ko.observable();\r\n this.CourseGroups = ko.observableArray([]);\r\n this.Needs = ko.observableArray([]);\r\n this.CourseRequisites = ko.observableArray([]);\r\n this.CourseCatalog = ko.observableArray([]);\r\n this.CourseEquivalence = ko.observableArray([]);\r\n this.AcademicDepartment = ko.observable();\r\n this.SubjectAreas = ko.observableArray([]);\r\n this.DocumentRepository = ko.observableArray([]);\r\n this.Campuses = ko.observableArray([]);\r\n this.FundingSources = ko.observableArray([]);\r\n this.CourseUnits = ko.observableArray([]);\r\n this.LanguagesOfInstruction = ko.observableArray([]);\r\n this.QualificationModes = ko.observableArray([]);\r\n this.Requisites = ko.observableArray([]);\r\n this.NonCourseRequisites = ko.observableArray([]);\r\n this.LearningOutcomes = 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.CourseID != undefined) {\r\n loaded.CourseID(responseData.CourseID);\r\n }\r\n if (responseData.DepartmentID != undefined) {\r\n loaded.DepartmentID(responseData.DepartmentID);\r\n }\r\n if (responseData.CourseNumber != undefined) {\r\n loaded.CourseNumber(responseData.CourseNumber);\r\n }\r\n if (responseData.CourseTypeID != undefined) {\r\n loaded.CourseTypeID(responseData.CourseTypeID);\r\n }\r\n if (responseData.Title != undefined) {\r\n loaded.Title(responseData.Title);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.CreditHours != undefined) {\r\n loaded.CreditHours(responseData.CreditHours);\r\n }\r\n if (responseData.DefaultCreditHours != undefined) {\r\n loaded.DefaultCreditHours(responseData.DefaultCreditHours);\r\n }\r\n if (responseData.ClockHours != undefined) {\r\n loaded.ClockHours(responseData.ClockHours);\r\n }\r\n if (responseData.VariableCredit != undefined) {\r\n loaded.VariableCredit(responseData.VariableCredit);\r\n }\r\n if (responseData.CanRepeat != undefined) {\r\n loaded.CanRepeat(responseData.CanRepeat);\r\n }\r\n if (responseData.BeginDate != undefined) {\r\n loaded.BeginDate(responseData.BeginDate);\r\n }\r\n if (responseData.EndDate != undefined) {\r\n loaded.EndDate(responseData.EndDate);\r\n }\r\n if (responseData.AcademicLevelID != undefined) {\r\n loaded.AcademicLevelID(responseData.AcademicLevelID);\r\n }\r\n if (responseData.Catalog != undefined) {\r\n loaded.Catalog(responseData.Catalog);\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.RequiresFacultyApproval != undefined) {\r\n loaded.RequiresFacultyApproval(responseData.RequiresFacultyApproval);\r\n }\r\n if (responseData.TranscriptTitle != undefined) {\r\n loaded.TranscriptTitle(responseData.TranscriptTitle);\r\n }\r\n if (responseData.TranscriptDescription != undefined) {\r\n loaded.TranscriptDescription(responseData.TranscriptDescription);\r\n }\r\n if (responseData.TranscriptCreditHours != undefined) {\r\n loaded.TranscriptCreditHours(responseData.TranscriptCreditHours);\r\n }\r\n if (responseData.RepeatThreshold != undefined) {\r\n loaded.RepeatThreshold(responseData.RepeatThreshold);\r\n }\r\n if (responseData.PassingScore != undefined) {\r\n loaded.PassingScore(responseData.PassingScore);\r\n }\r\n if (responseData.SourceCollegeID != undefined) {\r\n loaded.SourceCollegeID(responseData.SourceCollegeID);\r\n }\r\n if (responseData.ExternalPassingGradeID != undefined) {\r\n loaded.ExternalPassingGradeID(responseData.ExternalPassingGradeID);\r\n }\r\n if (responseData.ExternalKey != undefined) {\r\n loaded.ExternalKey(responseData.ExternalKey);\r\n }\r\n if (responseData.CourseDepartment != undefined) {\r\n loaded.CourseDepartment(responseData.CourseDepartment);\r\n }\r\n if (responseData.IndependentStudy != undefined) {\r\n loaded.IndependentStudy(responseData.IndependentStudy);\r\n }\r\n if (responseData.MinimumAllowedCreditHours != undefined) {\r\n loaded.MinimumAllowedCreditHours(responseData.MinimumAllowedCreditHours);\r\n }\r\n if (responseData.MaximumAllowedCreditHours != undefined) {\r\n loaded.MaximumAllowedCreditHours(responseData.MaximumAllowedCreditHours);\r\n }\r\n if (responseData.AcademicDepartmentID != undefined) {\r\n loaded.AcademicDepartmentID(responseData.AcademicDepartmentID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Department != null) {\r\n loaded.Department(new smapi.entities.GroupModel().LoadFromResponse(responseData.Department));\r\n }\r\n if (responseData.CourseType != null) {\r\n loaded.CourseType(new smapi.academic.CourseTypeModel().LoadFromResponse(responseData.CourseType));\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.EnrollmentModeOverride != null && responseData.EnrollmentModeOverride.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.EnrollmentModeOverride.length; i++) {\r\n items.push(new smapi.academic.CourseMasterMinGradeOverrideModel().LoadFromResponse(responseData.EnrollmentModeOverride[i]));\r\n }\r\n loaded.EnrollmentModeOverride(items);\r\n }\r\n if (responseData.SourceCollege != null) {\r\n loaded.SourceCollege(new smapi.academic.CollegeModel().LoadFromResponse(responseData.SourceCollege));\r\n }\r\n if (responseData.ExternalPassingGrade != null) {\r\n loaded.ExternalPassingGrade(new smapi.academic.GradeMasterModel().LoadFromResponse(responseData.ExternalPassingGrade));\r\n }\r\n if (responseData.CourseGroups != null && responseData.CourseGroups.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.CourseGroups.length; i++) {\r\n items.push(new smapi.academic.CourseGroupModel().LoadFromResponse(responseData.CourseGroups[i]));\r\n }\r\n loaded.CourseGroups(items);\r\n }\r\n if (responseData.Needs != null && responseData.Needs.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Needs.length; i++) {\r\n items.push(new smapi.academic.CourseNeedMasterModel().LoadFromResponse(responseData.Needs[i]));\r\n }\r\n loaded.Needs(items);\r\n }\r\n if (responseData.CourseRequisites != null && responseData.CourseRequisites.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.CourseRequisites.length; i++) {\r\n items.push(new smapi.academic.CourseRequirementMasterModel().LoadFromResponse(responseData.CourseRequisites[i]));\r\n }\r\n loaded.CourseRequisites(items);\r\n }\r\n if (responseData.CourseCatalog != null && responseData.CourseCatalog.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.CourseCatalog.length; i++) {\r\n items.push(new smapi.academic.CourseCatalogModel().LoadFromResponse(responseData.CourseCatalog[i]));\r\n }\r\n loaded.CourseCatalog(items);\r\n }\r\n if (responseData.CourseEquivalence != null && responseData.CourseEquivalence.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.CourseEquivalence.length; i++) {\r\n items.push(new smapi.academic.CourseEquivalenceModel().LoadFromResponse(responseData.CourseEquivalence[i]));\r\n }\r\n loaded.CourseEquivalence(items);\r\n }\r\n if (responseData.AcademicDepartment != null) {\r\n loaded.AcademicDepartment(new smapi.academic.AcademicDepartmentModel().LoadFromResponse(responseData.AcademicDepartment));\r\n }\r\n if (responseData.SubjectAreas != null && responseData.SubjectAreas.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.SubjectAreas.length; i++) {\r\n items.push(new smapi.academic.AcademicSubjectAreaModel().LoadFromResponse(responseData.SubjectAreas[i]));\r\n }\r\n loaded.SubjectAreas(items);\r\n }\r\n if (responseData.DocumentRepository != null && responseData.DocumentRepository.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.DocumentRepository.length; i++) {\r\n items.push(new smapi.community.DocumentRepositoryModel().LoadFromResponse(responseData.DocumentRepository[i]));\r\n }\r\n loaded.DocumentRepository(items);\r\n }\r\n if (responseData.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.FundingSources != null && responseData.FundingSources.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.FundingSources.length; i++) {\r\n items.push(new smapi.academic.CourseMasterFundingSourceModel().LoadFromResponse(responseData.FundingSources[i]));\r\n }\r\n loaded.FundingSources(items);\r\n }\r\n if (responseData.CourseUnits != null && responseData.CourseUnits.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.CourseUnits.length; i++) {\r\n items.push(new smapi.academic.CourseUnitMeasureModel().LoadFromResponse(responseData.CourseUnits[i]));\r\n }\r\n loaded.CourseUnits(items);\r\n }\r\n if (responseData.LanguagesOfInstruction != null && responseData.LanguagesOfInstruction.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.LanguagesOfInstruction.length; i++) {\r\n items.push(new smapi.academic.LanguageOfInstructionModel().LoadFromResponse(responseData.LanguagesOfInstruction[i]));\r\n }\r\n loaded.LanguagesOfInstruction(items);\r\n }\r\n if (responseData.QualificationModes != null && responseData.QualificationModes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.QualificationModes.length; i++) {\r\n items.push(new smapi.academic.QualificationModeModel().LoadFromResponse(responseData.QualificationModes[i]));\r\n }\r\n loaded.QualificationModes(items);\r\n }\r\n if (responseData.Requisites != null && responseData.Requisites.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Requisites.length; i++) {\r\n items.push(new smapi.academic.CourseRequisiteModel().LoadFromResponse(responseData.Requisites[i]));\r\n }\r\n loaded.Requisites(items);\r\n }\r\n if (responseData.NonCourseRequisites != null && responseData.NonCourseRequisites.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.NonCourseRequisites.length; i++) {\r\n items.push(new smapi.academic.NonCourseRequisiteModel().LoadFromResponse(responseData.NonCourseRequisites[i]));\r\n }\r\n loaded.NonCourseRequisites(items);\r\n }\r\n if (responseData.LearningOutcomes != null && responseData.LearningOutcomes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.LearningOutcomes.length; i++) {\r\n items.push(new smapi.academic.LearningOutcomeModel().LoadFromResponse(responseData.LearningOutcomes[i]));\r\n }\r\n loaded.LearningOutcomes(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.Academic.Entity.CourseMaster', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\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.DepartmentID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CourseNumber.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.CourseTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Title.extend({\r\n 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: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n this.CreditHours.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.DefaultCreditHours.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.ClockHours.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.BeginDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.EndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.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.TranscriptTitle.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.TranscriptDescription.extend({\r\n maxLength: {\r\n params: 4000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '4000')\r\n }\r\n });\r\n this.TranscriptCreditHours.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.RepeatThreshold.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.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: -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.SourceCollegeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ExternalPassingGradeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ExternalKey.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.CourseDepartment.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.MinimumAllowedCreditHours.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.MaximumAllowedCreditHours.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.AcademicDepartmentID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 GoalStandingMasterModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n GoodStanding: false,\r\n SortOrder: '',\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.GoodStanding = ko.validatedObservable(settings.GoodStanding);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.GoodStanding != undefined) {\r\n loaded.GoodStanding(responseData.GoodStanding);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.GoalStandingMaster', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 10,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '10')\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function EnrollmentStatusMasterModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n CanRegister: false,\r\n SortOrder: '',\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.CanRegister = ko.validatedObservable(settings.CanRegister);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.CanRegister != undefined) {\r\n loaded.CanRegister(responseData.CanRegister);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.EnrollmentStatusMaster', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 10,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '10')\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AcademicPeriodMilestoneGroupModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Milestones = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.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.academic.AcademicPeriodMilestoneMasterModel().LoadFromResponse(responseData.Milestones[i]));\r\n }\r\n loaded.Milestones(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.Academic.Entity.AcademicPeriodMilestoneGroup', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 AcademicPeriodMilestoneTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AcademicPeriodMilestoneCriteria = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AcademicPeriodMilestoneCriteria != null && responseData.AcademicPeriodMilestoneCriteria.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AcademicPeriodMilestoneCriteria.length; i++) {\r\n items.push(new smapi.academic.AcademicPeriodMilestoneCriteriaModel().LoadFromResponse(responseData.AcademicPeriodMilestoneCriteria[i]));\r\n }\r\n loaded.AcademicPeriodMilestoneCriteria(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.Academic.Entity.AcademicPeriodMilestoneType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 AcademicPeriodMilestoneCriteriaModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.EnrollmentLevels = ko.observableArray([]);\r\n this.AcademicPrograms = ko.observableArray([]);\r\n this.Campuses = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.EnrollmentLevels != null && responseData.EnrollmentLevels.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.EnrollmentLevels.length; i++) {\r\n items.push(new smapi.academic.EnrollmentLevelModel().LoadFromResponse(responseData.EnrollmentLevels[i]));\r\n }\r\n loaded.EnrollmentLevels(items);\r\n }\r\n if (responseData.AcademicPrograms != null && responseData.AcademicPrograms.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AcademicPrograms.length; i++) {\r\n items.push(new smapi.academic.AcademicProgramModel().LoadFromResponse(responseData.AcademicPrograms[i]));\r\n }\r\n loaded.AcademicPrograms(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 return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.AcademicPeriodMilestoneCriteria', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 ProgramTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.ProgramType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 AcademicPeriodMilestoneMasterModel(options) {\r\n var defaults = {\r\n AcademicPeriodID: null,\r\n PeriodDurationTypeID: null,\r\n MilestoneBegin: null,\r\n MilestoneEnd: null,\r\n MilestoneBeginDaysFromPeriodStart: 0,\r\n MilestoneEndDaysFromPeriodStart: 0,\r\n MilestoneBeginDaysFromPeriodEnd: 0,\r\n MilestoneEndDaysFromPeriodEnd: 0,\r\n MilestoneID: null,\r\n MilestoneGroupID: 0,\r\n RelativeToCourse: 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.AcademicPeriodID = ko.validatedObservable(settings.AcademicPeriodID);\r\n this.PeriodDurationTypeID = ko.validatedObservable(settings.PeriodDurationTypeID);\r\n this.MilestoneBegin = ko.validatedObservable(settings.MilestoneBegin);\r\n this.MilestoneEnd = ko.validatedObservable(settings.MilestoneEnd);\r\n this.MilestoneBeginDaysFromPeriodStart = ko.validatedObservable(settings.MilestoneBeginDaysFromPeriodStart);\r\n this.MilestoneEndDaysFromPeriodStart = ko.validatedObservable(settings.MilestoneEndDaysFromPeriodStart);\r\n this.MilestoneBeginDaysFromPeriodEnd = ko.validatedObservable(settings.MilestoneBeginDaysFromPeriodEnd);\r\n this.MilestoneEndDaysFromPeriodEnd = ko.validatedObservable(settings.MilestoneEndDaysFromPeriodEnd);\r\n this.MilestoneID = ko.validatedObservable(settings.MilestoneID);\r\n this.MilestoneGroupID = ko.validatedObservable(settings.MilestoneGroupID);\r\n this.RelativeToCourse = ko.validatedObservable(settings.RelativeToCourse);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AcademicPeriod = ko.observable();\r\n this.Milestone = ko.observable();\r\n this.PeriodDurationType = ko.observable();\r\n this.MilestoneGroup = 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.AcademicPeriodID != undefined) {\r\n loaded.AcademicPeriodID(responseData.AcademicPeriodID);\r\n }\r\n if (responseData.PeriodDurationTypeID != undefined) {\r\n loaded.PeriodDurationTypeID(responseData.PeriodDurationTypeID);\r\n }\r\n if (responseData.MilestoneBegin != undefined) {\r\n loaded.MilestoneBegin(responseData.MilestoneBegin);\r\n }\r\n if (responseData.MilestoneEnd != undefined) {\r\n loaded.MilestoneEnd(responseData.MilestoneEnd);\r\n }\r\n if (responseData.MilestoneBeginDaysFromPeriodStart != undefined) {\r\n loaded.MilestoneBeginDaysFromPeriodStart(responseData.MilestoneBeginDaysFromPeriodStart);\r\n }\r\n if (responseData.MilestoneEndDaysFromPeriodStart != undefined) {\r\n loaded.MilestoneEndDaysFromPeriodStart(responseData.MilestoneEndDaysFromPeriodStart);\r\n }\r\n if (responseData.MilestoneBeginDaysFromPeriodEnd != undefined) {\r\n loaded.MilestoneBeginDaysFromPeriodEnd(responseData.MilestoneBeginDaysFromPeriodEnd);\r\n }\r\n if (responseData.MilestoneEndDaysFromPeriodEnd != undefined) {\r\n loaded.MilestoneEndDaysFromPeriodEnd(responseData.MilestoneEndDaysFromPeriodEnd);\r\n }\r\n if (responseData.MilestoneID != undefined) {\r\n loaded.MilestoneID(responseData.MilestoneID);\r\n }\r\n if (responseData.MilestoneGroupID != undefined) {\r\n loaded.MilestoneGroupID(responseData.MilestoneGroupID);\r\n }\r\n if (responseData.RelativeToCourse != undefined) {\r\n loaded.RelativeToCourse(responseData.RelativeToCourse);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AcademicPeriod != null) {\r\n loaded.AcademicPeriod(new smapi.academic.AcademicPeriodModel().LoadFromResponse(responseData.AcademicPeriod));\r\n }\r\n if (responseData.Milestone != null) {\r\n loaded.Milestone(new smapi.academic.AcademicPeriodMilestoneTypeModel().LoadFromResponse(responseData.Milestone));\r\n }\r\n if (responseData.PeriodDurationType != null) {\r\n loaded.PeriodDurationType(new smapi.academic.PeriodDurationTypeModel().LoadFromResponse(responseData.PeriodDurationType));\r\n }\r\n if (responseData.MilestoneGroup != null) {\r\n loaded.MilestoneGroup(new smapi.academic.AcademicPeriodMilestoneGroupModel().LoadFromResponse(responseData.MilestoneGroup));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.AcademicPeriodMilestoneMaster', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.AcademicPeriodID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PeriodDurationTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MilestoneBegin.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.MilestoneEnd.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.MilestoneBeginDaysFromPeriodStart.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.MilestoneEndDaysFromPeriodStart.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.MilestoneBeginDaysFromPeriodEnd.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.MilestoneEndDaysFromPeriodEnd.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.MilestoneID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MilestoneGroupID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 CourseRequirementModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n CourseMasterID: 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.CourseMasterID = ko.validatedObservable(settings.CourseMasterID);\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.CourseMaster = 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.CourseMasterID != undefined) {\r\n loaded.CourseMasterID(responseData.CourseMasterID);\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.CourseMaster != null) {\r\n loaded.CourseMaster(new smapi.academic.CourseMasterModel().LoadFromResponse(responseData.CourseMaster));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.CourseRequirement', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.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.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 AcademicRequirementModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n OrdinalType: null,\r\n MinOrdinal: 0,\r\n MaxOrdinal: 0,\r\n AllowAllCourses: false,\r\n CourseGroupID: null,\r\n MinGradePoint: 0,\r\n RequirementPriority: 0,\r\n ReqUsesCourse: false,\r\n IgnoreUsedCourseFlag: false,\r\n DynamicRequirement: false,\r\n BeginDate: null,\r\n EndDate: null,\r\n RequirementCategoryID: null,\r\n PeriodicityCount: 0,\r\n PeriodicityID: null,\r\n ReqsLogicalOperator: 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.OrdinalType = ko.validatedObservable(settings.OrdinalType);\r\n this.MinOrdinal = ko.validatedObservable(settings.MinOrdinal);\r\n this.MaxOrdinal = ko.validatedObservable(settings.MaxOrdinal);\r\n this.AllowAllCourses = ko.validatedObservable(settings.AllowAllCourses);\r\n this.CourseGroupID = ko.validatedObservable(settings.CourseGroupID);\r\n this.MinGradePoint = ko.validatedObservable(settings.MinGradePoint);\r\n this.RequirementPriority = ko.validatedObservable(settings.RequirementPriority);\r\n this.ReqUsesCourse = ko.validatedObservable(settings.ReqUsesCourse);\r\n this.IgnoreUsedCourseFlag = ko.validatedObservable(settings.IgnoreUsedCourseFlag);\r\n this.DynamicRequirement = ko.validatedObservable(settings.DynamicRequirement);\r\n this.BeginDate = ko.validatedObservable(settings.BeginDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.RequirementCategoryID = ko.validatedObservable(settings.RequirementCategoryID);\r\n this.PeriodicityCount = ko.validatedObservable(settings.PeriodicityCount);\r\n this.PeriodicityID = ko.validatedObservable(settings.PeriodicityID);\r\n this.ReqsLogicalOperator = ko.validatedObservable(settings.ReqsLogicalOperator);\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.CourseGroup = ko.observable();\r\n this.RequirementCategory = ko.observable();\r\n this.Periodicity = ko.observable();\r\n this.Requirements = ko.observableArray([]);\r\n this.EnrollmentLevel = ko.observableArray([]);\r\n this.AcademicProgram = 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.OrdinalType != undefined) {\r\n loaded.OrdinalType(responseData.OrdinalType);\r\n }\r\n if (responseData.MinOrdinal != undefined) {\r\n loaded.MinOrdinal(responseData.MinOrdinal);\r\n }\r\n if (responseData.MaxOrdinal != undefined) {\r\n loaded.MaxOrdinal(responseData.MaxOrdinal);\r\n }\r\n if (responseData.AllowAllCourses != undefined) {\r\n loaded.AllowAllCourses(responseData.AllowAllCourses);\r\n }\r\n if (responseData.CourseGroupID != undefined) {\r\n loaded.CourseGroupID(responseData.CourseGroupID);\r\n }\r\n if (responseData.MinGradePoint != undefined) {\r\n loaded.MinGradePoint(responseData.MinGradePoint);\r\n }\r\n if (responseData.RequirementPriority != undefined) {\r\n loaded.RequirementPriority(responseData.RequirementPriority);\r\n }\r\n if (responseData.ReqUsesCourse != undefined) {\r\n loaded.ReqUsesCourse(responseData.ReqUsesCourse);\r\n }\r\n if (responseData.IgnoreUsedCourseFlag != undefined) {\r\n loaded.IgnoreUsedCourseFlag(responseData.IgnoreUsedCourseFlag);\r\n }\r\n if (responseData.DynamicRequirement != undefined) {\r\n loaded.DynamicRequirement(responseData.DynamicRequirement);\r\n }\r\n if (responseData.BeginDate != undefined) {\r\n loaded.BeginDate(responseData.BeginDate);\r\n }\r\n if (responseData.EndDate != undefined) {\r\n loaded.EndDate(responseData.EndDate);\r\n }\r\n if (responseData.RequirementCategoryID != undefined) {\r\n loaded.RequirementCategoryID(responseData.RequirementCategoryID);\r\n }\r\n if (responseData.PeriodicityCount != undefined) {\r\n loaded.PeriodicityCount(responseData.PeriodicityCount);\r\n }\r\n if (responseData.PeriodicityID != undefined) {\r\n loaded.PeriodicityID(responseData.PeriodicityID);\r\n }\r\n if (responseData.ReqsLogicalOperator != undefined) {\r\n loaded.ReqsLogicalOperator(responseData.ReqsLogicalOperator);\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.CourseGroup != null) {\r\n loaded.CourseGroup(new smapi.academic.CourseGroupModel().LoadFromResponse(responseData.CourseGroup));\r\n }\r\n if (responseData.RequirementCategory != null) {\r\n loaded.RequirementCategory(new smapi.academic.RequirementCategoryModel().LoadFromResponse(responseData.RequirementCategory));\r\n }\r\n if (responseData.Periodicity != null) {\r\n loaded.Periodicity(new smapi.community.PeriodicityModel().LoadFromResponse(responseData.Periodicity));\r\n }\r\n if (responseData.Requirements != null && responseData.Requirements.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Requirements.length; i++) {\r\n items.push(new smapi.academic.AcademicRequirementModel().LoadFromResponse(responseData.Requirements[i]));\r\n }\r\n loaded.Requirements(items);\r\n }\r\n if (responseData.EnrollmentLevel != null && responseData.EnrollmentLevel.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.EnrollmentLevel.length; i++) {\r\n items.push(new smapi.academic.EnrollmentLevelModel().LoadFromResponse(responseData.EnrollmentLevel[i]));\r\n }\r\n loaded.EnrollmentLevel(items);\r\n }\r\n if (responseData.AcademicProgram != null && responseData.AcademicProgram.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AcademicProgram.length; i++) {\r\n items.push(new smapi.academic.AcademicProgramModel().LoadFromResponse(responseData.AcademicProgram[i]));\r\n }\r\n loaded.AcademicProgram(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.Academic.Entity.AcademicRequirement', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.OrdinalType.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.MinOrdinal.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.MaxOrdinal.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.CourseGroupID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MinGradePoint.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.RequirementPriority.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.BeginDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.EndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.RequirementCategoryID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PeriodicityCount.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.PeriodicityID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ReqsLogicalOperator.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function CourseRequirementMasterModel(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.CoursePrerequisites = ko.observableArray([]);\r\n this.CourseCoRequisites = ko.observableArray([]);\r\n this.CourseAntiRequisites = 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.CoursePrerequisites != null && responseData.CoursePrerequisites.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.CoursePrerequisites.length; i++) {\r\n items.push(new smapi.academic.CourseMasterModel().LoadFromResponse(responseData.CoursePrerequisites[i]));\r\n }\r\n loaded.CoursePrerequisites(items);\r\n }\r\n if (responseData.CourseCoRequisites != null && responseData.CourseCoRequisites.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.CourseCoRequisites.length; i++) {\r\n items.push(new smapi.academic.CourseMasterModel().LoadFromResponse(responseData.CourseCoRequisites[i]));\r\n }\r\n loaded.CourseCoRequisites(items);\r\n }\r\n if (responseData.CourseAntiRequisites != null && responseData.CourseAntiRequisites.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.CourseAntiRequisites.length; i++) {\r\n items.push(new smapi.academic.CourseMasterModel().LoadFromResponse(responseData.CourseAntiRequisites[i]));\r\n }\r\n loaded.CourseAntiRequisites(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.Academic.Entity.CourseRequirementMaster', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 CourseEquivalenceModel(options) {\r\n var defaults = {\r\n BeginDate: null,\r\n EndDate: null,\r\n CourseMasterID: 0,\r\n EqCourseMasterID: 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.BeginDate = ko.validatedObservable(settings.BeginDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.CourseMasterID = ko.validatedObservable(settings.CourseMasterID);\r\n this.EqCourseMasterID = ko.validatedObservable(settings.EqCourseMasterID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.CourseMaster = ko.observable();\r\n this.EquivalentCourseMaster = ko.observable();\r\n this.Requirements = 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.BeginDate != undefined) {\r\n loaded.BeginDate(responseData.BeginDate);\r\n }\r\n if (responseData.EndDate != undefined) {\r\n loaded.EndDate(responseData.EndDate);\r\n }\r\n if (responseData.CourseMasterID != undefined) {\r\n loaded.CourseMasterID(responseData.CourseMasterID);\r\n }\r\n if (responseData.EqCourseMasterID != undefined) {\r\n loaded.EqCourseMasterID(responseData.EqCourseMasterID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\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.EquivalentCourseMaster != null) {\r\n loaded.EquivalentCourseMaster(new smapi.academic.CourseMasterModel().LoadFromResponse(responseData.EquivalentCourseMaster));\r\n }\r\n if (responseData.Requirements != null && responseData.Requirements.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Requirements.length; i++) {\r\n items.push(new smapi.academic.CourseRequirementModel().LoadFromResponse(responseData.Requirements[i]));\r\n }\r\n loaded.Requirements(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.Academic.Entity.CourseEquivalence', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.BeginDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.EndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.CourseMasterID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EqCourseMasterID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 ProgramCategoryModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n AcademicProgramSuffix: '',\r\n SortOrder: 0,\r\n ProgramCategoryID: 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.AcademicProgramSuffix = ko.validatedObservable(settings.AcademicProgramSuffix);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.ProgramCategoryID = ko.validatedObservable(settings.ProgramCategoryID);\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.ProgramCategories = 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.AcademicProgramSuffix != undefined) {\r\n loaded.AcademicProgramSuffix(responseData.AcademicProgramSuffix);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.ProgramCategoryID != undefined) {\r\n loaded.ProgramCategoryID(responseData.ProgramCategoryID);\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.ProgramCategories != null) {\r\n loaded.ProgramCategories(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.ProgramCategories));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.ProgramCategory', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.AcademicProgramSuffix.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.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.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.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 ProgramConcentrationModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n ProgramID: 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.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.Program = 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.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.Program != null) {\r\n loaded.Program(new smapi.academic.AcademicProgramModel().LoadFromResponse(responseData.Program));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.ProgramConcentration', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.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 AcademicManagerTypeModel(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.Academic.Entity.AcademicManagerType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 AcademicProgramManagerModel(options) {\r\n var defaults = {\r\n AcademicManagerTypeID: 0,\r\n PersonID: null,\r\n ProgramID: null,\r\n EffectiveDateFrom: null,\r\n EffectiveDateTo: 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.AcademicManagerTypeID = ko.validatedObservable(settings.AcademicManagerTypeID);\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.ProgramID = ko.validatedObservable(settings.ProgramID);\r\n this.EffectiveDateFrom = ko.validatedObservable(settings.EffectiveDateFrom);\r\n this.EffectiveDateTo = ko.validatedObservable(settings.EffectiveDateTo);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AcademicManagerType = ko.observable();\r\n this.Person = ko.observable();\r\n this.Program = 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.AcademicManagerTypeID != undefined) {\r\n loaded.AcademicManagerTypeID(responseData.AcademicManagerTypeID);\r\n }\r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.ProgramID != undefined) {\r\n loaded.ProgramID(responseData.ProgramID);\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.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AcademicManagerType != null) {\r\n loaded.AcademicManagerType(new smapi.academic.AcademicManagerTypeModel().LoadFromResponse(responseData.AcademicManagerType));\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.Program != null) {\r\n loaded.Program(new smapi.academic.AcademicProgramModel().LoadFromResponse(responseData.Program));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.AcademicProgramManager', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.AcademicManagerTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.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.EffectiveDateFrom.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.EffectiveDateTo.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 AcademicProgramModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n ApprovedDate: null,\r\n EffectiveDateFrom: null,\r\n EffectiveDateTo: null,\r\n ProgramMasterID: null,\r\n ProgramID: '',\r\n ProgramStatusID: null,\r\n DegreeAuditID: null,\r\n GoalID: 0,\r\n ProgramCategoryID: null,\r\n DeliveryMethodID: 0,\r\n DivisionID: null,\r\n TitleIVRefundTypeID: null,\r\n ProgramLength: 0,\r\n UnitLength: null,\r\n WeightFactor: 0,\r\n SortOrder: 0,\r\n AcademicRequirementID: null,\r\n BusinessMeaningName: '',\r\n AutoCreateAdmissionsProgram: 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.ApprovedDate = ko.validatedObservable(settings.ApprovedDate);\r\n this.EffectiveDateFrom = ko.validatedObservable(settings.EffectiveDateFrom);\r\n this.EffectiveDateTo = ko.validatedObservable(settings.EffectiveDateTo);\r\n this.ProgramMasterID = ko.validatedObservable(settings.ProgramMasterID);\r\n this.ProgramID = ko.validatedObservable(settings.ProgramID);\r\n this.ProgramStatusID = ko.validatedObservable(settings.ProgramStatusID);\r\n this.DegreeAuditID = ko.validatedObservable(settings.DegreeAuditID);\r\n this.GoalID = ko.validatedObservable(settings.GoalID);\r\n this.ProgramCategoryID = ko.validatedObservable(settings.ProgramCategoryID);\r\n this.DeliveryMethodID = ko.validatedObservable(settings.DeliveryMethodID);\r\n this.DivisionID = ko.validatedObservable(settings.DivisionID);\r\n this.TitleIVRefundTypeID = ko.validatedObservable(settings.TitleIVRefundTypeID);\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.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.AcademicRequirementID = ko.validatedObservable(settings.AcademicRequirementID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.AutoCreateAdmissionsProgram = ko.validatedObservable(settings.AutoCreateAdmissionsProgram);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.ProgramMaster = ko.observable();\r\n this.DeliveryMethod = ko.observable();\r\n this.Division = ko.observable();\r\n this.Concentrations = ko.observableArray([]);\r\n this.AcademicRequirement = ko.observable();\r\n this.DegreeAudit = ko.observable();\r\n this.Managers = ko.observableArray([]);\r\n this.ReportingCodes = ko.observableArray([]);\r\n this.Campuses = ko.observableArray([]);\r\n this.ProgramCategory = ko.observable();\r\n this.Goal = ko.observable();\r\n this.TitleIVRefundType = ko.observable();\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.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.ProgramMasterID != undefined) {\r\n loaded.ProgramMasterID(responseData.ProgramMasterID);\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.DegreeAuditID != undefined) {\r\n loaded.DegreeAuditID(responseData.DegreeAuditID);\r\n }\r\n if (responseData.GoalID != undefined) {\r\n loaded.GoalID(responseData.GoalID);\r\n }\r\n if (responseData.ProgramCategoryID != undefined) {\r\n loaded.ProgramCategoryID(responseData.ProgramCategoryID);\r\n }\r\n if (responseData.DeliveryMethodID != undefined) {\r\n loaded.DeliveryMethodID(responseData.DeliveryMethodID);\r\n }\r\n if (responseData.DivisionID != undefined) {\r\n loaded.DivisionID(responseData.DivisionID);\r\n }\r\n if (responseData.TitleIVRefundTypeID != undefined) {\r\n loaded.TitleIVRefundTypeID(responseData.TitleIVRefundTypeID);\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.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.AcademicRequirementID != undefined) {\r\n loaded.AcademicRequirementID(responseData.AcademicRequirementID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.AutoCreateAdmissionsProgram != undefined) {\r\n loaded.AutoCreateAdmissionsProgram(responseData.AutoCreateAdmissionsProgram);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.ProgramMaster != null) {\r\n loaded.ProgramMaster(new smapi.academic.ProgramMasterModel().LoadFromResponse(responseData.ProgramMaster));\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.Concentrations != null && responseData.Concentrations.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Concentrations.length; i++) {\r\n items.push(new smapi.academic.ProgramConcentrationModel().LoadFromResponse(responseData.Concentrations[i]));\r\n }\r\n loaded.Concentrations(items);\r\n }\r\n if (responseData.AcademicRequirement != null) {\r\n loaded.AcademicRequirement(new smapi.academic.AcademicRequirementModel().LoadFromResponse(responseData.AcademicRequirement));\r\n }\r\n if (responseData.DegreeAudit != null) {\r\n loaded.DegreeAudit(new smapi.academic.DegreeAuditModel().LoadFromResponse(responseData.DegreeAudit));\r\n }\r\n if (responseData.Managers != null && responseData.Managers.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Managers.length; i++) {\r\n items.push(new smapi.academic.AcademicProgramManagerModel().LoadFromResponse(responseData.Managers[i]));\r\n }\r\n loaded.Managers(items);\r\n }\r\n if (responseData.ReportingCodes != null && responseData.ReportingCodes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReportingCodes.length; i++) {\r\n items.push(new smapi.academic.AcademicReportingCodeModel().LoadFromResponse(responseData.ReportingCodes[i]));\r\n }\r\n loaded.ReportingCodes(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.ProgramCategory != null) {\r\n loaded.ProgramCategory(new smapi.academic.ProgramCategoryModel().LoadFromResponse(responseData.ProgramCategory));\r\n }\r\n if (responseData.Goal != null) {\r\n loaded.Goal(new smapi.academic.EducationalGoalModel().LoadFromResponse(responseData.Goal));\r\n }\r\n if (responseData.TitleIVRefundType != null) {\r\n loaded.TitleIVRefundType(new smapi.entities.GlossaryModel().LoadFromResponse(responseData.TitleIVRefundType));\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.Academic.Entity.AcademicProgram', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.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.ProgramMasterID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 maxLength: {\r\n params: 50,\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.DegreeAuditID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GoalID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.DeliveryMethodID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.TitleIVRefundTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_LessThan0_Key), '100')\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AcademicRequirementID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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: 54,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '54')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ExternalAcademicProgramModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n ProgramID: '',\r\n GoalID: 0,\r\n DeliveryMethodID: null,\r\n ProgramLength: 0,\r\n UnitLength: null,\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.ProgramID = ko.validatedObservable(settings.ProgramID);\r\n this.GoalID = ko.validatedObservable(settings.GoalID);\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.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.DeliveryMethod = ko.observable();\r\n this.ReportingCodes = ko.observableArray([]);\r\n this.Goal = 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.GoalID != undefined) {\r\n loaded.GoalID(responseData.GoalID);\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.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.DeliveryMethod != null) {\r\n loaded.DeliveryMethod(new smapi.academic.AcademicDeliveryMethodModel().LoadFromResponse(responseData.DeliveryMethod));\r\n }\r\n if (responseData.ReportingCodes != null && responseData.ReportingCodes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.ReportingCodes.length; i++) {\r\n items.push(new smapi.academic.ExternalAcademicReportingCodeModel().LoadFromResponse(responseData.ReportingCodes[i]));\r\n }\r\n loaded.ReportingCodes(items);\r\n }\r\n if (responseData.Goal != null) {\r\n loaded.Goal(new smapi.academic.ExternalEducationalGoalModel().LoadFromResponse(responseData.Goal));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.ExternalAcademicProgram', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.Description.extend({\r\n maxLength: {\r\n params: 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.GoalID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 54,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '54')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function CatalogCategoryModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.CatalogCategory', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 GradeTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n TrackGradeHistory: false,\r\n BusinessMeaningName: '',\r\n AffectsGPA: false,\r\n RequiresRegistrarApproval: 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.TrackGradeHistory = ko.validatedObservable(settings.TrackGradeHistory);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.AffectsGPA = ko.validatedObservable(settings.AffectsGPA);\r\n this.RequiresRegistrarApproval = ko.validatedObservable(settings.RequiresRegistrarApproval);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.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.TrackGradeHistory != undefined) {\r\n loaded.TrackGradeHistory(responseData.TrackGradeHistory);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.AffectsGPA != undefined) {\r\n loaded.AffectsGPA(responseData.AffectsGPA);\r\n }\r\n if (responseData.RequiresRegistrarApproval != undefined) {\r\n loaded.RequiresRegistrarApproval(responseData.RequiresRegistrarApproval);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.Academic.Entity.GradeType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 GradeFormatModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n SystemProtected: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.GradeFormat', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 RequirementCategoryModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n ShowOnClient: false,\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.ShowOnClient = ko.validatedObservable(settings.ShowOnClient);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.ShowOnClient != undefined) {\r\n loaded.ShowOnClient(responseData.ShowOnClient);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.RequirementCategory', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 GradeProcessModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.GradeProcess', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 EnrollmentLoadModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n Fulltime: false,\r\n PELLImportKey: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.Fulltime = ko.validatedObservable(settings.Fulltime);\r\n this.PELLImportKey = ko.validatedObservable(settings.PELLImportKey);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.Fulltime != undefined) {\r\n loaded.Fulltime(responseData.Fulltime);\r\n }\r\n if (responseData.PELLImportKey != undefined) {\r\n loaded.PELLImportKey(responseData.PELLImportKey);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\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.Academic.Entity.EnrollmentLoad', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 512,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '512')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.PELLImportKey.extend({\r\n maxLength: {\r\n params: 30,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '30')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function GoalTypeModel(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.Academic.Entity.GoalType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 PersonGoalProgramModel(options) {\r\n var defaults = {\r\n PersonAcademicGoalID: null,\r\n ConcentrationID: null,\r\n GoalTypeID: 0,\r\n SortOrder: 0,\r\n ExternalAcademicProgramID: null,\r\n GPA: 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.PersonAcademicGoalID = ko.validatedObservable(settings.PersonAcademicGoalID);\r\n this.ConcentrationID = ko.validatedObservable(settings.ConcentrationID);\r\n this.GoalTypeID = ko.validatedObservable(settings.GoalTypeID);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.ExternalAcademicProgramID = ko.validatedObservable(settings.ExternalAcademicProgramID);\r\n this.GPA = ko.validatedObservable(settings.GPA);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.PersonAcademicGoal = ko.observable();\r\n this.ConcentrationMaster = ko.observable();\r\n this.GoalType = ko.observable();\r\n this.ExternalAcademicProgram = 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.PersonAcademicGoalID != undefined) {\r\n loaded.PersonAcademicGoalID(responseData.PersonAcademicGoalID);\r\n }\r\n if (responseData.ConcentrationID != undefined) {\r\n loaded.ConcentrationID(responseData.ConcentrationID);\r\n }\r\n if (responseData.GoalTypeID != undefined) {\r\n loaded.GoalTypeID(responseData.GoalTypeID);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.ExternalAcademicProgramID != undefined) {\r\n loaded.ExternalAcademicProgramID(responseData.ExternalAcademicProgramID);\r\n }\r\n if (responseData.GPA != undefined) {\r\n loaded.GPA(responseData.GPA);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n 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.ConcentrationMaster != null) {\r\n loaded.ConcentrationMaster(new smapi.academic.ConcentrationMasterModel().LoadFromResponse(responseData.ConcentrationMaster));\r\n }\r\n if (responseData.GoalType != null) {\r\n loaded.GoalType(new smapi.academic.GoalTypeModel().LoadFromResponse(responseData.GoalType));\r\n }\r\n if (responseData.ExternalAcademicProgram != null) {\r\n loaded.ExternalAcademicProgram(new smapi.academic.ExternalAcademicProgramModel().LoadFromResponse(responseData.ExternalAcademicProgram));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.PersonGoalProgram', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\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.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.GoalTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ExternalAcademicProgramID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GPA.extend({\r\n min: {\r\n params: -179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function ReasonModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.Reason', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function PersonMetRequirementModel(options) {\r\n var defaults = {\r\n AcademicRequirementID: null,\r\n PersonID: null,\r\n RequirementMetDate: null,\r\n OverrideSystem: false,\r\n ReasonID: null,\r\n RequirementStatus: null,\r\n NoteID: 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.AcademicRequirementID = ko.validatedObservable(settings.AcademicRequirementID);\r\n this.PersonID = ko.validatedObservable(settings.PersonID);\r\n this.RequirementMetDate = ko.validatedObservable(settings.RequirementMetDate);\r\n this.OverrideSystem = ko.validatedObservable(settings.OverrideSystem);\r\n this.ReasonID = ko.validatedObservable(settings.ReasonID);\r\n this.RequirementStatus = ko.validatedObservable(settings.RequirementStatus);\r\n this.NoteID = ko.validatedObservable(settings.NoteID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = 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.Note = ko.observable();\r\n this.OverrideReason = ko.observable();\r\n this.AcademicRequirement = ko.observable();\r\n this.MetCourses = 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.AcademicRequirementID != undefined) {\r\n loaded.AcademicRequirementID(responseData.AcademicRequirementID);\r\n }\r\n if (responseData.PersonID != undefined) {\r\n loaded.PersonID(responseData.PersonID);\r\n }\r\n if (responseData.RequirementMetDate != undefined) {\r\n loaded.RequirementMetDate(responseData.RequirementMetDate);\r\n }\r\n if (responseData.OverrideSystem != undefined) {\r\n loaded.OverrideSystem(responseData.OverrideSystem);\r\n }\r\n if (responseData.ReasonID != undefined) {\r\n loaded.ReasonID(responseData.ReasonID);\r\n }\r\n if (responseData.RequirementStatus != undefined) {\r\n loaded.RequirementStatus(responseData.RequirementStatus);\r\n }\r\n if (responseData.NoteID != undefined) {\r\n loaded.NoteID(responseData.NoteID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n 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.Note != null) {\r\n loaded.Note(new smapi.community.ContactNoteModel().LoadFromResponse(responseData.Note));\r\n }\r\n if (responseData.OverrideReason != null) {\r\n loaded.OverrideReason(new smapi.academic.ReasonModel().LoadFromResponse(responseData.OverrideReason));\r\n }\r\n if (responseData.AcademicRequirement != null) {\r\n loaded.AcademicRequirement(new smapi.academic.AcademicRequirementModel().LoadFromResponse(responseData.AcademicRequirement));\r\n }\r\n if (responseData.MetCourses != null && responseData.MetCourses.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.MetCourses.length; i++) {\r\n items.push(new smapi.academic.MetRequirementCourseModel().LoadFromResponse(responseData.MetCourses[i]));\r\n }\r\n loaded.MetCourses(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.Academic.Entity.PersonMetRequirement', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.AcademicRequirementID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.RequirementMetDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ReasonID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.RequirementStatus.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.NoteID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 MetRequirementCourseModel(options) {\r\n var defaults = {\r\n CourseID: 0,\r\n GradeID: null,\r\n CourseMasterID: 0,\r\n TransferCourseID: 0,\r\n TranscriptCourseID: 0,\r\n IsManualMap: 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.CourseID = ko.validatedObservable(settings.CourseID);\r\n this.GradeID = ko.validatedObservable(settings.GradeID);\r\n this.CourseMasterID = ko.validatedObservable(settings.CourseMasterID);\r\n this.TransferCourseID = ko.validatedObservable(settings.TransferCourseID);\r\n this.TranscriptCourseID = ko.validatedObservable(settings.TranscriptCourseID);\r\n this.IsManualMap = ko.validatedObservable(settings.IsManualMap);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Grade = 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.CourseID != undefined) {\r\n loaded.CourseID(responseData.CourseID);\r\n }\r\n if (responseData.GradeID != undefined) {\r\n loaded.GradeID(responseData.GradeID);\r\n }\r\n if (responseData.CourseMasterID != undefined) {\r\n loaded.CourseMasterID(responseData.CourseMasterID);\r\n }\r\n if (responseData.TransferCourseID != undefined) {\r\n loaded.TransferCourseID(responseData.TransferCourseID);\r\n }\r\n if (responseData.TranscriptCourseID != undefined) {\r\n loaded.TranscriptCourseID(responseData.TranscriptCourseID);\r\n }\r\n if (responseData.IsManualMap != undefined) {\r\n loaded.IsManualMap(responseData.IsManualMap);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Grade != null) {\r\n loaded.Grade(new smapi.academic.GradeMasterModel().LoadFromResponse(responseData.Grade));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.MetRequirementCourse', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.CourseID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.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.TransferCourseID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.TranscriptCourseID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 ProgramStatusModel(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.Academic.Entity.ProgramStatus', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 250,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '250')\r\n }\r\n });\r\n this.BusinessMeaningName.extend({\r\n maxLength: {\r\n params: 50,\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 AcademicDepartmentModel(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.Academic.Entity.AcademicDepartment', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 AcademicSubjectAreaModel(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.Academic.Entity.AcademicSubjectArea', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 CourseGroupQualifierRuleTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n SystemProtected: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.CourseGroupQualifierRuleType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.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 CourseUnitModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n SystemProtected: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.CourseUnit', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 CourseGroupQueryFilterTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n SystemProtected: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.CourseGroupQueryFilterType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 PeriodOfCompletionUnitModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n SystemProtected: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.PeriodOfCompletionUnit', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 CourseGroupCourseModel(options) {\r\n var defaults = {\r\n CourseMasterID: 0,\r\n UnitOfMeasureID: 0,\r\n Units: 0,\r\n MinGPA: 0,\r\n Required: false,\r\n AllowTransfer: false,\r\n AllowEquivalent: false,\r\n Summarize: false,\r\n DegreeCourseGroupID: 0,\r\n Fulfilled: 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.CourseMasterID = ko.validatedObservable(settings.CourseMasterID);\r\n this.UnitOfMeasureID = ko.validatedObservable(settings.UnitOfMeasureID);\r\n this.Units = ko.validatedObservable(settings.Units);\r\n this.MinGPA = ko.validatedObservable(settings.MinGPA);\r\n this.Required = ko.validatedObservable(settings.Required);\r\n this.AllowTransfer = ko.validatedObservable(settings.AllowTransfer);\r\n this.AllowEquivalent = ko.validatedObservable(settings.AllowEquivalent);\r\n this.Summarize = ko.validatedObservable(settings.Summarize);\r\n this.DegreeCourseGroupID = ko.validatedObservable(settings.DegreeCourseGroupID);\r\n this.Fulfilled = ko.validatedObservable(settings.Fulfilled);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Course = ko.observable();\r\n this.UnitOfMeasure = ko.observable();\r\n this.DegreeCourseGroup = 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.CourseMasterID != undefined) {\r\n loaded.CourseMasterID(responseData.CourseMasterID);\r\n }\r\n if (responseData.UnitOfMeasureID != undefined) {\r\n loaded.UnitOfMeasureID(responseData.UnitOfMeasureID);\r\n }\r\n if (responseData.Units != undefined) {\r\n loaded.Units(responseData.Units);\r\n }\r\n if (responseData.MinGPA != undefined) {\r\n loaded.MinGPA(responseData.MinGPA);\r\n }\r\n if (responseData.Required != undefined) {\r\n loaded.Required(responseData.Required);\r\n }\r\n if (responseData.AllowTransfer != undefined) {\r\n loaded.AllowTransfer(responseData.AllowTransfer);\r\n }\r\n if (responseData.AllowEquivalent != undefined) {\r\n loaded.AllowEquivalent(responseData.AllowEquivalent);\r\n }\r\n if (responseData.Summarize != undefined) {\r\n loaded.Summarize(responseData.Summarize);\r\n }\r\n if (responseData.DegreeCourseGroupID != undefined) {\r\n loaded.DegreeCourseGroupID(responseData.DegreeCourseGroupID);\r\n }\r\n if (responseData.Fulfilled != undefined) {\r\n loaded.Fulfilled(responseData.Fulfilled);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Course != null) {\r\n loaded.Course(new smapi.academic.CourseMasterModel().LoadFromResponse(responseData.Course));\r\n }\r\n if (responseData.UnitOfMeasure != null) {\r\n loaded.UnitOfMeasure(new smapi.academic.CourseUnitModel().LoadFromResponse(responseData.UnitOfMeasure));\r\n }\r\n if (responseData.DegreeCourseGroup != null) {\r\n loaded.DegreeCourseGroup(new smapi.academic.DegreeCourseGroupModel().LoadFromResponse(responseData.DegreeCourseGroup));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.CourseGroupCourse', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.CourseMasterID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.UnitOfMeasureID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Units.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.MinGPA.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.DegreeCourseGroupID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 DegreeCourseGroupModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n DegreeRequirementID: 0,\r\n SortPriorityOrder: 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.DegreeRequirementID = ko.validatedObservable(settings.DegreeRequirementID);\r\n this.SortPriorityOrder = ko.validatedObservable(settings.SortPriorityOrder);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.DegreeRequirement = ko.observable();\r\n this.Courses = ko.observableArray([]);\r\n this.Queries = 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.DegreeRequirementID != undefined) {\r\n loaded.DegreeRequirementID(responseData.DegreeRequirementID);\r\n }\r\n if (responseData.SortPriorityOrder != undefined) {\r\n loaded.SortPriorityOrder(responseData.SortPriorityOrder);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.DegreeRequirement != null) {\r\n loaded.DegreeRequirement(new smapi.academic.DegreeRequirementModel().LoadFromResponse(responseData.DegreeRequirement));\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.academic.CourseGroupCourseModel().LoadFromResponse(responseData.Courses[i]));\r\n }\r\n loaded.Courses(items);\r\n }\r\n if (responseData.Queries != null && responseData.Queries.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Queries.length; i++) {\r\n items.push(new smapi.academic.CourseGroupQueryModel().LoadFromResponse(responseData.Queries[i]));\r\n }\r\n loaded.Queries(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.Academic.Entity.DegreeCourseGroup', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.DegreeRequirementID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortPriorityOrder.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 CourseGroupQualifierRuleValueModel(options) {\r\n var defaults = {\r\n CourseGroupQualifierRuleID: 0,\r\n DisplayValue: '',\r\n Value: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.CourseGroupQualifierRuleID = ko.validatedObservable(settings.CourseGroupQualifierRuleID);\r\n this.DisplayValue = ko.validatedObservable(settings.DisplayValue);\r\n this.Value = ko.validatedObservable(settings.Value);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.CourseGroupQualifierRule = 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.CourseGroupQualifierRuleID != undefined) {\r\n loaded.CourseGroupQualifierRuleID(responseData.CourseGroupQualifierRuleID);\r\n }\r\n if (responseData.DisplayValue != undefined) {\r\n loaded.DisplayValue(responseData.DisplayValue);\r\n }\r\n if (responseData.Value != undefined) {\r\n loaded.Value(responseData.Value);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.CourseGroupQualifierRule != null) {\r\n loaded.CourseGroupQualifierRule(new smapi.academic.CourseGroupQualifierRuleModel().LoadFromResponse(responseData.CourseGroupQualifierRule));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.CourseGroupQualifierRuleValue', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.CourseGroupQualifierRuleID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DisplayValue.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.Value.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function CourseGroupQualifierRuleModel(options) {\r\n var defaults = {\r\n CourseGroupQualifierRuleTypeID: 0,\r\n CourseGroupQualifierBlockID: 0,\r\n UnitOfMeasureID: null,\r\n PeriodOfCompletionUnitID: null,\r\n AcademicDepartmentID: null,\r\n AcademicSubjectAreaID: null,\r\n DegreeCourseGroupID: null,\r\n IntValue1: 0,\r\n IntValue2: 0,\r\n DoubleValue1: 0,\r\n DoubleValue2: 0,\r\n SortOrder: 0,\r\n ComparisonOperator: 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.CourseGroupQualifierRuleTypeID = ko.validatedObservable(settings.CourseGroupQualifierRuleTypeID);\r\n this.CourseGroupQualifierBlockID = ko.validatedObservable(settings.CourseGroupQualifierBlockID);\r\n this.UnitOfMeasureID = ko.validatedObservable(settings.UnitOfMeasureID);\r\n this.PeriodOfCompletionUnitID = ko.validatedObservable(settings.PeriodOfCompletionUnitID);\r\n this.AcademicDepartmentID = ko.validatedObservable(settings.AcademicDepartmentID);\r\n this.AcademicSubjectAreaID = ko.validatedObservable(settings.AcademicSubjectAreaID);\r\n this.DegreeCourseGroupID = ko.validatedObservable(settings.DegreeCourseGroupID);\r\n this.IntValue1 = ko.validatedObservable(settings.IntValue1);\r\n this.IntValue2 = ko.validatedObservable(settings.IntValue2);\r\n this.DoubleValue1 = ko.validatedObservable(settings.DoubleValue1);\r\n this.DoubleValue2 = ko.validatedObservable(settings.DoubleValue2);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.ComparisonOperator = ko.validatedObservable(settings.ComparisonOperator);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.CourseGroupQualifierRuleType = ko.observable();\r\n this.CourseGroupQualifierBlock = ko.observable();\r\n this.UnitOfMeasure = ko.observable();\r\n this.PeriodOfCompletionUnit = ko.observable();\r\n this.AcademicDepartment = ko.observable();\r\n this.AcademicSubjectArea = ko.observable();\r\n this.DegreeCourseGroup = ko.observable();\r\n this.RuleValues = 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.CourseGroupQualifierRuleTypeID != undefined) {\r\n loaded.CourseGroupQualifierRuleTypeID(responseData.CourseGroupQualifierRuleTypeID);\r\n }\r\n if (responseData.CourseGroupQualifierBlockID != undefined) {\r\n loaded.CourseGroupQualifierBlockID(responseData.CourseGroupQualifierBlockID);\r\n }\r\n if (responseData.UnitOfMeasureID != undefined) {\r\n loaded.UnitOfMeasureID(responseData.UnitOfMeasureID);\r\n }\r\n if (responseData.PeriodOfCompletionUnitID != undefined) {\r\n loaded.PeriodOfCompletionUnitID(responseData.PeriodOfCompletionUnitID);\r\n }\r\n if (responseData.AcademicDepartmentID != undefined) {\r\n loaded.AcademicDepartmentID(responseData.AcademicDepartmentID);\r\n }\r\n if (responseData.AcademicSubjectAreaID != undefined) {\r\n loaded.AcademicSubjectAreaID(responseData.AcademicSubjectAreaID);\r\n }\r\n if (responseData.DegreeCourseGroupID != undefined) {\r\n loaded.DegreeCourseGroupID(responseData.DegreeCourseGroupID);\r\n }\r\n if (responseData.IntValue1 != undefined) {\r\n loaded.IntValue1(responseData.IntValue1);\r\n }\r\n if (responseData.IntValue2 != undefined) {\r\n loaded.IntValue2(responseData.IntValue2);\r\n }\r\n if (responseData.DoubleValue1 != undefined) {\r\n loaded.DoubleValue1(responseData.DoubleValue1);\r\n }\r\n if (responseData.DoubleValue2 != undefined) {\r\n loaded.DoubleValue2(responseData.DoubleValue2);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.ComparisonOperator != undefined) {\r\n loaded.ComparisonOperator(responseData.ComparisonOperator);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.CourseGroupQualifierRuleType != null) {\r\n loaded.CourseGroupQualifierRuleType(new smapi.academic.CourseGroupQualifierRuleTypeModel().LoadFromResponse(responseData.CourseGroupQualifierRuleType));\r\n }\r\n if (responseData.CourseGroupQualifierBlock != null) {\r\n loaded.CourseGroupQualifierBlock(new smapi.academic.CourseGroupQualifierBlockModel().LoadFromResponse(responseData.CourseGroupQualifierBlock));\r\n }\r\n if (responseData.UnitOfMeasure != null) {\r\n loaded.UnitOfMeasure(new smapi.academic.CourseUnitModel().LoadFromResponse(responseData.UnitOfMeasure));\r\n }\r\n if (responseData.PeriodOfCompletionUnit != null) {\r\n loaded.PeriodOfCompletionUnit(new smapi.academic.PeriodOfCompletionUnitModel().LoadFromResponse(responseData.PeriodOfCompletionUnit));\r\n }\r\n if (responseData.AcademicDepartment != null) {\r\n loaded.AcademicDepartment(new smapi.academic.AcademicDepartmentModel().LoadFromResponse(responseData.AcademicDepartment));\r\n }\r\n if (responseData.AcademicSubjectArea != null) {\r\n loaded.AcademicSubjectArea(new smapi.academic.AcademicSubjectAreaModel().LoadFromResponse(responseData.AcademicSubjectArea));\r\n }\r\n if (responseData.DegreeCourseGroup != null) {\r\n loaded.DegreeCourseGroup(new smapi.academic.DegreeCourseGroupModel().LoadFromResponse(responseData.DegreeCourseGroup));\r\n }\r\n if (responseData.RuleValues != null && responseData.RuleValues.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.RuleValues.length; i++) {\r\n items.push(new smapi.academic.CourseGroupQualifierRuleValueModel().LoadFromResponse(responseData.RuleValues[i]));\r\n }\r\n loaded.RuleValues(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.Academic.Entity.CourseGroupQualifierRule', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.CourseGroupQualifierRuleTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CourseGroupQualifierBlockID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.UnitOfMeasureID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PeriodOfCompletionUnitID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AcademicDepartmentID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AcademicSubjectAreaID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DegreeCourseGroupID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.IntValue1.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.IntValue2.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DoubleValue1.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.DoubleValue2.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.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.ComparisonOperator.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 CourseGroupQualifierBlockModel(options) {\r\n var defaults = {\r\n DegreeRequirementID: 0,\r\n SortOrder: 0,\r\n Operator: null,\r\n OuterOperator: 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.DegreeRequirementID = ko.validatedObservable(settings.DegreeRequirementID);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.Operator = ko.validatedObservable(settings.Operator);\r\n this.OuterOperator = ko.validatedObservable(settings.OuterOperator);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.DegreeRequirement = ko.observable();\r\n this.Rules = 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.DegreeRequirementID != undefined) {\r\n loaded.DegreeRequirementID(responseData.DegreeRequirementID);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.Operator != undefined) {\r\n loaded.Operator(responseData.Operator);\r\n }\r\n if (responseData.OuterOperator != undefined) {\r\n loaded.OuterOperator(responseData.OuterOperator);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.DegreeRequirement != null) {\r\n loaded.DegreeRequirement(new smapi.academic.DegreeRequirementModel().LoadFromResponse(responseData.DegreeRequirement));\r\n }\r\n if (responseData.Rules != null && responseData.Rules.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Rules.length; i++) {\r\n items.push(new smapi.academic.CourseGroupQualifierRuleModel().LoadFromResponse(responseData.Rules[i]));\r\n }\r\n loaded.Rules(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.Academic.Entity.CourseGroupQualifierBlock', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.DegreeRequirementID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Operator.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.OuterOperator.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 CourseGroupQueryFilterValueModel(options) {\r\n var defaults = {\r\n CourseGroupQueryFilterID: 0,\r\n Value: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.CourseGroupQueryFilterID = ko.validatedObservable(settings.CourseGroupQueryFilterID);\r\n this.Value = ko.validatedObservable(settings.Value);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.CourseGroupQueryFilter = 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.CourseGroupQueryFilterID != undefined) {\r\n loaded.CourseGroupQueryFilterID(responseData.CourseGroupQueryFilterID);\r\n }\r\n if (responseData.Value != undefined) {\r\n loaded.Value(responseData.Value);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.CourseGroupQueryFilter != null) {\r\n loaded.CourseGroupQueryFilter(new smapi.academic.CourseGroupQueryFilterModel().LoadFromResponse(responseData.CourseGroupQueryFilter));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.CourseGroupQueryFilterValue', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.CourseGroupQueryFilterID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Value.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\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 CourseGroupQueryFilterModel(options) {\r\n var defaults = {\r\n CourseGroupQueryFilterTypeID: 0,\r\n CourseGroupQueryBlockID: 0,\r\n ComparisonOperator: 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.CourseGroupQueryFilterTypeID = ko.validatedObservable(settings.CourseGroupQueryFilterTypeID);\r\n this.CourseGroupQueryBlockID = ko.validatedObservable(settings.CourseGroupQueryBlockID);\r\n this.ComparisonOperator = ko.validatedObservable(settings.ComparisonOperator);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.CourseGroupQueryFilterType = ko.observable();\r\n this.CourseGroupQueryBlock = ko.observable();\r\n this.Values = 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.CourseGroupQueryFilterTypeID != undefined) {\r\n loaded.CourseGroupQueryFilterTypeID(responseData.CourseGroupQueryFilterTypeID);\r\n }\r\n if (responseData.CourseGroupQueryBlockID != undefined) {\r\n loaded.CourseGroupQueryBlockID(responseData.CourseGroupQueryBlockID);\r\n }\r\n if (responseData.ComparisonOperator != undefined) {\r\n loaded.ComparisonOperator(responseData.ComparisonOperator);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.CourseGroupQueryFilterType != null) {\r\n loaded.CourseGroupQueryFilterType(new smapi.academic.CourseGroupQueryFilterTypeModel().LoadFromResponse(responseData.CourseGroupQueryFilterType));\r\n }\r\n if (responseData.CourseGroupQueryBlock != null) {\r\n loaded.CourseGroupQueryBlock(new smapi.academic.CourseGroupQueryBlockModel().LoadFromResponse(responseData.CourseGroupQueryBlock));\r\n }\r\n if (responseData.Values != null && responseData.Values.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Values.length; i++) {\r\n items.push(new smapi.academic.CourseGroupQueryFilterValueModel().LoadFromResponse(responseData.Values[i]));\r\n }\r\n loaded.Values(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.Academic.Entity.CourseGroupQueryFilter', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.CourseGroupQueryFilterTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CourseGroupQueryBlockID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ComparisonOperator.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function CourseGroupQueryBlockModel(options) {\r\n var defaults = {\r\n CourseGroupQueryID: 0,\r\n SortOrder: 0,\r\n Operator: null,\r\n ExternalOperator: 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.CourseGroupQueryID = ko.validatedObservable(settings.CourseGroupQueryID);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.Operator = ko.validatedObservable(settings.Operator);\r\n this.ExternalOperator = ko.validatedObservable(settings.ExternalOperator);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.CourseGroupQuery = ko.observable();\r\n this.Filters = ko.observableArray([]);\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.CourseGroupQueryID != undefined) {\r\n loaded.CourseGroupQueryID(responseData.CourseGroupQueryID);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.Operator != undefined) {\r\n loaded.Operator(responseData.Operator);\r\n }\r\n if (responseData.ExternalOperator != undefined) {\r\n loaded.ExternalOperator(responseData.ExternalOperator);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.CourseGroupQuery != null) {\r\n loaded.CourseGroupQuery(new smapi.academic.CourseGroupQueryModel().LoadFromResponse(responseData.CourseGroupQuery));\r\n }\r\n if (responseData.Filters != null && responseData.Filters.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Filters.length; i++) {\r\n items.push(new smapi.academic.CourseGroupQueryFilterModel().LoadFromResponse(responseData.Filters[i]));\r\n }\r\n loaded.Filters(items);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.CourseGroupQueryBlock', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.CourseGroupQueryID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Operator.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ExternalOperator.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function CourseGroupQueryModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n DegreeCourseGroupID: 0,\r\n UnitOfMeasureID: 0,\r\n Units: 0,\r\n MinGPA: 0,\r\n Required: false,\r\n AllowTransfer: false,\r\n AllowEquivalent: false,\r\n Summarize: 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.DegreeCourseGroupID = ko.validatedObservable(settings.DegreeCourseGroupID);\r\n this.UnitOfMeasureID = ko.validatedObservable(settings.UnitOfMeasureID);\r\n this.Units = ko.validatedObservable(settings.Units);\r\n this.MinGPA = ko.validatedObservable(settings.MinGPA);\r\n this.Required = ko.validatedObservable(settings.Required);\r\n this.AllowTransfer = ko.validatedObservable(settings.AllowTransfer);\r\n this.AllowEquivalent = ko.validatedObservable(settings.AllowEquivalent);\r\n this.Summarize = ko.validatedObservable(settings.Summarize);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.UnitOfMeasure = ko.observable();\r\n this.DegreeCourseGroup = ko.observable();\r\n this.Blocks = 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.DegreeCourseGroupID != undefined) {\r\n loaded.DegreeCourseGroupID(responseData.DegreeCourseGroupID);\r\n }\r\n if (responseData.UnitOfMeasureID != undefined) {\r\n loaded.UnitOfMeasureID(responseData.UnitOfMeasureID);\r\n }\r\n if (responseData.Units != undefined) {\r\n loaded.Units(responseData.Units);\r\n }\r\n if (responseData.MinGPA != undefined) {\r\n loaded.MinGPA(responseData.MinGPA);\r\n }\r\n if (responseData.Required != undefined) {\r\n loaded.Required(responseData.Required);\r\n }\r\n if (responseData.AllowTransfer != undefined) {\r\n loaded.AllowTransfer(responseData.AllowTransfer);\r\n }\r\n if (responseData.AllowEquivalent != undefined) {\r\n loaded.AllowEquivalent(responseData.AllowEquivalent);\r\n }\r\n if (responseData.Summarize != undefined) {\r\n loaded.Summarize(responseData.Summarize);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.UnitOfMeasure != null) {\r\n loaded.UnitOfMeasure(new smapi.academic.CourseUnitModel().LoadFromResponse(responseData.UnitOfMeasure));\r\n }\r\n if (responseData.DegreeCourseGroup != null) {\r\n loaded.DegreeCourseGroup(new smapi.academic.DegreeCourseGroupModel().LoadFromResponse(responseData.DegreeCourseGroup));\r\n }\r\n if (responseData.Blocks != null && responseData.Blocks.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Blocks.length; i++) {\r\n items.push(new smapi.academic.CourseGroupQueryBlockModel().LoadFromResponse(responseData.Blocks[i]));\r\n }\r\n loaded.Blocks(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.Academic.Entity.CourseGroupQuery', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.DegreeCourseGroupID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.UnitOfMeasureID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Units.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.MinGPA.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.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function DegreeRequirementModel(options) {\r\n var defaults = {\r\n DegreeAuditID: 0,\r\n Name: '',\r\n Description: '',\r\n UnitOfMeasureID: null,\r\n MinUnits: 0,\r\n MinGPA: 0,\r\n PeriodOfCompletionValue: 0,\r\n PeriodOfCompletionUnitID: null,\r\n SortPriorityOrder: 0,\r\n Fulfilled: 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.DegreeAuditID = ko.validatedObservable(settings.DegreeAuditID);\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.UnitOfMeasureID = ko.validatedObservable(settings.UnitOfMeasureID);\r\n this.MinUnits = ko.validatedObservable(settings.MinUnits);\r\n this.MinGPA = ko.validatedObservable(settings.MinGPA);\r\n this.PeriodOfCompletionValue = ko.validatedObservable(settings.PeriodOfCompletionValue);\r\n this.PeriodOfCompletionUnitID = ko.validatedObservable(settings.PeriodOfCompletionUnitID);\r\n this.SortPriorityOrder = ko.validatedObservable(settings.SortPriorityOrder);\r\n this.Fulfilled = ko.validatedObservable(settings.Fulfilled);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.DegreeAudit = ko.observable();\r\n this.UnitOfMeasure = ko.observable();\r\n this.PeriodOfCompletionUnit = ko.observable();\r\n this.CourseGroups = ko.observableArray([]);\r\n this.RuleCriteriaForCourseGroups = ko.observableArray([]);\r\n this.Milestones = ko.observableArray([]);\r\n this.RuleCriteriaForMilestones = 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.DegreeAuditID != undefined) {\r\n loaded.DegreeAuditID(responseData.DegreeAuditID);\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.UnitOfMeasureID != undefined) {\r\n loaded.UnitOfMeasureID(responseData.UnitOfMeasureID);\r\n }\r\n if (responseData.MinUnits != undefined) {\r\n loaded.MinUnits(responseData.MinUnits);\r\n }\r\n if (responseData.MinGPA != undefined) {\r\n loaded.MinGPA(responseData.MinGPA);\r\n }\r\n if (responseData.PeriodOfCompletionValue != undefined) {\r\n loaded.PeriodOfCompletionValue(responseData.PeriodOfCompletionValue);\r\n }\r\n if (responseData.PeriodOfCompletionUnitID != undefined) {\r\n loaded.PeriodOfCompletionUnitID(responseData.PeriodOfCompletionUnitID);\r\n }\r\n if (responseData.SortPriorityOrder != undefined) {\r\n loaded.SortPriorityOrder(responseData.SortPriorityOrder);\r\n }\r\n if (responseData.Fulfilled != undefined) {\r\n loaded.Fulfilled(responseData.Fulfilled);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.DegreeAudit != null) {\r\n loaded.DegreeAudit(new smapi.academic.DegreeAuditModel().LoadFromResponse(responseData.DegreeAudit));\r\n }\r\n if (responseData.UnitOfMeasure != null) {\r\n loaded.UnitOfMeasure(new smapi.academic.CourseUnitModel().LoadFromResponse(responseData.UnitOfMeasure));\r\n }\r\n if (responseData.PeriodOfCompletionUnit != null) {\r\n loaded.PeriodOfCompletionUnit(new smapi.academic.PeriodOfCompletionUnitModel().LoadFromResponse(responseData.PeriodOfCompletionUnit));\r\n }\r\n if (responseData.CourseGroups != null && responseData.CourseGroups.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.CourseGroups.length; i++) {\r\n items.push(new smapi.academic.DegreeCourseGroupModel().LoadFromResponse(responseData.CourseGroups[i]));\r\n }\r\n loaded.CourseGroups(items);\r\n }\r\n if (responseData.RuleCriteriaForCourseGroups != null && responseData.RuleCriteriaForCourseGroups.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.RuleCriteriaForCourseGroups.length; i++) {\r\n items.push(new smapi.academic.CourseGroupQualifierBlockModel().LoadFromResponse(responseData.RuleCriteriaForCourseGroups[i]));\r\n }\r\n loaded.RuleCriteriaForCourseGroups(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.academic.DegreeRequirementMilestoneModel().LoadFromResponse(responseData.Milestones[i]));\r\n }\r\n loaded.Milestones(items);\r\n }\r\n if (responseData.RuleCriteriaForMilestones != null && responseData.RuleCriteriaForMilestones.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.RuleCriteriaForMilestones.length; i++) {\r\n items.push(new smapi.academic.RequirementMilestoneRuleBlockModel().LoadFromResponse(responseData.RuleCriteriaForMilestones[i]));\r\n }\r\n loaded.RuleCriteriaForMilestones(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.Academic.Entity.DegreeRequirement', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.DegreeAuditID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.Description.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.UnitOfMeasureID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MinUnits.extend({\r\n min: {\r\n params: -179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MinGPA.extend({\r\n min: {\r\n params: -179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PeriodOfCompletionValue.extend({\r\n min: {\r\n params: -179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PeriodOfCompletionUnitID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortPriorityOrder.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 DegreeRequirementQualifierRuleModel(options) {\r\n var defaults = {\r\n DegreeRequirementQualifierBlockID: 0,\r\n SortOrder: 0,\r\n DegreeRequirementID: 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.DegreeRequirementQualifierBlockID = ko.validatedObservable(settings.DegreeRequirementQualifierBlockID);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.DegreeRequirementID = ko.validatedObservable(settings.DegreeRequirementID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.DegreeRequirementQualifierBlock = ko.observable();\r\n this.DegreeRequirement = 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.DegreeRequirementQualifierBlockID != undefined) {\r\n loaded.DegreeRequirementQualifierBlockID(responseData.DegreeRequirementQualifierBlockID);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.DegreeRequirementID != undefined) {\r\n loaded.DegreeRequirementID(responseData.DegreeRequirementID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.DegreeRequirementQualifierBlock != null) {\r\n loaded.DegreeRequirementQualifierBlock(new smapi.academic.DegreeRequirementQualifierBlockModel().LoadFromResponse(responseData.DegreeRequirementQualifierBlock));\r\n }\r\n if (responseData.DegreeRequirement != null) {\r\n loaded.DegreeRequirement(new smapi.academic.DegreeRequirementModel().LoadFromResponse(responseData.DegreeRequirement));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.DegreeRequirementQualifierRule', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.DegreeRequirementQualifierBlockID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DegreeRequirementID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 DegreeRequirementQualifierBlockModel(options) {\r\n var defaults = {\r\n DegreeAuditID: 0,\r\n SortOrder: 0,\r\n OuterOperator: null,\r\n InnerOperator: 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.DegreeAuditID = ko.validatedObservable(settings.DegreeAuditID);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.OuterOperator = ko.validatedObservable(settings.OuterOperator);\r\n this.InnerOperator = ko.validatedObservable(settings.InnerOperator);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.DegreeAudit = ko.observable();\r\n this.Rules = 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.DegreeAuditID != undefined) {\r\n loaded.DegreeAuditID(responseData.DegreeAuditID);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.OuterOperator != undefined) {\r\n loaded.OuterOperator(responseData.OuterOperator);\r\n }\r\n if (responseData.InnerOperator != undefined) {\r\n loaded.InnerOperator(responseData.InnerOperator);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.DegreeAudit != null) {\r\n loaded.DegreeAudit(new smapi.academic.DegreeAuditModel().LoadFromResponse(responseData.DegreeAudit));\r\n }\r\n if (responseData.Rules != null && responseData.Rules.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Rules.length; i++) {\r\n items.push(new smapi.academic.DegreeRequirementQualifierRuleModel().LoadFromResponse(responseData.Rules[i]));\r\n }\r\n loaded.Rules(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.Academic.Entity.DegreeRequirementQualifierBlock', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.DegreeAuditID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.OuterOperator.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.InnerOperator.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 DegreeAuditHistoryDetailModel(options) {\r\n var defaults = {\r\n DegreeAuditHistoryID: null,\r\n Action: '',\r\n Path: '',\r\n ObjectType: '',\r\n OldValue: '',\r\n NewValue: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.DegreeAuditHistoryID = ko.validatedObservable(settings.DegreeAuditHistoryID);\r\n this.Action = ko.validatedObservable(settings.Action);\r\n this.Path = ko.validatedObservable(settings.Path);\r\n this.ObjectType = ko.validatedObservable(settings.ObjectType);\r\n this.OldValue = ko.validatedObservable(settings.OldValue);\r\n this.NewValue = ko.validatedObservable(settings.NewValue);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.DegreeAuditHistory = 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.DegreeAuditHistoryID != undefined) {\r\n loaded.DegreeAuditHistoryID(responseData.DegreeAuditHistoryID);\r\n }\r\n if (responseData.Action != undefined) {\r\n loaded.Action(responseData.Action);\r\n }\r\n if (responseData.Path != undefined) {\r\n loaded.Path(responseData.Path);\r\n }\r\n if (responseData.ObjectType != undefined) {\r\n loaded.ObjectType(responseData.ObjectType);\r\n }\r\n if (responseData.OldValue != undefined) {\r\n loaded.OldValue(responseData.OldValue);\r\n }\r\n if (responseData.NewValue != undefined) {\r\n loaded.NewValue(responseData.NewValue);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.DegreeAuditHistory != null) {\r\n loaded.DegreeAuditHistory(new smapi.academic.DegreeAuditHistoryModel().LoadFromResponse(responseData.DegreeAuditHistory));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.DegreeAuditHistoryDetail', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.DegreeAuditHistoryID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Action.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.Path.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ObjectType.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.OldValue.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.NewValue.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function DegreeAuditHistoryModel(options) {\r\n var defaults = {\r\n Comment: '',\r\n DegreeAuditID: 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.Comment = ko.validatedObservable(settings.Comment);\r\n this.DegreeAuditID = ko.validatedObservable(settings.DegreeAuditID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.DegreeAudit = ko.observable();\r\n this.Details = 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.Comment != undefined) {\r\n loaded.Comment(responseData.Comment);\r\n }\r\n if (responseData.DegreeAuditID != undefined) {\r\n loaded.DegreeAuditID(responseData.DegreeAuditID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.DegreeAudit != null) {\r\n loaded.DegreeAudit(new smapi.academic.DegreeAuditModel().LoadFromResponse(responseData.DegreeAudit));\r\n }\r\n if (responseData.Details != null && responseData.Details.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Details.length; i++) {\r\n items.push(new smapi.academic.DegreeAuditHistoryDetailModel().LoadFromResponse(responseData.Details[i]));\r\n }\r\n loaded.Details(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.Academic.Entity.DegreeAuditHistory', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Comment.extend({\r\n maxLength: {\r\n params: 2000,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '2000')\r\n }\r\n });\r\n this.DegreeAuditID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 DegreeAuditModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n ProgramID: 0,\r\n GoalID: 0,\r\n Version: '',\r\n StartDate: null,\r\n EndDate: null,\r\n DefaultUnitOfMeasureID: null,\r\n DefaultMatchLimit: 0,\r\n DefaultSummarize: false,\r\n UnitOfMeasureID: null,\r\n MinUnits: 0,\r\n MinGPA: 0,\r\n PeriodOfCompletionValue: 0,\r\n PeriodOfCompletionUnitID: null,\r\n CurrentSchoolCompletionUnitOfMeasureID: null,\r\n CurrentSchoolCompletionTotal: 0,\r\n CurrentSchoolCompletionMin: 0,\r\n BusinessMeaningName: '',\r\n OverridesID: null,\r\n StudentID: 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.ProgramID = ko.validatedObservable(settings.ProgramID);\r\n this.GoalID = ko.validatedObservable(settings.GoalID);\r\n this.Version = ko.validatedObservable(settings.Version);\r\n this.StartDate = ko.validatedObservable(settings.StartDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.DefaultUnitOfMeasureID = ko.validatedObservable(settings.DefaultUnitOfMeasureID);\r\n this.DefaultMatchLimit = ko.validatedObservable(settings.DefaultMatchLimit);\r\n this.DefaultSummarize = ko.validatedObservable(settings.DefaultSummarize);\r\n this.UnitOfMeasureID = ko.validatedObservable(settings.UnitOfMeasureID);\r\n this.MinUnits = ko.validatedObservable(settings.MinUnits);\r\n this.MinGPA = ko.validatedObservable(settings.MinGPA);\r\n this.PeriodOfCompletionValue = ko.validatedObservable(settings.PeriodOfCompletionValue);\r\n this.PeriodOfCompletionUnitID = ko.validatedObservable(settings.PeriodOfCompletionUnitID);\r\n this.CurrentSchoolCompletionUnitOfMeasureID = ko.validatedObservable(settings.CurrentSchoolCompletionUnitOfMeasureID);\r\n this.CurrentSchoolCompletionTotal = ko.validatedObservable(settings.CurrentSchoolCompletionTotal);\r\n this.CurrentSchoolCompletionMin = ko.validatedObservable(settings.CurrentSchoolCompletionMin);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.OverridesID = ko.validatedObservable(settings.OverridesID);\r\n this.StudentID = ko.validatedObservable(settings.StudentID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Overrides = ko.observable();\r\n this.Student = ko.observable();\r\n this.Program = ko.observable();\r\n this.Goal = ko.observable();\r\n this.DefaultUnitOfMeasure = ko.observable();\r\n this.CurrentSchoolCompletionUnitOfMeasure = ko.observable();\r\n this.UnitOfMeasure = ko.observable();\r\n this.PeriodOfCompletionUnit = ko.observable();\r\n this.Requirements = ko.observableArray([]);\r\n this.RuleBlocks = ko.observableArray([]);\r\n this.History = 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.ProgramID != undefined) {\r\n loaded.ProgramID(responseData.ProgramID);\r\n }\r\n if (responseData.GoalID != undefined) {\r\n loaded.GoalID(responseData.GoalID);\r\n }\r\n if (responseData.Version != undefined) {\r\n loaded.Version(responseData.Version);\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.DefaultUnitOfMeasureID != undefined) {\r\n loaded.DefaultUnitOfMeasureID(responseData.DefaultUnitOfMeasureID);\r\n }\r\n if (responseData.DefaultMatchLimit != undefined) {\r\n loaded.DefaultMatchLimit(responseData.DefaultMatchLimit);\r\n }\r\n if (responseData.DefaultSummarize != undefined) {\r\n loaded.DefaultSummarize(responseData.DefaultSummarize);\r\n }\r\n if (responseData.UnitOfMeasureID != undefined) {\r\n loaded.UnitOfMeasureID(responseData.UnitOfMeasureID);\r\n }\r\n if (responseData.MinUnits != undefined) {\r\n loaded.MinUnits(responseData.MinUnits);\r\n }\r\n if (responseData.MinGPA != undefined) {\r\n loaded.MinGPA(responseData.MinGPA);\r\n }\r\n if (responseData.PeriodOfCompletionValue != undefined) {\r\n loaded.PeriodOfCompletionValue(responseData.PeriodOfCompletionValue);\r\n }\r\n if (responseData.PeriodOfCompletionUnitID != undefined) {\r\n loaded.PeriodOfCompletionUnitID(responseData.PeriodOfCompletionUnitID);\r\n }\r\n if (responseData.CurrentSchoolCompletionUnitOfMeasureID != undefined) {\r\n loaded.CurrentSchoolCompletionUnitOfMeasureID(responseData.CurrentSchoolCompletionUnitOfMeasureID);\r\n }\r\n if (responseData.CurrentSchoolCompletionTotal != undefined) {\r\n loaded.CurrentSchoolCompletionTotal(responseData.CurrentSchoolCompletionTotal);\r\n }\r\n if (responseData.CurrentSchoolCompletionMin != undefined) {\r\n loaded.CurrentSchoolCompletionMin(responseData.CurrentSchoolCompletionMin);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.OverridesID != undefined) {\r\n loaded.OverridesID(responseData.OverridesID);\r\n }\r\n if (responseData.StudentID != undefined) {\r\n loaded.StudentID(responseData.StudentID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Overrides != null) {\r\n loaded.Overrides(new smapi.academic.DegreeAuditModel().LoadFromResponse(responseData.Overrides));\r\n }\r\n if (responseData.Student != null) {\r\n loaded.Student(new smapi.academic.StudentModel().LoadFromResponse(responseData.Student));\r\n }\r\n if (responseData.Program != null) {\r\n loaded.Program(new smapi.academic.AcademicProgramModel().LoadFromResponse(responseData.Program));\r\n }\r\n if (responseData.Goal != null) {\r\n loaded.Goal(new smapi.academic.EducationalGoalModel().LoadFromResponse(responseData.Goal));\r\n }\r\n if (responseData.DefaultUnitOfMeasure != null) {\r\n loaded.DefaultUnitOfMeasure(new smapi.academic.CourseUnitModel().LoadFromResponse(responseData.DefaultUnitOfMeasure));\r\n }\r\n if (responseData.CurrentSchoolCompletionUnitOfMeasure != null) {\r\n loaded.CurrentSchoolCompletionUnitOfMeasure(new smapi.academic.CourseUnitModel().LoadFromResponse(responseData.CurrentSchoolCompletionUnitOfMeasure));\r\n }\r\n if (responseData.UnitOfMeasure != null) {\r\n loaded.UnitOfMeasure(new smapi.academic.CourseUnitModel().LoadFromResponse(responseData.UnitOfMeasure));\r\n }\r\n if (responseData.PeriodOfCompletionUnit != null) {\r\n loaded.PeriodOfCompletionUnit(new smapi.academic.PeriodOfCompletionUnitModel().LoadFromResponse(responseData.PeriodOfCompletionUnit));\r\n }\r\n if (responseData.Requirements != null && responseData.Requirements.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Requirements.length; i++) {\r\n items.push(new smapi.academic.DegreeRequirementModel().LoadFromResponse(responseData.Requirements[i]));\r\n }\r\n loaded.Requirements(items);\r\n }\r\n if (responseData.RuleBlocks != null && responseData.RuleBlocks.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.RuleBlocks.length; i++) {\r\n items.push(new smapi.academic.DegreeRequirementQualifierBlockModel().LoadFromResponse(responseData.RuleBlocks[i]));\r\n }\r\n loaded.RuleBlocks(items);\r\n }\r\n if (responseData.History != null && responseData.History.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.History.length; i++) {\r\n items.push(new smapi.academic.DegreeAuditHistoryModel().LoadFromResponse(responseData.History[i]));\r\n }\r\n loaded.History(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.Academic.Entity.DegreeAudit', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n this.Description.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.ProgramID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GoalID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Version.extend({\r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\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.DefaultUnitOfMeasureID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DefaultMatchLimit.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.UnitOfMeasureID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MinUnits.extend({\r\n min: {\r\n params: -179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MinGPA.extend({\r\n min: {\r\n params: -179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PeriodOfCompletionValue.extend({\r\n min: {\r\n params: -179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PeriodOfCompletionUnitID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CurrentSchoolCompletionUnitOfMeasureID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CurrentSchoolCompletionTotal.extend({\r\n min: {\r\n params: -179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CurrentSchoolCompletionMin.extend({\r\n min: {\r\n params: -179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.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.OverridesID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 DegreeAuditMilestoneTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n SystemProtected: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.DegreeAuditMilestoneType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 AcademicMilestoneTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n MilestoneTypeID: 0,\r\n BusinessMeaningName: '',\r\n SystemProtected: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.MilestoneTypeID = ko.validatedObservable(settings.MilestoneTypeID);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.MilestoneType = 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.MilestoneTypeID != undefined) {\r\n loaded.MilestoneTypeID(responseData.MilestoneTypeID);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.MilestoneType != null) {\r\n loaded.MilestoneType(new smapi.academic.DegreeAuditMilestoneTypeModel().LoadFromResponse(responseData.MilestoneType));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.AcademicMilestoneType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.MilestoneTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 DegreeRequirementMilestoneTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n MilestoneTypeID: 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.MilestoneTypeID = ko.validatedObservable(settings.MilestoneTypeID);\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.MilestoneType = 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.MilestoneTypeID != undefined) {\r\n loaded.MilestoneTypeID(responseData.MilestoneTypeID);\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.MilestoneType != null) {\r\n loaded.MilestoneType(new smapi.academic.DegreeAuditMilestoneTypeModel().LoadFromResponse(responseData.MilestoneType));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.DegreeRequirementMilestoneType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.MilestoneTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 DegreeRequirementMilestoneModel(options) {\r\n var defaults = {\r\n DegreeRequirementID: 0,\r\n MilestoneTypeID: 0,\r\n Name: '',\r\n Description: '',\r\n Fulfilled: false,\r\n AcademicMilestoneTypeID: 0,\r\n PeriodOfCompletionValue: 0,\r\n PeriodOfCompletionUnitID: 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.DegreeRequirementID = ko.validatedObservable(settings.DegreeRequirementID);\r\n this.MilestoneTypeID = ko.validatedObservable(settings.MilestoneTypeID);\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.Fulfilled = ko.validatedObservable(settings.Fulfilled);\r\n this.AcademicMilestoneTypeID = ko.validatedObservable(settings.AcademicMilestoneTypeID);\r\n this.PeriodOfCompletionValue = ko.validatedObservable(settings.PeriodOfCompletionValue);\r\n this.PeriodOfCompletionUnitID = ko.validatedObservable(settings.PeriodOfCompletionUnitID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.DegreeRequirement = ko.observable();\r\n this.MilestoneType = ko.observable();\r\n this.AcademicMilestoneType = ko.observable();\r\n this.PeriodOfCompletionUnit = 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.DegreeRequirementID != undefined) {\r\n loaded.DegreeRequirementID(responseData.DegreeRequirementID);\r\n }\r\n if (responseData.MilestoneTypeID != undefined) {\r\n loaded.MilestoneTypeID(responseData.MilestoneTypeID);\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.Fulfilled != undefined) {\r\n loaded.Fulfilled(responseData.Fulfilled);\r\n }\r\n if (responseData.AcademicMilestoneTypeID != undefined) {\r\n loaded.AcademicMilestoneTypeID(responseData.AcademicMilestoneTypeID);\r\n }\r\n if (responseData.PeriodOfCompletionValue != undefined) {\r\n loaded.PeriodOfCompletionValue(responseData.PeriodOfCompletionValue);\r\n }\r\n if (responseData.PeriodOfCompletionUnitID != undefined) {\r\n loaded.PeriodOfCompletionUnitID(responseData.PeriodOfCompletionUnitID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.DegreeRequirement != null) {\r\n loaded.DegreeRequirement(new smapi.academic.DegreeRequirementModel().LoadFromResponse(responseData.DegreeRequirement));\r\n }\r\n if (responseData.MilestoneType != null) {\r\n loaded.MilestoneType(new smapi.academic.DegreeAuditMilestoneTypeModel().LoadFromResponse(responseData.MilestoneType));\r\n }\r\n if (responseData.AcademicMilestoneType != null) {\r\n loaded.AcademicMilestoneType(new smapi.academic.AcademicMilestoneTypeModel().LoadFromResponse(responseData.AcademicMilestoneType));\r\n }\r\n if (responseData.PeriodOfCompletionUnit != null) {\r\n loaded.PeriodOfCompletionUnit(new smapi.academic.PeriodOfCompletionUnitModel().LoadFromResponse(responseData.PeriodOfCompletionUnit));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.DegreeRequirementMilestone', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.DegreeRequirementID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MilestoneTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 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.AcademicMilestoneTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PeriodOfCompletionValue.extend({\r\n min: {\r\n params: -179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 179769313486232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PeriodOfCompletionUnitID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 RequirementMilestoneRuleModel(options) {\r\n var defaults = {\r\n MilestoneRuleBlockID: 0,\r\n MilestoneID: 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.MilestoneRuleBlockID = ko.validatedObservable(settings.MilestoneRuleBlockID);\r\n this.MilestoneID = ko.validatedObservable(settings.MilestoneID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.MilestoneRuleBlock = ko.observable();\r\n this.Milestone = 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.MilestoneRuleBlockID != undefined) {\r\n loaded.MilestoneRuleBlockID(responseData.MilestoneRuleBlockID);\r\n }\r\n if (responseData.MilestoneID != undefined) {\r\n loaded.MilestoneID(responseData.MilestoneID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.MilestoneRuleBlock != null) {\r\n loaded.MilestoneRuleBlock(new smapi.academic.RequirementMilestoneRuleBlockModel().LoadFromResponse(responseData.MilestoneRuleBlock));\r\n }\r\n if (responseData.Milestone != null) {\r\n loaded.Milestone(new smapi.academic.DegreeRequirementMilestoneModel().LoadFromResponse(responseData.Milestone));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.RequirementMilestoneRule', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.MilestoneRuleBlockID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.MilestoneID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 RequirementMilestoneRuleBlockModel(options) {\r\n var defaults = {\r\n DegreeRequirementID: 0,\r\n ExternalOperator: null,\r\n InternalOperator: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.DegreeRequirementID = ko.validatedObservable(settings.DegreeRequirementID);\r\n this.ExternalOperator = ko.validatedObservable(settings.ExternalOperator);\r\n this.InternalOperator = ko.validatedObservable(settings.InternalOperator);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.DegreeRequirement = ko.observable();\r\n this.Rules = 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.DegreeRequirementID != undefined) {\r\n loaded.DegreeRequirementID(responseData.DegreeRequirementID);\r\n }\r\n if (responseData.ExternalOperator != undefined) {\r\n loaded.ExternalOperator(responseData.ExternalOperator);\r\n }\r\n if (responseData.InternalOperator != undefined) {\r\n loaded.InternalOperator(responseData.InternalOperator);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.DegreeRequirement != null) {\r\n loaded.DegreeRequirement(new smapi.academic.DegreeRequirementModel().LoadFromResponse(responseData.DegreeRequirement));\r\n }\r\n if (responseData.Rules != null && responseData.Rules.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Rules.length; i++) {\r\n items.push(new smapi.academic.RequirementMilestoneRuleModel().LoadFromResponse(responseData.Rules[i]));\r\n }\r\n loaded.Rules(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.Academic.Entity.RequirementMilestoneRuleBlock', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.DegreeRequirementID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ExternalOperator.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.InternalOperator.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AcademicReportingCodeTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.AcademicReportingCodeType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 AcademicReportingCodeModel(options) {\r\n var defaults = {\r\n AcademicProgramID: null,\r\n Name: '',\r\n Description: '',\r\n BeginDate: null,\r\n EndDate: null,\r\n ReportCodeTypeID: 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.AcademicProgramID = ko.validatedObservable(settings.AcademicProgramID);\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BeginDate = ko.validatedObservable(settings.BeginDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.ReportCodeTypeID = ko.validatedObservable(settings.ReportCodeTypeID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.ReportCodeType = ko.observable();\r\n this.AcademicProgram = 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.AcademicProgramID != undefined) {\r\n loaded.AcademicProgramID(responseData.AcademicProgramID);\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.BeginDate != undefined) {\r\n loaded.BeginDate(responseData.BeginDate);\r\n }\r\n if (responseData.EndDate != undefined) {\r\n loaded.EndDate(responseData.EndDate);\r\n }\r\n if (responseData.ReportCodeTypeID != undefined) {\r\n loaded.ReportCodeTypeID(responseData.ReportCodeTypeID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.ReportCodeType != null) {\r\n loaded.ReportCodeType(new smapi.academic.AcademicReportingCodeTypeModel().LoadFromResponse(responseData.ReportCodeType));\r\n }\r\n if (responseData.AcademicProgram != null) {\r\n loaded.AcademicProgram(new smapi.academic.AcademicProgramModel().LoadFromResponse(responseData.AcademicProgram));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.AcademicReportingCode', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\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.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BeginDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.EndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ReportCodeTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 ExternalAcademicReportingCodeModel(options) {\r\n var defaults = {\r\n ExternalAcademicProgramID: null,\r\n Name: '',\r\n Description: '',\r\n BeginDate: null,\r\n EndDate: null,\r\n ReportCodeTypeID: 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.ExternalAcademicProgramID = ko.validatedObservable(settings.ExternalAcademicProgramID);\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BeginDate = ko.validatedObservable(settings.BeginDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.ReportCodeTypeID = ko.validatedObservable(settings.ReportCodeTypeID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.ReportCodeType = ko.observable();\r\n this.ExternalAcademicProgram = 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.ExternalAcademicProgramID != undefined) {\r\n loaded.ExternalAcademicProgramID(responseData.ExternalAcademicProgramID);\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.BeginDate != undefined) {\r\n loaded.BeginDate(responseData.BeginDate);\r\n }\r\n if (responseData.EndDate != undefined) {\r\n loaded.EndDate(responseData.EndDate);\r\n }\r\n if (responseData.ReportCodeTypeID != undefined) {\r\n loaded.ReportCodeTypeID(responseData.ReportCodeTypeID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.ReportCodeType != null) {\r\n loaded.ReportCodeType(new smapi.academic.AcademicReportingCodeTypeModel().LoadFromResponse(responseData.ReportCodeType));\r\n }\r\n if (responseData.ExternalAcademicProgram != null) {\r\n loaded.ExternalAcademicProgram(new smapi.academic.ExternalAcademicProgramModel().LoadFromResponse(responseData.ExternalAcademicProgram));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.ExternalAcademicReportingCode', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.ExternalAcademicProgramID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.BeginDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.EndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.ReportCodeTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 FundingSourceModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n FundBeginDate: null,\r\n FundEndDate: null,\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.FundBeginDate = ko.validatedObservable(settings.FundBeginDate);\r\n this.FundEndDate = ko.validatedObservable(settings.FundEndDate);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.FundBeginDate != undefined) {\r\n loaded.FundBeginDate(responseData.FundBeginDate);\r\n }\r\n if (responseData.FundEndDate != undefined) {\r\n loaded.FundEndDate(responseData.FundEndDate);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.FundingSource', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.FundBeginDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.FundEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 CourseMasterFundingSourceModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n FundBeginDate: null,\r\n FundEndDate: null,\r\n FundingSourceID: 0,\r\n OrganizationID: 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.FundBeginDate = ko.validatedObservable(settings.FundBeginDate);\r\n this.FundEndDate = ko.validatedObservable(settings.FundEndDate);\r\n this.FundingSourceID = ko.validatedObservable(settings.FundingSourceID);\r\n this.OrganizationID = ko.validatedObservable(settings.OrganizationID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.FundSource = ko.observable();\r\n this.Organization = 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.FundBeginDate != undefined) {\r\n loaded.FundBeginDate(responseData.FundBeginDate);\r\n }\r\n if (responseData.FundEndDate != undefined) {\r\n loaded.FundEndDate(responseData.FundEndDate);\r\n }\r\n if (responseData.FundingSourceID != undefined) {\r\n loaded.FundingSourceID(responseData.FundingSourceID);\r\n }\r\n if (responseData.OrganizationID != undefined) {\r\n loaded.OrganizationID(responseData.OrganizationID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.FundSource != null) {\r\n loaded.FundSource(new smapi.academic.FundingSourceModel().LoadFromResponse(responseData.FundSource));\r\n }\r\n if (responseData.Organization != null) {\r\n loaded.Organization(new smapi.community.OrganizationModel().LoadFromResponse(responseData.Organization));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.CourseMasterFundingSource', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.FundBeginDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.FundEndDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.FundingSourceID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function SAPConfigurationScopeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n EnrollmentLoadID: null,\r\n AcademicLevelID: null,\r\n ProgramCategoryID: null,\r\n AcademicProgramID: 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.EnrollmentLoadID = ko.validatedObservable(settings.EnrollmentLoadID);\r\n this.AcademicLevelID = ko.validatedObservable(settings.AcademicLevelID);\r\n this.ProgramCategoryID = ko.validatedObservable(settings.ProgramCategoryID);\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.EnrollmentLoad = ko.observable();\r\n this.AcademicLevel = ko.observable();\r\n this.ProgramCategory = ko.observable();\r\n this.AcademicProgram = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.EnrollmentLoadID != undefined) {\r\n loaded.EnrollmentLoadID(responseData.EnrollmentLoadID);\r\n }\r\n if (responseData.AcademicLevelID != undefined) {\r\n loaded.AcademicLevelID(responseData.AcademicLevelID);\r\n }\r\n if (responseData.ProgramCategoryID != undefined) {\r\n loaded.ProgramCategoryID(responseData.ProgramCategoryID);\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.EnrollmentLoad != null) {\r\n loaded.EnrollmentLoad(new smapi.academic.EnrollmentLoadModel().LoadFromResponse(responseData.EnrollmentLoad));\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.ProgramCategory != null) {\r\n loaded.ProgramCategory(new smapi.academic.ProgramCategoryModel().LoadFromResponse(responseData.ProgramCategory));\r\n }\r\n if (responseData.AcademicProgram != null) {\r\n loaded.AcademicProgram(new smapi.academic.AcademicProgramModel().LoadFromResponse(responseData.AcademicProgram));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.SAPConfigurationScope', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EnrollmentLoadID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.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.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.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 AcademicPlanStepTypeModel(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.Academic.Entity.AcademicPlanStepType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.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 AcademicPlanStepModel(options) {\r\n var defaults = {\r\n Name: '',\r\n StepTypeID: null,\r\n StepMet: false,\r\n StepMetApproved: false,\r\n StepMetApprovedByID: null,\r\n StepDetails: '',\r\n AcademicPlanID: 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.StepTypeID = ko.validatedObservable(settings.StepTypeID);\r\n this.StepMet = ko.validatedObservable(settings.StepMet);\r\n this.StepMetApproved = ko.validatedObservable(settings.StepMetApproved);\r\n this.StepMetApprovedByID = ko.validatedObservable(settings.StepMetApprovedByID);\r\n this.StepDetails = ko.validatedObservable(settings.StepDetails);\r\n this.AcademicPlanID = ko.validatedObservable(settings.AcademicPlanID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.StepMetApprovedBy = ko.observable();\r\n this.AcademicPlan = ko.observable();\r\n this.StepType = 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.StepTypeID != undefined) {\r\n loaded.StepTypeID(responseData.StepTypeID);\r\n }\r\n if (responseData.StepMet != undefined) {\r\n loaded.StepMet(responseData.StepMet);\r\n }\r\n if (responseData.StepMetApproved != undefined) {\r\n loaded.StepMetApproved(responseData.StepMetApproved);\r\n }\r\n if (responseData.StepMetApprovedByID != undefined) {\r\n loaded.StepMetApprovedByID(responseData.StepMetApprovedByID);\r\n }\r\n if (responseData.StepDetails != undefined) {\r\n loaded.StepDetails(responseData.StepDetails);\r\n }\r\n if (responseData.AcademicPlanID != undefined) {\r\n loaded.AcademicPlanID(responseData.AcademicPlanID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.StepMetApprovedBy != null) {\r\n loaded.StepMetApprovedBy(new smapi.entities.UserModel().LoadFromResponse(responseData.StepMetApprovedBy));\r\n }\r\n if (responseData.AcademicPlan != null) {\r\n loaded.AcademicPlan(new smapi.academic.AcademicPlanModel().LoadFromResponse(responseData.AcademicPlan));\r\n }\r\n if (responseData.StepType != null) {\r\n loaded.StepType(new smapi.academic.AcademicPlanStepTypeModel().LoadFromResponse(responseData.StepType));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.AcademicPlanStep', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.StepTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StepMetApprovedByID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AcademicPlanID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 AcademicPlanModel(options) {\r\n var defaults = {\r\n StudentID: null,\r\n PlanMet: false,\r\n PlanMetApproved: false,\r\n PlanMetApprovedByID: null,\r\n AcademicPeriodID: null,\r\n StartDate: null,\r\n EndDate: null,\r\n AcademicRequirementID: 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.StudentID = ko.validatedObservable(settings.StudentID);\r\n this.PlanMet = ko.validatedObservable(settings.PlanMet);\r\n this.PlanMetApproved = ko.validatedObservable(settings.PlanMetApproved);\r\n this.PlanMetApprovedByID = ko.validatedObservable(settings.PlanMetApprovedByID);\r\n this.AcademicPeriodID = ko.validatedObservable(settings.AcademicPeriodID);\r\n this.StartDate = ko.validatedObservable(settings.StartDate);\r\n this.EndDate = ko.validatedObservable(settings.EndDate);\r\n this.AcademicRequirementID = ko.validatedObservable(settings.AcademicRequirementID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Student = ko.observable();\r\n this.PlanMetApprovedBy = ko.observable();\r\n this.AcademicRequirement = ko.observable();\r\n this.Steps = ko.observableArray([]);\r\n this.AcademicPeriod = 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.StudentID != undefined) {\r\n loaded.StudentID(responseData.StudentID);\r\n }\r\n if (responseData.PlanMet != undefined) {\r\n loaded.PlanMet(responseData.PlanMet);\r\n }\r\n if (responseData.PlanMetApproved != undefined) {\r\n loaded.PlanMetApproved(responseData.PlanMetApproved);\r\n }\r\n if (responseData.PlanMetApprovedByID != undefined) {\r\n loaded.PlanMetApprovedByID(responseData.PlanMetApprovedByID);\r\n }\r\n if (responseData.AcademicPeriodID != undefined) {\r\n loaded.AcademicPeriodID(responseData.AcademicPeriodID);\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.AcademicRequirementID != undefined) {\r\n loaded.AcademicRequirementID(responseData.AcademicRequirementID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Student != null) {\r\n loaded.Student(new smapi.academic.StudentModel().LoadFromResponse(responseData.Student));\r\n }\r\n if (responseData.PlanMetApprovedBy != null) {\r\n loaded.PlanMetApprovedBy(new smapi.entities.UserModel().LoadFromResponse(responseData.PlanMetApprovedBy));\r\n }\r\n if (responseData.AcademicRequirement != null) {\r\n loaded.AcademicRequirement(new smapi.academic.AcademicRequirementModel().LoadFromResponse(responseData.AcademicRequirement));\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.academic.AcademicPlanStepModel().LoadFromResponse(responseData.Steps[i]));\r\n }\r\n loaded.Steps(items);\r\n }\r\n if (responseData.AcademicPeriod != null) {\r\n loaded.AcademicPeriod(new smapi.academic.AcademicPeriodModel().LoadFromResponse(responseData.AcademicPeriod));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.AcademicPlan', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.StudentID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.PlanMetApprovedByID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AcademicPeriodID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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.AcademicRequirementID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 AcademicStatusAppealReasonModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n RequiresExplanation: false,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.RequiresExplanation = ko.validatedObservable(settings.RequiresExplanation);\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.RequiresExplanation != undefined) {\r\n loaded.RequiresExplanation(responseData.RequiresExplanation);\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.Academic.Entity.AcademicStatusAppealReason', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.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 AcademicProgressStandingTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SystemProtected: false,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\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.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.AcademicProgressStandingType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.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 AcademicAwardTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n SystemProtected: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.AcademicAwardType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 AcademicProgressStatusModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n ClassType: 0,\r\n SortOrder: 0,\r\n StopRegistration: false,\r\n StopOnlineRegistration: false,\r\n StopTranscript: false,\r\n StopGradeCard: false,\r\n StopStatement: false,\r\n AllowAppeal: false,\r\n CSSClassName: '',\r\n Occurrence: 0,\r\n BusinessMeaningName: '',\r\n HoldTypeID: null,\r\n StandingTypeID: 0,\r\n AcademicAchievementTypeID: null,\r\n SAPScopeID: null,\r\n Frequency: null,\r\n GradeEffectTypeID: null,\r\n RepeatPolicyID: null,\r\n EvaluationMonth: 0,\r\n EvaluationDayOfMonth: 0,\r\n RemedialCourses: false,\r\n MaxResetCount: 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.ClassType = ko.validatedObservable(settings.ClassType);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.StopRegistration = ko.validatedObservable(settings.StopRegistration);\r\n this.StopOnlineRegistration = ko.validatedObservable(settings.StopOnlineRegistration);\r\n this.StopTranscript = ko.validatedObservable(settings.StopTranscript);\r\n this.StopGradeCard = ko.validatedObservable(settings.StopGradeCard);\r\n this.StopStatement = ko.validatedObservable(settings.StopStatement);\r\n this.AllowAppeal = ko.validatedObservable(settings.AllowAppeal);\r\n this.CSSClassName = ko.validatedObservable(settings.CSSClassName);\r\n this.Occurrence = ko.validatedObservable(settings.Occurrence);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.HoldTypeID = ko.validatedObservable(settings.HoldTypeID);\r\n this.StandingTypeID = ko.validatedObservable(settings.StandingTypeID);\r\n this.AcademicAchievementTypeID = ko.validatedObservable(settings.AcademicAchievementTypeID);\r\n this.SAPScopeID = ko.validatedObservable(settings.SAPScopeID);\r\n this.Frequency = ko.validatedObservable(settings.Frequency);\r\n this.GradeEffectTypeID = ko.validatedObservable(settings.GradeEffectTypeID);\r\n this.RepeatPolicyID = ko.validatedObservable(settings.RepeatPolicyID);\r\n this.EvaluationMonth = ko.validatedObservable(settings.EvaluationMonth);\r\n this.EvaluationDayOfMonth = ko.validatedObservable(settings.EvaluationDayOfMonth);\r\n this.RemedialCourses = ko.validatedObservable(settings.RemedialCourses);\r\n this.MaxResetCount = ko.validatedObservable(settings.MaxResetCount);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.HoldType = ko.observable();\r\n this.StandingType = ko.observable();\r\n this.AchievementType = ko.observable();\r\n this.NextSteps = ko.observableArray([]);\r\n this.QualifierBlocks = ko.observableArray([]);\r\n this.SAPScope = ko.observable();\r\n this.GradeEffectType = ko.observable();\r\n this.RepeatPolicy = ko.observable();\r\n this.EvaluationPeriodTypes = 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.ClassType != undefined) {\r\n loaded.ClassType(responseData.ClassType);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.StopRegistration != undefined) {\r\n loaded.StopRegistration(responseData.StopRegistration);\r\n }\r\n if (responseData.StopOnlineRegistration != undefined) {\r\n loaded.StopOnlineRegistration(responseData.StopOnlineRegistration);\r\n }\r\n if (responseData.StopTranscript != undefined) {\r\n loaded.StopTranscript(responseData.StopTranscript);\r\n }\r\n if (responseData.StopGradeCard != undefined) {\r\n loaded.StopGradeCard(responseData.StopGradeCard);\r\n }\r\n if (responseData.StopStatement != undefined) {\r\n loaded.StopStatement(responseData.StopStatement);\r\n }\r\n if (responseData.AllowAppeal != undefined) {\r\n loaded.AllowAppeal(responseData.AllowAppeal);\r\n }\r\n if (responseData.CSSClassName != undefined) {\r\n loaded.CSSClassName(responseData.CSSClassName);\r\n }\r\n if (responseData.Occurrence != undefined) {\r\n loaded.Occurrence(responseData.Occurrence);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.HoldTypeID != undefined) {\r\n loaded.HoldTypeID(responseData.HoldTypeID);\r\n }\r\n if (responseData.StandingTypeID != undefined) {\r\n loaded.StandingTypeID(responseData.StandingTypeID);\r\n }\r\n if (responseData.AcademicAchievementTypeID != undefined) {\r\n loaded.AcademicAchievementTypeID(responseData.AcademicAchievementTypeID);\r\n }\r\n if (responseData.SAPScopeID != undefined) {\r\n loaded.SAPScopeID(responseData.SAPScopeID);\r\n }\r\n if (responseData.Frequency != undefined) {\r\n loaded.Frequency(responseData.Frequency);\r\n }\r\n if (responseData.GradeEffectTypeID != undefined) {\r\n loaded.GradeEffectTypeID(responseData.GradeEffectTypeID);\r\n }\r\n if (responseData.RepeatPolicyID != undefined) {\r\n loaded.RepeatPolicyID(responseData.RepeatPolicyID);\r\n }\r\n if (responseData.EvaluationMonth != undefined) {\r\n loaded.EvaluationMonth(responseData.EvaluationMonth);\r\n }\r\n if (responseData.EvaluationDayOfMonth != undefined) {\r\n loaded.EvaluationDayOfMonth(responseData.EvaluationDayOfMonth);\r\n }\r\n if (responseData.RemedialCourses != undefined) {\r\n loaded.RemedialCourses(responseData.RemedialCourses);\r\n }\r\n if (responseData.MaxResetCount != undefined) {\r\n loaded.MaxResetCount(responseData.MaxResetCount);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.HoldType != null) {\r\n loaded.HoldType(new smapi.community.HoldCategoryModel().LoadFromResponse(responseData.HoldType));\r\n }\r\n if (responseData.StandingType != null) {\r\n loaded.StandingType(new smapi.academic.AcademicProgressStandingTypeModel().LoadFromResponse(responseData.StandingType));\r\n }\r\n if (responseData.AchievementType != null) {\r\n loaded.AchievementType(new smapi.academic.AcademicAwardTypeModel().LoadFromResponse(responseData.AchievementType));\r\n }\r\n if (responseData.NextSteps != null && responseData.NextSteps.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.NextSteps.length; i++) {\r\n items.push(new smapi.academic.AcademicProgressStatusFlowModel().LoadFromResponse(responseData.NextSteps[i]));\r\n }\r\n loaded.NextSteps(items);\r\n }\r\n if (responseData.QualifierBlocks != null && responseData.QualifierBlocks.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.QualifierBlocks.length; i++) {\r\n items.push(new smapi.academic.AcademicProgressStatusBlockModel().LoadFromResponse(responseData.QualifierBlocks[i]));\r\n }\r\n loaded.QualifierBlocks(items);\r\n }\r\n if (responseData.SAPScope != null) {\r\n loaded.SAPScope(new smapi.academic.SAPConfigurationScopeModel().LoadFromResponse(responseData.SAPScope));\r\n }\r\n if (responseData.GradeEffectType != null) {\r\n loaded.GradeEffectType(new smapi.academic.GradeEffectTypeModel().LoadFromResponse(responseData.GradeEffectType));\r\n }\r\n if (responseData.RepeatPolicy != null) {\r\n loaded.RepeatPolicy(new smapi.academic.RepeatPolicyModel().LoadFromResponse(responseData.RepeatPolicy));\r\n }\r\n if (responseData.EvaluationPeriodTypes != null && responseData.EvaluationPeriodTypes.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.EvaluationPeriodTypes.length; i++) {\r\n items.push(new smapi.academic.AcademicPeriodTypeModel().LoadFromResponse(responseData.EvaluationPeriodTypes[i]));\r\n }\r\n loaded.EvaluationPeriodTypes(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.Academic.Entity.AcademicProgressStatus', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.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.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.CSSClassName.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.Occurrence.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.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.HoldTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.StandingTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AcademicAchievementTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SAPScopeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Frequency.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.GradeEffectTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_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.EvaluationMonth.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.EvaluationDayOfMonth.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.MaxResetCount.extend({\r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AcademicProgressStatusFlowModel(options) {\r\n var defaults = {\r\n StartingStatusID: null,\r\n NextStatusID: null,\r\n EvaluationWorkflowID: null,\r\n SortOrder: 0,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.StartingStatusID = ko.validatedObservable(settings.StartingStatusID);\r\n this.NextStatusID = ko.validatedObservable(settings.NextStatusID);\r\n this.EvaluationWorkflowID = ko.validatedObservable(settings.EvaluationWorkflowID);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.StartingStatus = ko.observable();\r\n this.NextStatus = ko.observable();\r\n this.EvaluationWorkflow = 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.StartingStatusID != undefined) {\r\n loaded.StartingStatusID(responseData.StartingStatusID);\r\n }\r\n if (responseData.NextStatusID != undefined) {\r\n loaded.NextStatusID(responseData.NextStatusID);\r\n }\r\n if (responseData.EvaluationWorkflowID != undefined) {\r\n loaded.EvaluationWorkflowID(responseData.EvaluationWorkflowID);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.StartingStatus != null) {\r\n loaded.StartingStatus(new smapi.academic.AcademicProgressStatusModel().LoadFromResponse(responseData.StartingStatus));\r\n }\r\n if (responseData.NextStatus != null) {\r\n loaded.NextStatus(new smapi.academic.AcademicProgressStatusModel().LoadFromResponse(responseData.NextStatus));\r\n }\r\n if (responseData.EvaluationWorkflow != null) {\r\n loaded.EvaluationWorkflow(new smapi.entities.TRSRuleSetModel().LoadFromResponse(responseData.EvaluationWorkflow));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.AcademicProgressStatusFlow', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.StartingStatusID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.NextStatusID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EvaluationWorkflowID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortOrder.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 AcademicProgressStatusAppealModel(options) {\r\n var defaults = {\r\n AcademicProgressAlertID: 0,\r\n AppealReasonID: 0,\r\n SpecialCircumstances: '',\r\n AppealEvalCommSent: false,\r\n GrantedStatusID: 0,\r\n GrantedByID: null,\r\n AcademicPlanID: 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.AcademicProgressAlertID = ko.validatedObservable(settings.AcademicProgressAlertID);\r\n this.AppealReasonID = ko.validatedObservable(settings.AppealReasonID);\r\n this.SpecialCircumstances = ko.validatedObservable(settings.SpecialCircumstances);\r\n this.AppealEvalCommSent = ko.validatedObservable(settings.AppealEvalCommSent);\r\n this.GrantedStatusID = ko.validatedObservable(settings.GrantedStatusID);\r\n this.GrantedByID = ko.validatedObservable(settings.GrantedByID);\r\n this.AcademicPlanID = ko.validatedObservable(settings.AcademicPlanID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AcademicProgressAlert = ko.observable();\r\n this.AppealReason = ko.observable();\r\n this.GrantedStatus = ko.observable();\r\n this.GrantedBy = ko.observable();\r\n this.AcademicPlan = 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.AcademicProgressAlertID != undefined) {\r\n loaded.AcademicProgressAlertID(responseData.AcademicProgressAlertID);\r\n }\r\n if (responseData.AppealReasonID != undefined) {\r\n loaded.AppealReasonID(responseData.AppealReasonID);\r\n }\r\n if (responseData.SpecialCircumstances != undefined) {\r\n loaded.SpecialCircumstances(responseData.SpecialCircumstances);\r\n }\r\n if (responseData.AppealEvalCommSent != undefined) {\r\n loaded.AppealEvalCommSent(responseData.AppealEvalCommSent);\r\n }\r\n if (responseData.GrantedStatusID != undefined) {\r\n loaded.GrantedStatusID(responseData.GrantedStatusID);\r\n }\r\n if (responseData.GrantedByID != undefined) {\r\n loaded.GrantedByID(responseData.GrantedByID);\r\n }\r\n if (responseData.AcademicPlanID != undefined) {\r\n loaded.AcademicPlanID(responseData.AcademicPlanID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AcademicProgressAlert != null) {\r\n loaded.AcademicProgressAlert(new smapi.academic.AcademicProgressAlertModel().LoadFromResponse(responseData.AcademicProgressAlert));\r\n }\r\n if (responseData.AppealReason != null) {\r\n loaded.AppealReason(new smapi.academic.AcademicStatusAppealReasonModel().LoadFromResponse(responseData.AppealReason));\r\n }\r\n if (responseData.GrantedStatus != null) {\r\n loaded.GrantedStatus(new smapi.academic.AcademicProgressStatusModel().LoadFromResponse(responseData.GrantedStatus));\r\n }\r\n if (responseData.GrantedBy != null) {\r\n loaded.GrantedBy(new smapi.entities.UserModel().LoadFromResponse(responseData.GrantedBy));\r\n }\r\n if (responseData.AcademicPlan != null) {\r\n loaded.AcademicPlan(new smapi.academic.AcademicPlanModel().LoadFromResponse(responseData.AcademicPlan));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.AcademicProgressStatusAppeal', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.AcademicProgressAlertID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AppealReasonID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GrantedStatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GrantedByID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AcademicPlanID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 AcademicProgressAlertModel(options) {\r\n var defaults = {\r\n StudentID: 0,\r\n AlertStatusID: null,\r\n AppealID: null,\r\n AcademicPlanID: null,\r\n ResolvedSetByID: 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.StudentID = ko.validatedObservable(settings.StudentID);\r\n this.AlertStatusID = ko.validatedObservable(settings.AlertStatusID);\r\n this.AppealID = ko.validatedObservable(settings.AppealID);\r\n this.AcademicPlanID = ko.validatedObservable(settings.AcademicPlanID);\r\n this.ResolvedSetByID = ko.validatedObservable(settings.ResolvedSetByID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Student = ko.observable();\r\n this.AlertStatus = ko.observable();\r\n this.Appeal = ko.observableArray([]);\r\n this.AcademicPlan = ko.observable();\r\n this.ResolvedSetBy = 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.StudentID != undefined) {\r\n loaded.StudentID(responseData.StudentID);\r\n }\r\n if (responseData.AlertStatusID != undefined) {\r\n loaded.AlertStatusID(responseData.AlertStatusID);\r\n }\r\n if (responseData.AppealID != undefined) {\r\n loaded.AppealID(responseData.AppealID);\r\n }\r\n if (responseData.AcademicPlanID != undefined) {\r\n loaded.AcademicPlanID(responseData.AcademicPlanID);\r\n }\r\n if (responseData.ResolvedSetByID != undefined) {\r\n loaded.ResolvedSetByID(responseData.ResolvedSetByID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Student != null) {\r\n loaded.Student(new smapi.academic.StudentModel().LoadFromResponse(responseData.Student));\r\n }\r\n if (responseData.AlertStatus != null) {\r\n loaded.AlertStatus(new smapi.academic.AcademicProgressStatusModel().LoadFromResponse(responseData.AlertStatus));\r\n }\r\n if (responseData.Appeal != null && responseData.Appeal.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Appeal.length; i++) {\r\n items.push(new smapi.academic.AcademicProgressStatusAppealModel().LoadFromResponse(responseData.Appeal[i]));\r\n }\r\n loaded.Appeal(items);\r\n }\r\n if (responseData.AcademicPlan != null) {\r\n loaded.AcademicPlan(new smapi.academic.AcademicPlanModel().LoadFromResponse(responseData.AcademicPlan));\r\n }\r\n if (responseData.ResolvedSetBy != null) {\r\n loaded.ResolvedSetBy(new smapi.entities.UserModel().LoadFromResponse(responseData.ResolvedSetBy));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.AcademicProgressAlert', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.StudentID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AlertStatusID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AppealID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AcademicPlanID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ResolvedSetByID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 CourseUnitTypeModel(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.Academic.Entity.CourseUnitType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 CourseUnitMeasureModel(options) {\r\n var defaults = {\r\n UnitValue: 0,\r\n EffectiveFromDate: null,\r\n EffectiveToDate: null,\r\n CourseUnitTypeID: null,\r\n CourseMasterID: 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.UnitValue = ko.validatedObservable(settings.UnitValue);\r\n this.EffectiveFromDate = ko.validatedObservable(settings.EffectiveFromDate);\r\n this.EffectiveToDate = ko.validatedObservable(settings.EffectiveToDate);\r\n this.CourseUnitTypeID = ko.validatedObservable(settings.CourseUnitTypeID);\r\n this.CourseMasterID = ko.validatedObservable(settings.CourseMasterID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.CourseMaster = ko.observable();\r\n this.UnitType = 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.UnitValue != undefined) {\r\n loaded.UnitValue(responseData.UnitValue);\r\n }\r\n if (responseData.EffectiveFromDate != undefined) {\r\n loaded.EffectiveFromDate(responseData.EffectiveFromDate);\r\n }\r\n if (responseData.EffectiveToDate != undefined) {\r\n loaded.EffectiveToDate(responseData.EffectiveToDate);\r\n }\r\n if (responseData.CourseUnitTypeID != undefined) {\r\n loaded.CourseUnitTypeID(responseData.CourseUnitTypeID);\r\n }\r\n if (responseData.CourseMasterID != undefined) {\r\n loaded.CourseMasterID(responseData.CourseMasterID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\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.UnitType != null) {\r\n loaded.UnitType(new smapi.academic.CourseUnitTypeModel().LoadFromResponse(responseData.UnitType));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.CourseUnitMeasure', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.UnitValue.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.EffectiveFromDate.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.EffectiveToDate.extend({\r\n date: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.CourseUnitTypeID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CourseMasterID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 LanguageOfInstructionModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.LanguageOfInstruction', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 QualificationModeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.QualificationMode', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 EnrollmentGroupModel(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.Academic.Entity.EnrollmentGroup', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 ActivityStatusModel(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.Academic.Entity.ActivityStatus', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 StudentActivityGroupModel(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.Academic.Entity.StudentActivityGroup', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 ActivityCompetencyModel(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.Academic.Entity.ActivityCompetency', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 ActivityPositionModel(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.Academic.Entity.ActivityPosition', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 SkillModel(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.Academic.Entity.Skill', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 ActivityCompensationModel(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.Academic.Entity.ActivityCompensation', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 StudentActivityTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n StudentActivityGroupID: 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.StudentActivityGroupID = ko.validatedObservable(settings.StudentActivityGroupID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.StudentActivityGroup = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.StudentActivityGroupID != undefined) {\r\n loaded.StudentActivityGroupID(responseData.StudentActivityGroupID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.StudentActivityGroup != null) {\r\n loaded.StudentActivityGroup(new smapi.academic.StudentActivityGroupModel().LoadFromResponse(responseData.StudentActivityGroup));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.StudentActivityType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.StudentActivityGroupID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 AcceptableRecordModel(options) {\r\n var defaults = {\r\n RecordGID: null,\r\n NonCourseRequisiteID: 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.RecordGID = ko.validatedObservable(settings.RecordGID);\r\n this.NonCourseRequisiteID = ko.validatedObservable(settings.NonCourseRequisiteID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.NonCourseRequisite = 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.RecordGID != undefined) {\r\n loaded.RecordGID(responseData.RecordGID);\r\n }\r\n if (responseData.NonCourseRequisiteID != undefined) {\r\n loaded.NonCourseRequisiteID(responseData.NonCourseRequisiteID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.NonCourseRequisite != null) {\r\n loaded.NonCourseRequisite(new smapi.academic.NonCourseRequisiteModel().LoadFromResponse(responseData.NonCourseRequisite));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.AcceptableRecord', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.RecordGID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: 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.NonCourseRequisiteID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 NonCourseRequisiteTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n SelectorView: '',\r\n RuleSetID: null,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.SelectorView = ko.validatedObservable(settings.SelectorView);\r\n this.RuleSetID = ko.validatedObservable(settings.RuleSetID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.RuleSet = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.SelectorView != undefined) {\r\n loaded.SelectorView(responseData.SelectorView);\r\n }\r\n if (responseData.RuleSetID != undefined) {\r\n loaded.RuleSetID(responseData.RuleSetID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.RuleSet != null) {\r\n loaded.RuleSet(new smapi.entities.TRSRuleSetModel().LoadFromResponse(responseData.RuleSet));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.NonCourseRequisiteType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.SelectorView.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.RuleSetID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 NonCourseRequisiteModel(options) {\r\n var defaults = {\r\n GreaterThanValue: 0,\r\n LessThanValue: 0,\r\n EqualToValue: 0,\r\n NonCourseRequisiteTypeID: 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.GreaterThanValue = ko.validatedObservable(settings.GreaterThanValue);\r\n this.LessThanValue = ko.validatedObservable(settings.LessThanValue);\r\n this.EqualToValue = ko.validatedObservable(settings.EqualToValue);\r\n this.NonCourseRequisiteTypeID = ko.validatedObservable(settings.NonCourseRequisiteTypeID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.NonCourseRequisiteType = ko.observable();\r\n this.AcceptableRecords = 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.GreaterThanValue != undefined) {\r\n loaded.GreaterThanValue(responseData.GreaterThanValue);\r\n }\r\n if (responseData.LessThanValue != undefined) {\r\n loaded.LessThanValue(responseData.LessThanValue);\r\n }\r\n if (responseData.EqualToValue != undefined) {\r\n loaded.EqualToValue(responseData.EqualToValue);\r\n }\r\n if (responseData.NonCourseRequisiteTypeID != undefined) {\r\n loaded.NonCourseRequisiteTypeID(responseData.NonCourseRequisiteTypeID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.NonCourseRequisiteType != null) {\r\n loaded.NonCourseRequisiteType(new smapi.academic.NonCourseRequisiteTypeModel().LoadFromResponse(responseData.NonCourseRequisiteType));\r\n }\r\n if (responseData.AcceptableRecords != null && responseData.AcceptableRecords.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.AcceptableRecords.length; i++) {\r\n items.push(new smapi.academic.AcceptableRecordModel().LoadFromResponse(responseData.AcceptableRecords[i]));\r\n }\r\n loaded.AcceptableRecords(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.Academic.Entity.NonCourseRequisite', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.GreaterThanValue.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.LessThanValue.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.EqualToValue.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.NonCourseRequisiteTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 CourseRequisiteTypeModel(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.Academic.Entity.CourseRequisiteType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.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 CourseRequisiteQualifierRuleTypeModel(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.Academic.Entity.CourseRequisiteQualifierRuleType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.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 CourseRequisiteCourseModel(options) {\r\n var defaults = {\r\n CourseMasterID: 0,\r\n CourseRequisiteID: 0,\r\n IsRequired: false,\r\n AllowTransfer: false,\r\n AllowEquivalence: 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.CourseMasterID = ko.validatedObservable(settings.CourseMasterID);\r\n this.CourseRequisiteID = ko.validatedObservable(settings.CourseRequisiteID);\r\n this.IsRequired = ko.validatedObservable(settings.IsRequired);\r\n this.AllowTransfer = ko.validatedObservable(settings.AllowTransfer);\r\n this.AllowEquivalence = ko.validatedObservable(settings.AllowEquivalence);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.CourseMaster = ko.observable();\r\n this.CourseRequisite = 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.CourseMasterID != undefined) {\r\n loaded.CourseMasterID(responseData.CourseMasterID);\r\n }\r\n if (responseData.CourseRequisiteID != undefined) {\r\n loaded.CourseRequisiteID(responseData.CourseRequisiteID);\r\n }\r\n if (responseData.IsRequired != undefined) {\r\n loaded.IsRequired(responseData.IsRequired);\r\n }\r\n if (responseData.AllowTransfer != undefined) {\r\n loaded.AllowTransfer(responseData.AllowTransfer);\r\n }\r\n if (responseData.AllowEquivalence != undefined) {\r\n loaded.AllowEquivalence(responseData.AllowEquivalence);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\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.CourseRequisite != null) {\r\n loaded.CourseRequisite(new smapi.academic.CourseRequisiteModel().LoadFromResponse(responseData.CourseRequisite));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.CourseRequisiteCourse', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.CourseMasterID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CourseRequisiteID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 CourseRequisiteQualifierRuleModel(options) {\r\n var defaults = {\r\n CourseRequisiteQualifierRuleTypeID: 0,\r\n CourseRequisiteQualifierBlockID: 0,\r\n UnitOfMeasureID: null,\r\n AcademicDepartmentID: null,\r\n AcademicSubjectAreaID: null,\r\n IntValue1: 0,\r\n IntValue2: 0,\r\n DoubleValue1: 0,\r\n DoubleValue2: 0,\r\n SortOrder: 0,\r\n ComparisonOperator: null,\r\n CourseMasterID: 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.CourseRequisiteQualifierRuleTypeID = ko.validatedObservable(settings.CourseRequisiteQualifierRuleTypeID);\r\n this.CourseRequisiteQualifierBlockID = ko.validatedObservable(settings.CourseRequisiteQualifierBlockID);\r\n this.UnitOfMeasureID = ko.validatedObservable(settings.UnitOfMeasureID);\r\n this.AcademicDepartmentID = ko.validatedObservable(settings.AcademicDepartmentID);\r\n this.AcademicSubjectAreaID = ko.validatedObservable(settings.AcademicSubjectAreaID);\r\n this.IntValue1 = ko.validatedObservable(settings.IntValue1);\r\n this.IntValue2 = ko.validatedObservable(settings.IntValue2);\r\n this.DoubleValue1 = ko.validatedObservable(settings.DoubleValue1);\r\n this.DoubleValue2 = ko.validatedObservable(settings.DoubleValue2);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.ComparisonOperator = ko.validatedObservable(settings.ComparisonOperator);\r\n this.CourseMasterID = ko.validatedObservable(settings.CourseMasterID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.RuleType = ko.observable();\r\n this.QualifierBlock = ko.observable();\r\n this.UnitOfMeasure = ko.observable();\r\n this.AcademicDepartment = ko.observable();\r\n this.AcademicSubjectArea = ko.observable();\r\n this.CourseMaster = 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.CourseRequisiteQualifierRuleTypeID != undefined) {\r\n loaded.CourseRequisiteQualifierRuleTypeID(responseData.CourseRequisiteQualifierRuleTypeID);\r\n }\r\n if (responseData.CourseRequisiteQualifierBlockID != undefined) {\r\n loaded.CourseRequisiteQualifierBlockID(responseData.CourseRequisiteQualifierBlockID);\r\n }\r\n if (responseData.UnitOfMeasureID != undefined) {\r\n loaded.UnitOfMeasureID(responseData.UnitOfMeasureID);\r\n }\r\n if (responseData.AcademicDepartmentID != undefined) {\r\n loaded.AcademicDepartmentID(responseData.AcademicDepartmentID);\r\n }\r\n if (responseData.AcademicSubjectAreaID != undefined) {\r\n loaded.AcademicSubjectAreaID(responseData.AcademicSubjectAreaID);\r\n }\r\n if (responseData.IntValue1 != undefined) {\r\n loaded.IntValue1(responseData.IntValue1);\r\n }\r\n if (responseData.IntValue2 != undefined) {\r\n loaded.IntValue2(responseData.IntValue2);\r\n }\r\n if (responseData.DoubleValue1 != undefined) {\r\n loaded.DoubleValue1(responseData.DoubleValue1);\r\n }\r\n if (responseData.DoubleValue2 != undefined) {\r\n loaded.DoubleValue2(responseData.DoubleValue2);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.ComparisonOperator != undefined) {\r\n loaded.ComparisonOperator(responseData.ComparisonOperator);\r\n }\r\n if (responseData.CourseMasterID != undefined) {\r\n loaded.CourseMasterID(responseData.CourseMasterID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.RuleType != null) {\r\n loaded.RuleType(new smapi.academic.CourseRequisiteQualifierRuleTypeModel().LoadFromResponse(responseData.RuleType));\r\n }\r\n if (responseData.QualifierBlock != null) {\r\n loaded.QualifierBlock(new smapi.academic.CourseRequisiteQualifierBlockModel().LoadFromResponse(responseData.QualifierBlock));\r\n }\r\n if (responseData.UnitOfMeasure != null) {\r\n loaded.UnitOfMeasure(new smapi.academic.CourseUnitModel().LoadFromResponse(responseData.UnitOfMeasure));\r\n }\r\n if (responseData.AcademicDepartment != null) {\r\n loaded.AcademicDepartment(new smapi.academic.AcademicDepartmentModel().LoadFromResponse(responseData.AcademicDepartment));\r\n }\r\n if (responseData.AcademicSubjectArea != null) {\r\n loaded.AcademicSubjectArea(new smapi.academic.AcademicSubjectAreaModel().LoadFromResponse(responseData.AcademicSubjectArea));\r\n }\r\n if (responseData.CourseMaster != null) {\r\n loaded.CourseMaster(new smapi.academic.CourseMasterModel().LoadFromResponse(responseData.CourseMaster));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.CourseRequisiteQualifierRule', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.CourseRequisiteQualifierRuleTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.CourseRequisiteQualifierBlockID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.UnitOfMeasureID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AcademicDepartmentID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AcademicSubjectAreaID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.IntValue1.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.IntValue2.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DoubleValue1.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.DoubleValue2.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.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.ComparisonOperator.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\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.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function CourseRequisiteQualifierBlockModel(options) {\r\n var defaults = {\r\n CourseRequisiteID: 0,\r\n SortOrder: 0,\r\n Operator: null,\r\n OuterOperator: 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.CourseRequisiteID = ko.validatedObservable(settings.CourseRequisiteID);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.Operator = ko.validatedObservable(settings.Operator);\r\n this.OuterOperator = ko.validatedObservable(settings.OuterOperator);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.CourseRequisite = ko.observable();\r\n this.Rules = 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.CourseRequisiteID != undefined) {\r\n loaded.CourseRequisiteID(responseData.CourseRequisiteID);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.Operator != undefined) {\r\n loaded.Operator(responseData.Operator);\r\n }\r\n if (responseData.OuterOperator != undefined) {\r\n loaded.OuterOperator(responseData.OuterOperator);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.CourseRequisite != null) {\r\n loaded.CourseRequisite(new smapi.academic.CourseRequisiteModel().LoadFromResponse(responseData.CourseRequisite));\r\n }\r\n if (responseData.Rules != null && responseData.Rules.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Rules.length; i++) {\r\n items.push(new smapi.academic.CourseRequisiteQualifierRuleModel().LoadFromResponse(responseData.Rules[i]));\r\n }\r\n loaded.Rules(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.Academic.Entity.CourseRequisiteQualifierBlock', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.CourseRequisiteID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Operator.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.OuterOperator.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 CourseRequisiteModel(options) {\r\n var defaults = {\r\n CourseRequisiteTypeID: 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.CourseRequisiteTypeID = ko.validatedObservable(settings.CourseRequisiteTypeID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.Type = ko.observable();\r\n this.Courses = ko.observableArray([]);\r\n this.QualfierBlocks = 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.CourseRequisiteTypeID != undefined) {\r\n loaded.CourseRequisiteTypeID(responseData.CourseRequisiteTypeID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.Type != null) {\r\n loaded.Type(new smapi.academic.CourseRequisiteTypeModel().LoadFromResponse(responseData.Type));\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.academic.CourseRequisiteCourseModel().LoadFromResponse(responseData.Courses[i]));\r\n }\r\n loaded.Courses(items);\r\n }\r\n if (responseData.QualfierBlocks != null && responseData.QualfierBlocks.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.QualfierBlocks.length; i++) {\r\n items.push(new smapi.academic.CourseRequisiteQualifierBlockModel().LoadFromResponse(responseData.QualfierBlocks[i]));\r\n }\r\n loaded.QualfierBlocks(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.Academic.Entity.CourseRequisite', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.CourseRequisiteTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 ResitOptionModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n SystemProtected: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.ResitOption', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.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 ResitPolicyModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n SystemProtected: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.ResitPolicy', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.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 ComponentActivityModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n SystemProtected: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.ComponentActivity', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.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 ComponentAssessmentTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n SystemProtected: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.ComponentAssessmentType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.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 AssessmentCategoryTypeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n SystemProtected: false,\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.SystemProtected = ko.validatedObservable(settings.SystemProtected);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.SystemProtected != undefined) {\r\n loaded.SystemProtected(responseData.SystemProtected);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.AssessmentCategoryType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.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 LearningOutcomeModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n SortOrder: 0,\r\n BusinessMeaningName: '',\r\n ID: 0,\r\n GID: null,\r\n CreatedBy: null,\r\n DateCreated: null,\r\n ModifiedBy: null,\r\n DateModified: null,\r\n APILink: '',\r\n };\r\n \r\n var settings = jQuery.extend({}, defaults, options);\r\n \r\n // Self-Identification\r\n var self = this;\r\n \r\n // ATO Properties\r\n this.APILink = ko.observable(settings.APILink);\r\n \r\n // Properties as Observables\r\n this.Name = ko.validatedObservable(settings.Name);\r\n this.Description = ko.validatedObservable(settings.Description);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.BusinessMeaningName = ko.validatedObservable(settings.BusinessMeaningName);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.LearningOutcome', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.Name.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 50,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '50')\r\n }\r\n });\r\n this.Description.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n maxLength: {\r\n params: 255,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '255')\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -2147483648,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 2147483647,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\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 AcademicProgressStatusRuleTypeModel(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.Academic.Entity.AcademicProgressStatusRuleType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.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 AcademicProgressStatusRuleModel(options) {\r\n var defaults = {\r\n AcademicProgressStatusRuleTypeID: 0,\r\n AcademicProgressStatusBlockID: 0,\r\n IntValue1: 0,\r\n IntValue2: 0,\r\n DoubleValue1: 0,\r\n DoubleValue2: 0,\r\n SortOrder: 0,\r\n ComparisonOperator: null,\r\n EducationalGoalID: 0,\r\n AcademicLevelID: 0,\r\n AcademicProgramID: 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.AcademicProgressStatusRuleTypeID = ko.validatedObservable(settings.AcademicProgressStatusRuleTypeID);\r\n this.AcademicProgressStatusBlockID = ko.validatedObservable(settings.AcademicProgressStatusBlockID);\r\n this.IntValue1 = ko.validatedObservable(settings.IntValue1);\r\n this.IntValue2 = ko.validatedObservable(settings.IntValue2);\r\n this.DoubleValue1 = ko.validatedObservable(settings.DoubleValue1);\r\n this.DoubleValue2 = ko.validatedObservable(settings.DoubleValue2);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.ComparisonOperator = ko.validatedObservable(settings.ComparisonOperator);\r\n this.EducationalGoalID = ko.validatedObservable(settings.EducationalGoalID);\r\n this.AcademicLevelID = ko.validatedObservable(settings.AcademicLevelID);\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.RuleType = ko.observable();\r\n this.AcademicProgressStatusBlock = ko.observable();\r\n this.EducationalGoal = ko.observable();\r\n this.AcademicLevel = ko.observable();\r\n this.AcademicProgram = 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.AcademicProgressStatusRuleTypeID != undefined) {\r\n loaded.AcademicProgressStatusRuleTypeID(responseData.AcademicProgressStatusRuleTypeID);\r\n }\r\n if (responseData.AcademicProgressStatusBlockID != undefined) {\r\n loaded.AcademicProgressStatusBlockID(responseData.AcademicProgressStatusBlockID);\r\n }\r\n if (responseData.IntValue1 != undefined) {\r\n loaded.IntValue1(responseData.IntValue1);\r\n }\r\n if (responseData.IntValue2 != undefined) {\r\n loaded.IntValue2(responseData.IntValue2);\r\n }\r\n if (responseData.DoubleValue1 != undefined) {\r\n loaded.DoubleValue1(responseData.DoubleValue1);\r\n }\r\n if (responseData.DoubleValue2 != undefined) {\r\n loaded.DoubleValue2(responseData.DoubleValue2);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.ComparisonOperator != undefined) {\r\n loaded.ComparisonOperator(responseData.ComparisonOperator);\r\n }\r\n if (responseData.EducationalGoalID != undefined) {\r\n loaded.EducationalGoalID(responseData.EducationalGoalID);\r\n }\r\n if (responseData.AcademicLevelID != undefined) {\r\n loaded.AcademicLevelID(responseData.AcademicLevelID);\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.RuleType != null) {\r\n loaded.RuleType(new smapi.academic.AcademicProgressStatusRuleTypeModel().LoadFromResponse(responseData.RuleType));\r\n }\r\n if (responseData.AcademicProgressStatusBlock != null) {\r\n loaded.AcademicProgressStatusBlock(new smapi.academic.AcademicProgressStatusBlockModel().LoadFromResponse(responseData.AcademicProgressStatusBlock));\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.AcademicLevel != null) {\r\n loaded.AcademicLevel(new smapi.academic.AcademicLevelModel().LoadFromResponse(responseData.AcademicLevel));\r\n }\r\n if (responseData.AcademicProgram != null) {\r\n loaded.AcademicProgram(new smapi.academic.AcademicProgramModel().LoadFromResponse(responseData.AcademicProgram));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.AcademicProgressStatusRule', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.AcademicProgressStatusRuleTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.AcademicProgressStatusBlockID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.IntValue1.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.IntValue2.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.DoubleValue1.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.DoubleValue2.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.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.ComparisonOperator.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_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.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.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.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function AcademicProgressStatusBlockModel(options) {\r\n var defaults = {\r\n AcademicProgressStatusID: 0,\r\n SortOrder: 0,\r\n Operator: null,\r\n OuterOperator: 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.AcademicProgressStatusID = ko.validatedObservable(settings.AcademicProgressStatusID);\r\n this.SortOrder = ko.validatedObservable(settings.SortOrder);\r\n this.Operator = ko.validatedObservable(settings.Operator);\r\n this.OuterOperator = ko.validatedObservable(settings.OuterOperator);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.AcademicProgressStatus = ko.observable();\r\n this.Rules = 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.AcademicProgressStatusID != undefined) {\r\n loaded.AcademicProgressStatusID(responseData.AcademicProgressStatusID);\r\n }\r\n if (responseData.SortOrder != undefined) {\r\n loaded.SortOrder(responseData.SortOrder);\r\n }\r\n if (responseData.Operator != undefined) {\r\n loaded.Operator(responseData.Operator);\r\n }\r\n if (responseData.OuterOperator != undefined) {\r\n loaded.OuterOperator(responseData.OuterOperator);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.AcademicProgressStatus != null) {\r\n loaded.AcademicProgressStatus(new smapi.academic.AcademicProgressStatusModel().LoadFromResponse(responseData.AcademicProgressStatus));\r\n }\r\n if (responseData.Rules != null && responseData.Rules.length > 0) {\r\n var items = new Array();\r\n for (var i=0; i < responseData.Rules.length; i++) {\r\n items.push(new smapi.academic.AcademicProgressStatusRuleModel().LoadFromResponse(responseData.Rules[i]));\r\n }\r\n loaded.Rules(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.Academic.Entity.AcademicProgressStatusBlock', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"No Content\") {\r\n // Execute the Loader\r\n self.LoadFromResponse(container.Payload);\r\n } \r\n });\r\n }\r\n \r\n this.AcademicProgressStatusID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.SortOrder.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Operator.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n this.OuterOperator.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 StudentGroupTypeModel(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.Academic.Entity.StudentGroupType', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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 StudentGroupModel(options) {\r\n var defaults = {\r\n Name: '',\r\n Description: '',\r\n BusinessMeaningName: '',\r\n StudentGroupTypeID: 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.StudentGroupTypeID = ko.validatedObservable(settings.StudentGroupTypeID);\r\n this.ID = ko.validatedObservable(settings.ID);\r\n this.GID = ko.validatedObservable(settings.GID);\r\n this.CreatedBy = ko.validatedObservable(settings.CreatedBy);\r\n this.DateCreated = ko.validatedObservable(settings.DateCreated);\r\n this.ModifiedBy = ko.validatedObservable(settings.ModifiedBy);\r\n this.DateModified = ko.validatedObservable(settings.DateModified);\r\n \r\n // Relationships as Observables and ObservableArrays\r\n this.StudentGroupType = ko.observable();\r\n \r\n // Load from API Response Models\r\n this.LoadFromResponse = function (responseData) {\r\n var loaded = this;\r\n \r\n if (responseData.APILink != undefined)\r\n {\r\n loaded.APILink(responseData.APILink);\r\n }\r\n \r\n if (responseData.Name != undefined) {\r\n loaded.Name(responseData.Name);\r\n }\r\n if (responseData.Description != undefined) {\r\n loaded.Description(responseData.Description);\r\n }\r\n if (responseData.BusinessMeaningName != undefined) {\r\n loaded.BusinessMeaningName(responseData.BusinessMeaningName);\r\n }\r\n if (responseData.StudentGroupTypeID != undefined) {\r\n loaded.StudentGroupTypeID(responseData.StudentGroupTypeID);\r\n }\r\n if (responseData.ID != undefined) {\r\n loaded.ID(responseData.ID);\r\n }\r\n if (responseData.GID != undefined) {\r\n loaded.GID(responseData.GID);\r\n }\r\n if (responseData.CreatedBy != undefined) {\r\n loaded.CreatedBy(responseData.CreatedBy);\r\n }\r\n if (responseData.DateCreated != undefined) {\r\n loaded.DateCreated(responseData.DateCreated);\r\n }\r\n if (responseData.ModifiedBy != undefined) {\r\n loaded.ModifiedBy(responseData.ModifiedBy);\r\n }\r\n if (responseData.DateModified != undefined) {\r\n loaded.DateModified(responseData.DateModified);\r\n }\r\n if (responseData.StudentGroupType != null) {\r\n loaded.StudentGroupType(new smapi.academic.StudentGroupTypeModel().LoadFromResponse(responseData.StudentGroupType));\r\n }\r\n return loaded;\r\n };\r\n \r\n // Load from the APILink property\r\n this.LoadFromLink = function (baseApiUrl) {\r\n smapi.access.getById(baseApiUrl, 'TRS.CAMS.Academic.Entity.StudentGroup', function (data, textStatus, jqXHR) {\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n \r\n // handle the result\r\n if ((container != null && container.Status == \"success\") || jqXHR.statusText == \"OK\" || jqXHR.statusText == \"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.StudentGroupTypeID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.ID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }, \r\n number: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.GID.extend({\r\n required: {\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }, \r\n pattern: {\r\n params: /^[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?$/,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_ErrorInFormat0_Key), 'b5190af9-07b2-4e1e-a556-29b25a075df8')\r\n }\r\n });\r\n \r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n \r\n // Check if Model is valid \r\n // Will NOT validate recursive attached models, unless we turn that ON in the inital config of KO\r\n this.IsVMValid = function() {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n \r\n return self;\r\n }\r\n \r\n \r\n function LoadTemplates(basePath, targetDiv) {\r\n var uri = basePath + '/SMAPI.academic.combined-1.0.0.html';\r\n jQuery.ajax({\r\n url: uri,\r\n type: 'GET',\r\n async: false,\r\n success: function (template) {\r\n jQuery(\"#\" + targetDiv).append(template);\r\n }\r\n });\r\n }\r\n \r\n \r\n $.extend(true, smapi.academic, {\r\n RepeatPolicyModel: RepeatPolicyModel,\r\n DivisionModel: DivisionModel,\r\n AcademicDeliveryMethodModel: AcademicDeliveryMethodModel,\r\n AcademicLevelModel: AcademicLevelModel,\r\n StudentModel: StudentModel,\r\n EnrollmentLevelModel: EnrollmentLevelModel,\r\n EmployeeModel: EmployeeModel,\r\n MatriculationStatusModel: MatriculationStatusModel,\r\n AthleticEligibilityCenterModel: AthleticEligibilityCenterModel,\r\n FERPAAlertsModel: FERPAAlertsModel,\r\n EducationalGoalModel: EducationalGoalModel,\r\n ExternalEducationalGoalModel: ExternalEducationalGoalModel,\r\n CollegeCodeModel: CollegeCodeModel,\r\n CollegeModel: CollegeModel,\r\n AcademicPeriodOverlapModel: AcademicPeriodOverlapModel,\r\n AcademicPeriodTypeModel: AcademicPeriodTypeModel,\r\n AcademicPeriodModel: AcademicPeriodModel,\r\n PeriodDurationTypeModel: PeriodDurationTypeModel,\r\n PeriodDurationTypeThresholdModel: PeriodDurationTypeThresholdModel,\r\n ThresholdTypeModel: ThresholdTypeModel,\r\n ProgramMasterModel: ProgramMasterModel,\r\n ConcentrationTypeModel: ConcentrationTypeModel,\r\n HonorModel: HonorModel,\r\n ConcentrationMasterModel: ConcentrationMasterModel,\r\n PersonAcademicGoalConcentrationModel: PersonAcademicGoalConcentrationModel,\r\n PersonAcademicGoalHonorModel: PersonAcademicGoalHonorModel,\r\n PersonAcademicGoalModel: PersonAcademicGoalModel,\r\n CourseTypeModel: CourseTypeModel,\r\n CourseNeedMasterModel: CourseNeedMasterModel,\r\n CourseNeedModel: CourseNeedModel,\r\n LocationPropertyModel: LocationPropertyModel,\r\n CourseGroupModel: CourseGroupModel,\r\n GradeCatalogModel: GradeCatalogModel,\r\n GradeEffectModel: GradeEffectModel,\r\n GradeEffectTypeModel: GradeEffectTypeModel,\r\n GradeMasterGradeEffectModel: GradeMasterGradeEffectModel,\r\n GradeMasterModel: GradeMasterModel,\r\n CourseCatalogModel: CourseCatalogModel,\r\n CourseEnrollmentModeModel: CourseEnrollmentModeModel,\r\n EnrollmentModeMinGradeModel: EnrollmentModeMinGradeModel,\r\n CourseMasterMinGradeOverrideModel: CourseMasterMinGradeOverrideModel,\r\n CourseMasterModel: CourseMasterModel,\r\n GoalStandingMasterModel: GoalStandingMasterModel,\r\n EnrollmentStatusMasterModel: EnrollmentStatusMasterModel,\r\n AcademicPeriodMilestoneGroupModel: AcademicPeriodMilestoneGroupModel,\r\n AcademicPeriodMilestoneTypeModel: AcademicPeriodMilestoneTypeModel,\r\n AcademicPeriodMilestoneCriteriaModel: AcademicPeriodMilestoneCriteriaModel,\r\n ProgramTypeModel: ProgramTypeModel,\r\n AcademicPeriodMilestoneMasterModel: AcademicPeriodMilestoneMasterModel,\r\n CourseRequirementModel: CourseRequirementModel,\r\n AcademicRequirementModel: AcademicRequirementModel,\r\n CourseRequirementMasterModel: CourseRequirementMasterModel,\r\n CourseEquivalenceModel: CourseEquivalenceModel,\r\n ProgramCategoryModel: ProgramCategoryModel,\r\n ProgramConcentrationModel: ProgramConcentrationModel,\r\n AcademicManagerTypeModel: AcademicManagerTypeModel,\r\n AcademicProgramManagerModel: AcademicProgramManagerModel,\r\n AcademicProgramModel: AcademicProgramModel,\r\n ExternalAcademicProgramModel: ExternalAcademicProgramModel,\r\n CatalogCategoryModel: CatalogCategoryModel,\r\n GradeTypeModel: GradeTypeModel,\r\n GradeFormatModel: GradeFormatModel,\r\n RequirementCategoryModel: RequirementCategoryModel,\r\n GradeProcessModel: GradeProcessModel,\r\n EnrollmentLoadModel: EnrollmentLoadModel,\r\n GoalTypeModel: GoalTypeModel,\r\n PersonGoalProgramModel: PersonGoalProgramModel,\r\n ReasonModel: ReasonModel,\r\n PersonMetRequirementModel: PersonMetRequirementModel,\r\n MetRequirementCourseModel: MetRequirementCourseModel,\r\n ProgramStatusModel: ProgramStatusModel,\r\n AcademicDepartmentModel: AcademicDepartmentModel,\r\n AcademicSubjectAreaModel: AcademicSubjectAreaModel,\r\n CourseGroupQualifierRuleTypeModel: CourseGroupQualifierRuleTypeModel,\r\n CourseUnitModel: CourseUnitModel,\r\n CourseGroupQueryFilterTypeModel: CourseGroupQueryFilterTypeModel,\r\n PeriodOfCompletionUnitModel: PeriodOfCompletionUnitModel,\r\n CourseGroupCourseModel: CourseGroupCourseModel,\r\n DegreeCourseGroupModel: DegreeCourseGroupModel,\r\n CourseGroupQualifierRuleValueModel: CourseGroupQualifierRuleValueModel,\r\n CourseGroupQualifierRuleModel: CourseGroupQualifierRuleModel,\r\n CourseGroupQualifierBlockModel: CourseGroupQualifierBlockModel,\r\n CourseGroupQueryFilterValueModel: CourseGroupQueryFilterValueModel,\r\n CourseGroupQueryFilterModel: CourseGroupQueryFilterModel,\r\n CourseGroupQueryBlockModel: CourseGroupQueryBlockModel,\r\n CourseGroupQueryModel: CourseGroupQueryModel,\r\n DegreeRequirementModel: DegreeRequirementModel,\r\n DegreeRequirementQualifierRuleModel: DegreeRequirementQualifierRuleModel,\r\n DegreeRequirementQualifierBlockModel: DegreeRequirementQualifierBlockModel,\r\n DegreeAuditHistoryDetailModel: DegreeAuditHistoryDetailModel,\r\n DegreeAuditHistoryModel: DegreeAuditHistoryModel,\r\n DegreeAuditModel: DegreeAuditModel,\r\n DegreeAuditMilestoneTypeModel: DegreeAuditMilestoneTypeModel,\r\n AcademicMilestoneTypeModel: AcademicMilestoneTypeModel,\r\n DegreeRequirementMilestoneTypeModel: DegreeRequirementMilestoneTypeModel,\r\n DegreeRequirementMilestoneModel: DegreeRequirementMilestoneModel,\r\n RequirementMilestoneRuleModel: RequirementMilestoneRuleModel,\r\n RequirementMilestoneRuleBlockModel: RequirementMilestoneRuleBlockModel,\r\n AcademicReportingCodeTypeModel: AcademicReportingCodeTypeModel,\r\n AcademicReportingCodeModel: AcademicReportingCodeModel,\r\n ExternalAcademicReportingCodeModel: ExternalAcademicReportingCodeModel,\r\n FundingSourceModel: FundingSourceModel,\r\n CourseMasterFundingSourceModel: CourseMasterFundingSourceModel,\r\n SAPConfigurationScopeModel: SAPConfigurationScopeModel,\r\n AcademicPlanStepTypeModel: AcademicPlanStepTypeModel,\r\n AcademicPlanStepModel: AcademicPlanStepModel,\r\n AcademicPlanModel: AcademicPlanModel,\r\n AcademicStatusAppealReasonModel: AcademicStatusAppealReasonModel,\r\n AcademicProgressStandingTypeModel: AcademicProgressStandingTypeModel,\r\n AcademicAwardTypeModel: AcademicAwardTypeModel,\r\n AcademicProgressStatusModel: AcademicProgressStatusModel,\r\n AcademicProgressStatusFlowModel: AcademicProgressStatusFlowModel,\r\n AcademicProgressStatusAppealModel: AcademicProgressStatusAppealModel,\r\n AcademicProgressAlertModel: AcademicProgressAlertModel,\r\n CourseUnitTypeModel: CourseUnitTypeModel,\r\n CourseUnitMeasureModel: CourseUnitMeasureModel,\r\n LanguageOfInstructionModel: LanguageOfInstructionModel,\r\n QualificationModeModel: QualificationModeModel,\r\n EnrollmentGroupModel: EnrollmentGroupModel,\r\n ActivityStatusModel: ActivityStatusModel,\r\n StudentActivityGroupModel: StudentActivityGroupModel,\r\n ActivityCompetencyModel: ActivityCompetencyModel,\r\n ActivityPositionModel: ActivityPositionModel,\r\n SkillModel: SkillModel,\r\n ActivityCompensationModel: ActivityCompensationModel,\r\n StudentActivityTypeModel: StudentActivityTypeModel,\r\n AcceptableRecordModel: AcceptableRecordModel,\r\n NonCourseRequisiteTypeModel: NonCourseRequisiteTypeModel,\r\n NonCourseRequisiteModel: NonCourseRequisiteModel,\r\n CourseRequisiteTypeModel: CourseRequisiteTypeModel,\r\n CourseRequisiteQualifierRuleTypeModel: CourseRequisiteQualifierRuleTypeModel,\r\n CourseRequisiteCourseModel: CourseRequisiteCourseModel,\r\n CourseRequisiteQualifierRuleModel: CourseRequisiteQualifierRuleModel,\r\n CourseRequisiteQualifierBlockModel: CourseRequisiteQualifierBlockModel,\r\n CourseRequisiteModel: CourseRequisiteModel,\r\n ResitOptionModel: ResitOptionModel,\r\n ResitPolicyModel: ResitPolicyModel,\r\n ComponentActivityModel: ComponentActivityModel,\r\n ComponentAssessmentTypeModel: ComponentAssessmentTypeModel,\r\n AssessmentCategoryTypeModel: AssessmentCategoryTypeModel,\r\n LearningOutcomeModel: LearningOutcomeModel,\r\n AcademicProgressStatusRuleTypeModel: AcademicProgressStatusRuleTypeModel,\r\n AcademicProgressStatusRuleModel: AcademicProgressStatusRuleModel,\r\n AcademicProgressStatusBlockModel: AcademicProgressStatusBlockModel,\r\n StudentGroupTypeModel: StudentGroupTypeModel,\r\n StudentGroupModel: StudentGroupModel,\r\n LoadTemplates: LoadTemplates\r\n });\r\n})(jQuery);\r\n"]}