示例#1
0
        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);
        }