import { ApplicationSection } from '../../enums';
import { ApplicationSectionTexts } from '../../constants/applicationSectionTexts';
export class ValidationData {
[ApplicationSection.ApplicationStudent]: SectionValidationData;
[ApplicationSection.ApplicationContact]: SectionValidationData;
[ApplicationSection.ApplicationStudentVisa]: SectionValidationData;
[ApplicationSection.ApplicationStudentSchoolProgram]: SectionValidationData;
[ApplicationSection.ApplicationStudentAccommodationWelfare]: SectionValidationData;
[ApplicationSection.ApplicationStudentEnglishProficiency]: SectionValidationData;
[ApplicationSection.ApplicationStudentSpecialCircumstances]: SectionValidationData;
[ApplicationSection.ApplicationStudentAgentDetails]: SectionValidationData;
[ApplicationSection.ApplicationSupportingDocuments]: SectionValidationData;
[ApplicationSection.ApplicationSpecialProgram]: SectionValidationData;
static getObject(validationResult: any) {
const validationData = new ValidationData();
for (let index = 0; index < validationResult.length; index++) {
if (validationResult[index].relatedSections.length > 0) {
const relatedSections = validationResult[index].relatedSections;
for (let sectionIndex = 0; sectionIndex < relatedSections.length; sectionIndex++) {
const section = ApplicationSectionTexts.getApplicationSection(relatedSections[sectionIndex]);
if (validationData[section]) {
validationData[section].messages.push(validationResult[index].subject);
} else {
// tslint:disable-next-line: no-use-before-declare
validationData[section] = new SectionValidationData({ isError: true, messages: [validationResult[index].subject]});
}
}
}
}
return validationData;
}
}
export class SectionValidationData {
isError = true;
messages: Array<string> = [];
constructor(obj) {
Object.assign(this, obj);
}
}
export enum ApplicationSection {
ApplicationStudent = 1,
ApplicationContact = 2,
ApplicationStudentVisa = 3,
ApplicationStudentSchoolProgram = 4,
ApplicationStudentAccommodationWelfare = 5,
ApplicationStudentEnglishProficiency = 6,
ApplicationStudentSpecialCircumstances = 7,
ApplicationStudentAgentDetails = 8,
ApplicationStudentDefaultCorrespondent = 9,
ApplicationSupportingDocuments = 10,
ApplicationStudentSummary = 11,
ApplicationSpecialProgram = 12,
ApplicationParentDetails = 13,
ApplicationHomestay = 14
}
implementation:
this.validationData = ValidationData.getObject(validationResult);