public async Task <IActionResult> UpdateChildrenLivingAwayFromHome(FosteringCaseChildrenLivingAwayFromHomeUpdateModel model) { try { var response = await _homeVisitService.UpdateChildrenLivingAwayFromHome(model); return(Ok(response)); } catch (Exception ex) { return(StatusCode(500, ex)); } }
public async Task <ETaskStatus> UpdateChildrenLivingAwayFromHome(FosteringCaseChildrenLivingAwayFromHomeUpdateModel model) { var completed = UpdateChildrenLivingAwayFromHomeIsComplete(model) ? ETaskStatus.Completed : ETaskStatus.NotCompleted; var firstApplicantUnderSixteen = CreateOtherPersonBuilder(ConfigurationModels.FirstApplicantUnderSixteenConfigurationModel, model.FirstApplicant.AnyChildrenUnderSixteen.GetValueOrDefault() ? model.FirstApplicant.ChildrenUnderSixteenLivingAwayFromHome : new List <OtherPerson>(), 4) .AddField(EFosteringHomeVisitForm.ChildrenLivingAwayFromYourHome.GetFormStatusFieldName(), completed.GetTaskStatus()) .AddField("haschildrenundersixteen1", model.FirstApplicant.AnyChildrenUnderSixteen == null ? string.Empty : model.FirstApplicant.AnyChildrenUnderSixteen == true ? "yes" : "no"); var firstApplicantOverSixteen = CreateOtherPersonBuilder(ConfigurationModels.FirstApplicantOverSixteenConfigurationModel, model.FirstApplicant.AnyChildrenOverSixteen.GetValueOrDefault() ? model.FirstApplicant.ChildrenOverSixteenLivingAwayFromHome : new List <OtherPerson>(), 4) .AddField("haschildrenoversixteen1", model.FirstApplicant.AnyChildrenOverSixteen == null ? string.Empty : model.FirstApplicant.AnyChildrenOverSixteen == true ? "yes" : "no") .Build(); List <IntegrationFormField> secondApplicantUnderSixteen = new List <IntegrationFormField>(); List <IntegrationFormField> secondApplicantOverSixteen = new List <IntegrationFormField>(); if (model.SecondApplicant != null) { secondApplicantUnderSixteen = CreateOtherPersonBuilder(ConfigurationModels.SecondApplicantUnderSixteenConfigurationModel, model.SecondApplicant.AnyChildrenUnderSixteen.GetValueOrDefault() ? model.SecondApplicant.ChildrenUnderSixteenLivingAwayFromHome : new List <OtherPerson>(), 4) .AddField("haschildrenundersixteen2", model.SecondApplicant.AnyChildrenUnderSixteen == null ? string.Empty : model.SecondApplicant.AnyChildrenUnderSixteen == true ? "yes" : "no").Build(); secondApplicantOverSixteen = CreateOtherPersonBuilder(ConfigurationModels.SecondApplicantOverSixteenConfigurationModel, model.SecondApplicant.AnyChildrenOverSixteen.GetValueOrDefault() ? model.SecondApplicant.ChildrenOverSixteenLivingAwayFromHome : new List <OtherPerson>(), 4) .AddField("haschildrenoversixteen2", model.SecondApplicant.AnyChildrenOverSixteen == null ? string.Empty : model.SecondApplicant.AnyChildrenOverSixteen == true ? "yes" : "no").Build(); } var integrationFormFields = model.SecondApplicant != null?firstApplicantUnderSixteen.Build().Concat(firstApplicantOverSixteen).ToList().Concat(secondApplicantUnderSixteen).ToList().Concat(secondApplicantOverSixteen).ToList() : firstApplicantUnderSixteen.Build().Concat(firstApplicantOverSixteen).ToList(); var updateModel = new IntegrationFormFieldsUpdateModel { CaseReference = model.CaseReference, IntegrationFormFields = integrationFormFields, IntegrationFormName = _integrationFormName }; var response = await _verintServiceGateway.UpdateCaseIntegrationFormField(updateModel); if (response.StatusCode != HttpStatusCode.OK) { throw new Exception("Update children living away from home failure"); } return(completed); }
public async Task <HttpResponse <ETaskStatus> > UpdateChildrenLivingAwayFromHome(FosteringCaseChildrenLivingAwayFromHomeUpdateModel model) => await PatchAsync <ETaskStatus>($"{HomeVisitEndpoint}/children-living-away-from-home", model);
private bool UpdateChildrenLivingAwayFromHomeIsComplete(FosteringCaseChildrenLivingAwayFromHomeUpdateModel model) { bool firstApplicantUnderSixteen = false, firstApplicantOverSixteen = false; if (model.FirstApplicant.AnyChildrenUnderSixteen == false || model.FirstApplicant.AnyChildrenUnderSixteen == true && model.FirstApplicant.ChildrenUnderSixteenLivingAwayFromHome != null && model.FirstApplicant.ChildrenUnderSixteenLivingAwayFromHome?.Count != 0 && !model.FirstApplicant.ChildrenUnderSixteenLivingAwayFromHome.Exists(person => string.IsNullOrEmpty(person.FirstName) || string.IsNullOrEmpty(person.LastName) || string.IsNullOrEmpty(person.Gender) || person.DateOfBirth == null || string.IsNullOrEmpty(person.Address.AddressLine1) || string.IsNullOrEmpty(person.Address.Town) || string.IsNullOrEmpty(person.Address.Postcode))) { firstApplicantUnderSixteen = true; } if (model.FirstApplicant.AnyChildrenOverSixteen == false || model.FirstApplicant.AnyChildrenOverSixteen == true && model.FirstApplicant.ChildrenOverSixteenLivingAwayFromHome != null && model.FirstApplicant.ChildrenOverSixteenLivingAwayFromHome?.Count != 0 && !model.FirstApplicant.ChildrenOverSixteenLivingAwayFromHome.Exists(person => string.IsNullOrEmpty(person.FirstName) || string.IsNullOrEmpty(person.LastName) || string.IsNullOrEmpty(person.Gender) || person.DateOfBirth == null || string.IsNullOrEmpty(person.Address.AddressLine1) || string.IsNullOrEmpty(person.Address.Town) || string.IsNullOrEmpty(person.Address.Postcode))) { firstApplicantOverSixteen = true; } if (model.SecondApplicant != null) { bool secondApplicantUnderSixteen = false, secondApplicantOverSixteen = false; if (model.SecondApplicant.AnyChildrenUnderSixteen == false || model.SecondApplicant.AnyChildrenUnderSixteen == true && model.SecondApplicant.ChildrenUnderSixteenLivingAwayFromHome != null && model.SecondApplicant.ChildrenUnderSixteenLivingAwayFromHome?.Count != 0 && !model.SecondApplicant.ChildrenUnderSixteenLivingAwayFromHome.Exists(person => string.IsNullOrEmpty(person.FirstName) || string.IsNullOrEmpty(person.LastName) || string.IsNullOrEmpty(person.Gender) || person.DateOfBirth == null || string.IsNullOrEmpty(person.Address.AddressLine1) || string.IsNullOrEmpty(person.Address.Town) || string.IsNullOrEmpty(person.Address.Postcode))) { secondApplicantUnderSixteen = true; } if (model.SecondApplicant.AnyChildrenOverSixteen == false || model.SecondApplicant.AnyChildrenOverSixteen == true && model.SecondApplicant.ChildrenOverSixteenLivingAwayFromHome != null && model.SecondApplicant.ChildrenOverSixteenLivingAwayFromHome?.Count != 0 && !model.SecondApplicant.ChildrenOverSixteenLivingAwayFromHome.Exists(person => string.IsNullOrEmpty(person.FirstName) || string.IsNullOrEmpty(person.LastName) || string.IsNullOrEmpty(person.Gender) || person.DateOfBirth == null || string.IsNullOrEmpty(person.Address.AddressLine1) || string.IsNullOrEmpty(person.Address.Town) || string.IsNullOrEmpty(person.Address.Postcode))) { secondApplicantOverSixteen = true; } return(firstApplicantUnderSixteen && firstApplicantOverSixteen && secondApplicantUnderSixteen && secondApplicantOverSixteen); } return(firstApplicantUnderSixteen && firstApplicantOverSixteen); }