public async Task <ETaskStatus> UpdateLanguagesSpokenInYourHome(FosteringCaseLanguagesSpokenInYourHomeUpdateModel model) { var formFields = new FormFieldBuilder(); var completed = UpdateLanguagesSpokenInYourHomeIsValid(model); formFields .AddField("primarylanguage", model.PrimaryLanguage) .AddField("otherlanguages", model.OtherLanguages); formFields.AddField(EFosteringHomeVisitForm.LanguageSpokenInYourHome.GetFormStatusFieldName(), completed ? ETaskStatus.Completed.GetTaskStatus() : ETaskStatus.NotCompleted.GetTaskStatus()); var updateModel = new IntegrationFormFieldsUpdateModel { IntegrationFormName = _integrationFormName, CaseReference = model.CaseReference, IntegrationFormFields = formFields.Build() }; var response = await _verintServiceGateway .UpdateCaseIntegrationFormField(updateModel); if (response.StatusCode != HttpStatusCode.OK) { throw new Exception("Update language-spoken-in-your-home failure"); } return(completed ? ETaskStatus.Completed : ETaskStatus.NotCompleted); }
private void CreateCouncillorsDetailsIntegratedFormFields(FormFieldBuilder builder, List <CouncillorRelationshipDetailsUpdateModel> model, bool secondApplicant = false) { var applicantPrefix = secondApplicant ? "2" : "1"; for (var i = 0; i < model.Count; i++) { var nameSuffix = i + 1; builder .AddField($"councilloremployeename{applicantPrefix}{nameSuffix}", model[i].CouncillorName ?? string.Empty) .AddField($"councillorrelationship{applicantPrefix}{nameSuffix}", model[i].Relationship ?? string.Empty); } for (var i = model.Count; i < 4; i++) { var nameSuffix = i + 1; builder .AddField($"councilloremployeename{applicantPrefix}{nameSuffix}", string.Empty) .AddField($"councillorrelationship{applicantPrefix}{nameSuffix}", string.Empty); } }
public async Task <ETaskStatus> UpdateAboutYourself(FosteringCaseAboutYourselfUpdateModel model) { var completed = UpdateAboutYourselfIsValid(model.FirstApplicant); var formFields = new FormFieldBuilder() .AddField("previousname", model.FirstApplicant.EverBeenKnownByAnotherName.GetValueOrDefault() ? model.FirstApplicant.AnotherName : "") .AddField("hasanothername", model.FirstApplicant.EverBeenKnownByAnotherName == null ? "" : model.FirstApplicant.EverBeenKnownByAnotherName.ToString().ToLower()) .AddField("ethnicity", model.FirstApplicant.Ethnicity) .AddField("gender", model.FirstApplicant.Gender) .AddField("nationality", model.FirstApplicant.Nationality) .AddField("placeofbirth", model.FirstApplicant.PlaceOfBirth) .AddField("religionorfaithgroup", model.FirstApplicant.Religion); if (model.SecondApplicant != null) { completed = completed && UpdateAboutYourselfIsValid(model.SecondApplicant); formFields .AddField("previousname_2", model.SecondApplicant.EverBeenKnownByAnotherName.GetValueOrDefault() ? model.SecondApplicant.AnotherName : "") .AddField("hasanothername2", model.SecondApplicant.EverBeenKnownByAnotherName == null ? "" : model.SecondApplicant.EverBeenKnownByAnotherName.ToString().ToLower()) .AddField("ethnicity2", model.SecondApplicant.Ethnicity) .AddField("gender2", model.SecondApplicant.Gender) .AddField("placeofbirth_2", model.SecondApplicant.PlaceOfBirth) .AddField("nationality2", model.SecondApplicant.Nationality) .AddField("religionorfaithgroup2", model.SecondApplicant.Religion); } formFields.AddField(EFosteringHomeVisitForm.TellUsAboutYourself.GetFormStatusFieldName(), completed ? ETaskStatus.Completed.GetTaskStatus() : ETaskStatus.NotCompleted.GetTaskStatus()); var updateModel = new IntegrationFormFieldsUpdateModel { IntegrationFormName = _integrationFormName, CaseReference = model.CaseReference, IntegrationFormFields = formFields.Build() }; var response = await _verintServiceGateway .UpdateCaseIntegrationFormField(updateModel); if (response.StatusCode != HttpStatusCode.OK) { throw new Exception("Update about-yourself failure"); } return(completed ? ETaskStatus.Completed : ETaskStatus.NotCompleted); }
public async Task <ETaskStatus> UpdateAddressHistory(FosteringCaseAddressHistoryUpdateModel model) { var builder = new FormFieldBuilder(); CreateAddressHistoryIntegratedFormFields(builder, model.FirstApplicant.AddressHistory); if (model.SecondApplicant != null) { CreateAddressHistoryIntegratedFormFields(builder, model.SecondApplicant != null ? model.SecondApplicant?.AddressHistory : new List <PreviousAddress>(), true); } var addressHistoryTaskStatus = AddressHistoryTaskStatus(model.FirstApplicant.AddressHistory) && (model.SecondApplicant == null || AddressHistoryTaskStatus(model.SecondApplicant.AddressHistory)); builder.AddField(EFosteringApplicationForm.AddressHistory.GetFormStatusFieldName(), addressHistoryTaskStatus ? ETaskStatus.Completed.GetTaskStatus() : ETaskStatus.NotCompleted.GetTaskStatus()); var response = await _verintServiceGateway.UpdateCaseIntegrationFormField(new IntegrationFormFieldsUpdateModel { CaseReference = model.CaseReference, IntegrationFormFields = builder.Build(), IntegrationFormName = _applicationFormName }); if (response.StatusCode != HttpStatusCode.OK) { throw new Exception($"Application Service. UpdateAddressHistory: Failed to update. Verint service response: {response}"); } return(addressHistoryTaskStatus ? ETaskStatus.Completed : ETaskStatus.NotCompleted); }
public async Task <ETaskStatus> UpdateCouncillorsDetails(FosteringCaseCouncillorsUpdateModel model) { var builder = new FormFieldBuilder(); CreateCouncillorsDetailsIntegratedFormFields(builder, model.FirstApplicant.HasContactWithCouncillor ? model.FirstApplicant.CouncillorRelationshipDetails : new List <CouncillorRelationshipDetailsUpdateModel>()); CreateCouncillorsDetailsIntegratedFormFields(builder, model.SecondApplicant?.HasContactWithCouncillor != null && model.SecondApplicant.HasContactWithCouncillor ? model.SecondApplicant.CouncillorRelationshipDetails : new List <CouncillorRelationshipDetailsUpdateModel>(), true); builder .AddField("contactwithcouncillor1", model.FirstApplicant.HasContactWithCouncillor.ToString().ToLower()) .AddField("contactwithcouncillor2", model.SecondApplicant?.HasContactWithCouncillor.ToString().ToLower() ?? string.Empty) .AddField(EFosteringApplicationForm.CouncillorsOrEmployees.GetFormStatusFieldName(), ETaskStatus.Completed.GetTaskStatus()); var response = await _verintServiceGateway.UpdateCaseIntegrationFormField(new IntegrationFormFieldsUpdateModel { CaseReference = model.CaseReference, IntegrationFormFields = builder.Build(), IntegrationFormName = _applicationFormName }); if (response.StatusCode != HttpStatusCode.OK) { throw new Exception($"Application Service. UpdateCouncillorsDetails: Failed to update. Verint service response: {response}"); } return(ETaskStatus.Completed); }
public async Task <ETaskStatus> UpdateHealthStatus(FosteringCaseHealthUpdateModel model) { var completed = UpdateHealthStatusIsCompleted(model); var formFields = new FormFieldBuilder(); if (model.FirstApplicant.RegisteredDisabled != null) { formFields .AddField("registereddisabled", model.FirstApplicant.RegisteredDisabled.GetValueOrDefault() ? "Yes" : "No"); } if (model.FirstApplicant.Practitioner != null) { formFields .AddField("practitioner", model.FirstApplicant.Practitioner.GetValueOrDefault() ? "Yes" : "No"); } if (model.SecondApplicant != null) { if (model.SecondApplicant.RegisteredDisabled != null) { formFields .AddField("registereddisabled2", model.SecondApplicant.RegisteredDisabled.GetValueOrDefault() ? "Yes" : "No"); } if (model.SecondApplicant.Practitioner != null) { formFields .AddField("practitioner2", model.SecondApplicant.Practitioner.GetValueOrDefault() ? "Yes" : "No"); } } formFields.AddField(EFosteringHomeVisitForm.YourHealth.GetFormStatusFieldName(), completed ? ETaskStatus.Completed.GetTaskStatus() : ETaskStatus.NotCompleted.GetTaskStatus()); var response = await _verintServiceGateway.UpdateCaseIntegrationFormField(new IntegrationFormFieldsUpdateModel { CaseReference = model.CaseReference, IntegrationFormFields = formFields.Build(), IntegrationFormName = _integrationFormName }); if (response.StatusCode != HttpStatusCode.OK) { throw new Exception("Update health-status failure"); } return(completed ? ETaskStatus.Completed : ETaskStatus.NotCompleted); }
public async Task <ETaskStatus> UpdateYourFosteringHistory(FosteringCaseYourFosteringHistoryUpdateModel model) { var formFields = new FormFieldBuilder(); var previouslyApplied = string.Empty; var isCompleted = false; if (model.FirstApplicant.PreviouslyApplied != null) { previouslyApplied = model.FirstApplicant.PreviouslyApplied.GetValueOrDefault() ? "Yes" : "No"; isCompleted = true; } formFields.AddField("previouslyappliedapplicant1", previouslyApplied); if (model.SecondApplicant != null) { if (model.SecondApplicant.PreviouslyApplied != null) { previouslyApplied = model.SecondApplicant.PreviouslyApplied.GetValueOrDefault() ? "Yes" : "No"; } else { isCompleted = false; } formFields.AddField("previouslyappliedapplicant2", previouslyApplied); } var currentStatus = isCompleted ? ETaskStatus.Completed : ETaskStatus.NotCompleted; var builtfields = formFields.AddField("yourfosteringhistorystatus", Enum.GetName(typeof(ETaskStatus), currentStatus)).Build(); await _verintServiceGateway.UpdateCaseIntegrationFormField(new IntegrationFormFieldsUpdateModel { CaseReference = model.CaseReference, IntegrationFormFields = builtfields, IntegrationFormName = _integrationFormName }); return(currentStatus); }
public FormFieldBuilder CreateOtherPersonBuilder(OtherPeopleConfigurationModel config, List <OtherPerson> otherPeople, int capacity = 8) { var builder = new FormFieldBuilder(); for (var i = 0; i < otherPeople?.Count; i++) { var nameSuffix = i + 1; builder .AddField($"{config.FirstName}{nameSuffix}", otherPeople[i].FirstName ?? string.Empty) .AddField($"{config.DateOfBirth}{nameSuffix}", otherPeople[i].DateOfBirth?.ToString("dd/MM/yyyy") ?? string.Empty) .AddField($"{config.Gender}{nameSuffix}", otherPeople[i].Gender ?? string.Empty) .AddField($"{config.LastName}{nameSuffix}", otherPeople[i].LastName ?? string.Empty); if (!string.IsNullOrEmpty(config.RelationshipToYou)) { builder.AddField($"{config.RelationshipToYou}{nameSuffix}", otherPeople[i].RelationshipToYou ?? string.Empty); } if (!string.IsNullOrEmpty(config.Address) && !string.IsNullOrEmpty(config.Postcode)) { if (otherPeople[i].Address == null) { otherPeople[i].Address = new Model.Address(); } builder .AddField($"{config.Address}{nameSuffix}", otherPeople[i].Address.AddressLine1 + "|" + otherPeople[i].Address.AddressLine2 + "|" + otherPeople[i].Address.Town) .AddField($"{config.Postcode}{nameSuffix}", otherPeople[i].Address.Postcode ?? string.Empty); } } for (var i = otherPeople?.Count; i < capacity; i++) { var nameSuffix = i + 1; builder .AddField($"{config.FirstName}{nameSuffix}", string.Empty) .AddField($"{config.DateOfBirth}{nameSuffix}", string.Empty) .AddField($"{config.Gender}{nameSuffix}", string.Empty) .AddField($"{config.LastName}{nameSuffix}", string.Empty); if (!string.IsNullOrEmpty(config.RelationshipToYou)) { builder.AddField($"{config.RelationshipToYou}{nameSuffix}", string.Empty); } if (!string.IsNullOrEmpty(config.Address) && !string.IsNullOrEmpty(config.Postcode)) { builder .AddField($"{config.Address}{nameSuffix}", string.Empty) .AddField($"{config.Postcode}{nameSuffix}", string.Empty); } } return(builder); }
private void CreateAddressHistoryIntegratedFormFields(FormFieldBuilder builder, List <PreviousAddress> model, bool secondApplicant = false) { var applicantSuffix = secondApplicant ? "2" : "1"; builder .AddField($"currentdatefrommonthapplicant{applicantSuffix}", model[0].DateFrom?.Month.ToString() ?? string.Empty) .AddField($"currentdatefromyearapplicant{applicantSuffix}", model[0].DateFrom?.Year.ToString() ?? string.Empty); if (model.Count > 1) { for (var i = 1; i < model.Count; i++) { builder .AddField($"pa{i}applicant{applicantSuffix}", model[i].Address.AddressLine1 + "|" + model[i].Address.AddressLine2 + "|" + model[i].Address.Town + "|" + model[i].Address.County + "|" + model[i].Address.Country) .AddField($"pa{i}postcodeapplicant{applicantSuffix}", model[i].Address.Postcode ?? string.Empty) .AddField($"pa{i}datefrommonthapplicant{applicantSuffix}", model[i].DateFrom?.Month.ToString() ?? string.Empty) .AddField($"pa{i}datefromyearapplicant{applicantSuffix}", model[i].DateFrom?.Year.ToString() ?? string.Empty); if (i == 8) { break; } } } if (model.Count < 8) { for (int i = model.Count; i < 9; i++) { builder .AddField($"pa{i}applicant{applicantSuffix}", string.Empty) .AddField($"pa{i}postcodeapplicant{applicantSuffix}", string.Empty) .AddField($"pa{i}datefrommonthapplicant{applicantSuffix}", string.Empty) .AddField($"pa{i}datefromyearapplicant{applicantSuffix}", string.Empty); } } if (model.Count > 8) { var additionalAddress = string.Empty; for (var i = 9; i < model.Count; i++) { additionalAddress += model[i].Address.AddressLine1 + "|" + model[i].Address.AddressLine2 + "|" + model[i].Address.Town + "|" + model[i].Address.County + "|" + model[i].Address.Country + "|" + model[i].Address.Postcode + "|" + model[i].DateFrom?.Month + "|" + model[i].DateFrom?.Year; additionalAddress += (i == model.Count - 1) ? string.Empty : "—"; } builder .AddField($"addressadditionalinformation{applicantSuffix}", additionalAddress); } else { builder .AddField($"addressadditionalinformation{applicantSuffix}", ""); } }
public async Task <ETaskStatus> UpdateYourEmploymentDetails(FosteringCaseYourEmploymentDetailsUpdateModel model) { var formFields = new FormFieldBuilder(); var completed = UpdateAboutEmploymentIsCompleted(model.FirstApplicant); if (model.FirstApplicant.AreYouEmployed != null) { formFields .AddField("employed", model.FirstApplicant.AreYouEmployed.Value ? "Yes" : "No") .AddField("jobtitle", model.FirstApplicant.JobTitle) .AddField("currentemployer", model.FirstApplicant.CurrentEmployer) .AddField("hoursofwork", Enum.GetName(typeof(EHoursOfWork), model.FirstApplicant.CurrentHoursOfWork)); } else { formFields .AddField("jobtitle", string.Empty) .AddField("currentemployer", string.Empty) .AddField("hoursofwork", Enum.GetName(typeof(EHoursOfWork), 0)); } if (model.SecondApplicant != null) { if (model.SecondApplicant.AreYouEmployed != null) { formFields .AddField("employed2", model.SecondApplicant.AreYouEmployed.Value ? "Yes" : "No") .AddField("jobtitle2", model.SecondApplicant.JobTitle) .AddField("currentemployer2", model.SecondApplicant.CurrentEmployer) .AddField("hoursofwork2", Enum.GetName(typeof(EHoursOfWork), model.SecondApplicant.CurrentHoursOfWork)); } else { formFields .AddField("jobtitle2", string.Empty) .AddField("currentemployer2", string.Empty) .AddField("hoursofwork2", Enum.GetName(typeof(EHoursOfWork), 0)); } completed = completed && UpdateAboutEmploymentIsCompleted(model.SecondApplicant); } formFields.AddField(EFosteringHomeVisitForm.YourEmploymentDetails.GetFormStatusFieldName(), completed ? ETaskStatus.Completed.GetTaskStatus() : ETaskStatus.NotCompleted.GetTaskStatus()); var updateModel = new IntegrationFormFieldsUpdateModel { IntegrationFormName = _integrationFormName, CaseReference = model.CaseReference, IntegrationFormFields = formFields.Build() }; var response = await _verintServiceGateway .UpdateCaseIntegrationFormField(updateModel); if (response.StatusCode != HttpStatusCode.OK) { throw new Exception("Update about-your employment details failure"); } return(completed ? ETaskStatus.Completed : ETaskStatus.NotCompleted); }