Exemple #1
0
        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> 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);
        }
Exemple #3
0
        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);
            }
        }
Exemple #4
0
        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> UpdateInterestInFostering(FosteringCaseInterestInFosteringUpdateModel model)
        {
            var completed     = !string.IsNullOrEmpty(model.ReasonsForFostering) && model.TypesOfFostering.Any();
            var currentStatus = completed
                ? ETaskStatus.Completed
                : ETaskStatus.NotCompleted;

            var formFields = new FormFieldBuilder()
                             .AddField("fiichildrenwithdisability", model.TypesOfFostering.Exists(_ => _.Equals("childrenWithDisability")) ? "ChildrenWithDisabilities" : string.Empty)
                             .AddField("fiirespite", model.TypesOfFostering.Exists(_ => _.Equals("respite")) ? "Respite" : string.Empty)
                             .AddField("fiishortterm", model.TypesOfFostering.Exists(_ => _.Equals("shortTerm")) ? "ShortTerm" : string.Empty)
                             .AddField("fiilongterm", model.TypesOfFostering.Exists(_ => _.Equals("longTerm")) ? "LongTerm" : string.Empty)
                             .AddField("fiiunsure", model.TypesOfFostering.Exists(_ => _.Equals("unsure")) ? "Unsure" : string.Empty)
                             .AddField("fiishortbreaks", model.TypesOfFostering.Exists(_ => _.Equals("shortBreaks")) ? "ShortBreaks" : string.Empty)
                             .AddField("reasonsforfosteringapplicant1", model.ReasonsForFostering ?? string.Empty)
                             .AddField("tellusaboutyourinterestinfosteringstatus", Enum.GetName(typeof(ETaskStatus), currentStatus))
                             .Build();

            await _verintServiceGateway.UpdateCaseIntegrationFormField(new IntegrationFormFieldsUpdateModel
            {
                CaseReference         = model.CaseReference,
                IntegrationFormName   = _integrationFormName,
                IntegrationFormFields = formFields
            });


            return(currentStatus);
        }
Exemple #6
0
 /// <summary>
 /// 添加错误消息
 /// </summary>
 private void AddError(FormFieldBuilder formFieldBuilder, InputBuilder inputBuilder, string type, string message)
 {
     if (string.IsNullOrWhiteSpace(message))
     {
         return;
     }
     AddRefrenceId(inputBuilder);
     formFieldBuilder.AppendChild(new ErrorBuilder(_refrenceId, type, message));
 }
Exemple #7
0
 /// <summary>
 /// 添加必填项验证
 /// </summary>
 private void AddRequired(FormFieldBuilder formFieldBuilder, InputBuilder inputBuilder)
 {
     if (_config.Contains(UiConst.Required) == false)
     {
         return;
     }
     inputBuilder.AddAttribute(UiConst.Required, "true");
     AddError(formFieldBuilder, inputBuilder, UiConst.Required, _config.GetValue(UiConst.RequiredMessage));
 }
Exemple #8
0
        /// <summary>
        /// 获取标签生成器
        /// </summary>
        protected override ITagBuilder GetTagBuilder()
        {
            var formFieldBuilder = new FormFieldBuilder();
            var inputBuilder     = new InputBuilder();

            formFieldBuilder.AppendChild(inputBuilder);
            InitInputBuilder(formFieldBuilder, inputBuilder);
            return(formFieldBuilder);
        }
Exemple #9
0
 /// <summary>
 /// 添加最小长度验证
 /// </summary>
 private void AddMinLength(FormFieldBuilder formFieldBuilder, InputBuilder inputBuilder)
 {
     if (_config.MinLength <= 0)
     {
         return;
     }
     inputBuilder.AddAttribute("minlength", _config.MinLength.ToString());
     AddError(formFieldBuilder, inputBuilder, "minlength", _config.MinLengthMessage);
 }
Exemple #10
0
 /// <summary>
 /// 添加必填项验证
 /// </summary>
 private void AddRequired(FormFieldBuilder formFieldBuilder, InputBuilder inputBuilder)
 {
     if (_config.Required == false)
     {
         return;
     }
     inputBuilder.AddAttribute("required", "true");
     AddError(formFieldBuilder, inputBuilder, "required", _config.RequiredMessage);
 }
        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);
        }
        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);
        }
Exemple #13
0
 /// <summary>
 /// 初始化输入控件生成器
 /// </summary>
 private void InitInputBuilder(FormFieldBuilder formFieldBuilder, InputBuilder inputBuilder)
 {
     inputBuilder.SetText();
     inputBuilder.AddOtherAttributes(_config);
     inputBuilder.Id(_config);
     inputBuilder.AddAttribute(UiConst.Name, _config.GetValue(UiConst.Name));
     inputBuilder.AddAttribute("placeholder", _config.GetValue(UiConst.Placeholder));
     inputBuilder.AddAttribute("type", _config.Type);
     inputBuilder.AddAttribute("[(ngModel)]", _config.GetValue(UiConst.Model));
     AddValidations(formFieldBuilder, inputBuilder);
 }
Exemple #14
0
        public async Task <ETaskStatus> UpdateReferences(FosteringCaseReferenceUpdateModel model)
        {
            var formFields = new FormFieldBuilder()
                             .AddField("prffirstname", model.FamilyReference.FirstName)
                             .AddField("prflastname", model.FamilyReference.LastName)
                             .AddField("prfrelation", model.FamilyReference.RelationshipToYou)
                             .AddField("prfyears", model.FamilyReference.NumberOfYearsKnown)
                             .AddField("prfemail", model.FamilyReference.EmailAddress)
                             .AddField("prfcontact", model.FamilyReference.PhoneNumber)
                             .AddField("prf11firstname", model.FirstPersonalReference.FirstName)
                             .AddField("prf1lastname", model.FirstPersonalReference.LastName)
                             .AddField("prf1relation", model.FirstPersonalReference.RelationshipToYou)
                             .AddField("prf1years", model.FirstPersonalReference.NumberOfYearsKnown)
                             .AddField("prf1email", model.FirstPersonalReference.EmailAddress)
                             .AddField("prf1contact", model.FirstPersonalReference.PhoneNumber)
                             .AddField("prf2firstname", model.SecondPersonalReference.FirstName)
                             .AddField("prf2lastname", model.SecondPersonalReference.LastName)
                             .AddField("prf2relation", model.SecondPersonalReference.RelationshipToYou)
                             .AddField("prf2years", model.SecondPersonalReference.NumberOfYearsKnown)
                             .AddField("prf2email", model.SecondPersonalReference.EmailAddress)
                             .AddField("prf2contact", model.SecondPersonalReference.PhoneNumber)
                             .AddField(EFosteringApplicationForm.References.GetFormStatusFieldName(), ETaskStatus.Completed.GetTaskStatus())
                             .Build();

            formFields.AddRange(AddressMapper.MapToVerintAddress(model.FamilyReference.Address, "prfaddress",
                                                                 "prfplaceref", "prfpostcode"));

            formFields.AddRange(AddressMapper.MapToVerintAddress(model.FirstPersonalReference.Address, "prf1address",
                                                                 "prf1placeref", "prf1postcode"));

            formFields.AddRange(AddressMapper.MapToVerintAddress(model.SecondPersonalReference.Address, "prf2address",
                                                                 "prf2placeref", "prf2postcode"));

            var updateModel = new IntegrationFormFieldsUpdateModel
            {
                IntegrationFormName   = _applicationFormName,
                CaseReference         = model.CaseReference,
                IntegrationFormFields = formFields
            };

            var response = await _verintServiceGateway
                           .UpdateCaseIntegrationFormField(updateModel);

            if (response.StatusCode != HttpStatusCode.OK)
            {
                throw new Exception("Update references failure");
            }

            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);
        }
Exemple #16
0
 public FormField(
     Key key = null,
     FormFieldBuilder <T> builder     = null,
     FormFieldSetter <T> onSaved      = null,
     FormFieldValidator <T> validator = null,
     T initialValue    = null,
     bool autovalidate = false,
     bool enabled      = true
     ) : base(key: key)
 {
     D.assert(builder != null);
     this.onSaved      = onSaved;
     this.validator    = validator;
     this.builder      = builder;
     this.initialValue = initialValue;
     this.autovalidate = autovalidate;
     this.enabled      = enabled;
 }
Exemple #17
0
        public async Task UpdateStatus(string caseId, ETaskStatus status, EFosteringApplicationForm form)
        {
            var fields = new FormFieldBuilder()
                         .AddField(form.GetFormStatusFieldName(), status.GetTaskStatus())
                         .Build();

            var response = await _verintServiceGateway.UpdateCaseIntegrationFormField(new IntegrationFormFieldsUpdateModel
            {
                CaseReference         = caseId,
                IntegrationFormName   = _applicationFormName,
                IntegrationFormFields = fields
            });

            if (response.StatusCode != HttpStatusCode.OK)
            {
                throw new Exception(
                          $"Application Service. UpdateStatus: Failed to update status. Verint service response: {response}");
            }
        }
        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 async Task UpdateStatus(string caseId, ETaskStatus status, EFosteringHomeVisitForm form)
        {
            var formStatusFieldName = form.GetFormStatusFieldName();

            var formFields = new FormFieldBuilder()
                             .AddField(formStatusFieldName, status.GetTaskStatus());

            var updateModel = new IntegrationFormFieldsUpdateModel
            {
                IntegrationFormName   = _integrationFormName,
                CaseReference         = caseId,
                IntegrationFormFields = formFields.Build()
            };

            var response = await _verintServiceGateway
                           .UpdateCaseIntegrationFormField(updateModel);

            if (response.StatusCode != HttpStatusCode.OK)
            {
                throw new Exception("Passive update-status failure");
            }
        }
Exemple #20
0
        public async Task <ETaskStatus> UpdateGpDetails(FosteringCaseGpDetailsUpdateModel model)
        {
            var firstApplicantFormFields = new FormFieldBuilder()
                                           .AddField("nameofgp", model.FirstApplicant.NameOfGp)
                                           .AddField("nameofpractice", model.FirstApplicant.NameOfGpPractice)
                                           .AddField("gpphonenumber", model.FirstApplicant.GpPhoneNumber)
                                           .AddField(EFosteringApplicationForm.GpDetails.GetFormStatusFieldName(), ETaskStatus.Completed.GetTaskStatus())
                                           .Build();

            firstApplicantFormFields.AddRange(AddressMapper.MapToVerintAddress(model.FirstApplicant.GpAddress, "addressofpractice", "placerefofpractice", "postcodeofpractice"));

            var secondApplicantFormFields = new List <IntegrationFormField>();

            if (model.SecondApplicant != null)
            {
                secondApplicantFormFields = new FormFieldBuilder()
                                            .AddField("nameofgp2", model.SecondApplicant.NameOfGp)
                                            .AddField("nameofpractice2", model.SecondApplicant.NameOfGpPractice)
                                            .AddField("gpphonenumber2", model.SecondApplicant.GpPhoneNumber)
                                            .Build();
                secondApplicantFormFields.AddRange(AddressMapper.MapToVerintAddress(model.SecondApplicant.GpAddress, "addressofpractice2", "placerefofpractice2", "postcodeofpractice2"));
            }

            var result = await _verintServiceGateway.UpdateCaseIntegrationFormField(new IntegrationFormFieldsUpdateModel
            {
                CaseReference         = model.CaseReference,
                IntegrationFormFields = firstApplicantFormFields.Concat(secondApplicantFormFields).ToList(),
                IntegrationFormName   = _applicationFormName
            });

            if (result.StatusCode != HttpStatusCode.OK)
            {
                throw new Exception("Update Gp details failure");
            }

            return(ETaskStatus.Completed);
        }
        public async Task <ETaskStatus> UpdatePartnershipStatus(FosteringCasePartnershipStatusUpdateModel model)
        {
            var marriedOrInACivilPartnership = string.Empty;

            if (model.MarriedOrInACivilPartnership != null)
            {
                marriedOrInACivilPartnership = model.MarriedOrInACivilPartnership.GetValueOrDefault() ? "Yes" : "No";
            }

            var completed = model.MarriedOrInACivilPartnership != null &&
                            (!model.MarriedOrInACivilPartnership.GetValueOrDefault() || model.DateOfMarriage != null) &&
                            (model.MarriedOrInACivilPartnership.GetValueOrDefault() || model.DateMovedInTogether != null);

            var formFields = new FormFieldBuilder()
                             .AddField("datesetuphousehold",
                                       model.DateMovedInTogether == null
                        ? string.Empty
                        : model.DateMovedInTogether.GetValueOrDefault().ToString("dd/MM/yyyy"))
                             .AddField("dateofreg",
                                       model.DateOfMarriage == null
                        ? string.Empty
                        : model.DateOfMarriage.GetValueOrDefault().ToString("dd/MM/yyyy"))
                             .AddField("marriedorinacivilpartnership", marriedOrInACivilPartnership)
                             .AddField(EFosteringHomeVisitForm.YourPartnership.GetFormStatusFieldName(), completed ? ETaskStatus.Completed.GetTaskStatus() : ETaskStatus.NotCompleted.GetTaskStatus())
                             .Build();


            await _verintServiceGateway.UpdateCaseIntegrationFormField(new IntegrationFormFieldsUpdateModel
            {
                CaseReference         = model.CaseReference,
                IntegrationFormFields = formFields,
                IntegrationFormName   = _integrationFormName
            });

            return(completed ? ETaskStatus.Completed : ETaskStatus.NotCompleted);
        }
Exemple #22
0
        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}", "");
            }
        }
Exemple #23
0
 /// <summary>
 /// 添加验证操作
 /// </summary>
 private void AddValidations(FormFieldBuilder formFieldBuilder, InputBuilder inputBuilder)
 {
     AddRequired(formFieldBuilder, inputBuilder);
     AddMinLength(formFieldBuilder, inputBuilder);
 }
        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);
        }