public async Task <IActionResult> AddPartner(Guid applicationId) { var partnerTypeAnswer = await _qnaApiClient.GetAnswerByTag(applicationId, RoatpWorkflowQuestionTags.PartnershipType); var partnerIndividual = (partnerTypeAnswer != null && partnerTypeAnswer.Value == ConfirmPartnershipTypeViewModel.PartnershipTypeIndividual); var model = new AddEditPeopleInControlViewModel { ApplicationId = applicationId, DateOfBirthOptional = !partnerIndividual, GetHelpAction = "AddPartner", PageId = RoatpWorkflowPageIds.WhosInControl.AddPartners }; if (partnerIndividual) { model.Identifier = "individual"; } else { model.Identifier = "organisation"; } PopulateGetHelpWithQuestion(model); return(View("~/Views/Roatp/WhosInControl/AddPartner.cshtml", model)); }
public async Task <IActionResult> EditPeopleInControl(Guid applicationId, int index) { var personTableData = await _tabularDataRepository.GetTabularDataAnswer(applicationId, RoatpWorkflowQuestionTags.AddPeopleInControl); if (personTableData != null) { if (index >= personTableData.DataRows.Count) { return(RedirectToAction("ConfirmPeopleInControl", new { applicationId })); } var person = personTableData.DataRows[index]; var name = person.Columns[0]; var dateOfBirth = person.Columns[1]; var model = new AddEditPeopleInControlViewModel { ApplicationId = applicationId, PersonInControlName = name, Index = index, Identifier = "person", PersonInControlDobMonth = DateOfBirthFormatter.GetMonthNumberFromShortDateOfBirth(dateOfBirth), PersonInControlDobYear = DateOfBirthFormatter.GetYearFromShortDateOfBirth(dateOfBirth), DateOfBirthOptional = false, GetHelpAction = "EditPeopleInControl", PageId = "EditPeopleInControl" }; PopulateGetHelpWithQuestion(model); return(View($"~/Views/Roatp/WhosInControl/EditPeopleInControl.cshtml", model)); } return(RedirectToAction("ConfirmPeopleInControl", new { applicationId })); }
public static List <ValidationErrorDetail> Validate(AddEditPeopleInControlViewModel model) { var errorMessages = new List <ValidationErrorDetail>(); if (String.IsNullOrEmpty(model.PersonInControlName)) { errorMessages.Add( new ValidationErrorDetail { ErrorMessage = PersonInControlNameMinLengthError, Field = "PersonInControlName" }); } else if (model.PersonInControlName.Length > 255) { errorMessages.Add( new ValidationErrorDetail { ErrorMessage = PersonInControlNameMaxLengthError, Field = "PersonInControlName" }); } if (!model.DateOfBirthOptional) { var dobErrorMessages = DateOfBirthAnswerValidator.ValidateDateOfBirth(model.PersonInControlDobMonth, model.PersonInControlDobYear, DobFieldPrefix); if (dobErrorMessages.Any()) { errorMessages.AddRange(dobErrorMessages); } } return(errorMessages); }
public async Task <IActionResult> AddPeopleInControlDetails(AddEditPeopleInControlViewModel model) { var errorMessages = PeopleInControlValidator.Validate(model); if (errorMessages.Any()) { model.ErrorMessages = errorMessages; return(View("~/Views/Roatp/WhosInControl/AddPeopleInControl.cshtml", model)); } var whosInControlSection = await _qnaApiClient.GetSectionBySectionNo(model.ApplicationId, RoatpWorkflowSequenceIds.YourOrganisation, RoatpWorkflowSectionIds.YourOrganisation.WhosInControl); var personInControlData = await _tabularDataRepository.GetTabularDataAnswer(model.ApplicationId, RoatpWorkflowQuestionTags.AddPeopleInControl); var personInControl = new TabularDataRow { Id = Guid.NewGuid().ToString(), Columns = new List <string> { model.PersonInControlName, DateOfBirthFormatter.FormatDateOfBirth(model.PersonInControlDobMonth, model.PersonInControlDobYear) } }; if (personInControlData == null) { personInControlData = new TabularData { HeadingTitles = new List <string> { "Name", "Date of birth" }, DataRows = new List <TabularDataRow> { personInControl } }; var result = await _tabularDataRepository.SaveTabularDataAnswer( model.ApplicationId, whosInControlSection.Id, RoatpWorkflowPageIds.WhosInControl.AddPeopleInControl, RoatpYourOrganisationQuestionIdConstants.AddPeopleInControl, personInControlData); } else { var result = await _tabularDataRepository.UpsertTabularDataRecord( model.ApplicationId, whosInControlSection.Id, RoatpWorkflowPageIds.WhosInControl.AddPeopleInControl, RoatpYourOrganisationQuestionIdConstants.AddPeopleInControl, RoatpWorkflowQuestionTags.AddPeopleInControl, personInControl); } return(RedirectToAction("ConfirmPeopleInControl", new { model.ApplicationId })); }
public async Task <IActionResult> AddPeopleInControl(Guid applicationId) { var organisationType = await _applicationApiClient.GetOrganisationTypeFromApplication(applicationId); var model = new AddEditPeopleInControlViewModel { ApplicationId = applicationId, OrganisationType = organisationType, GetHelpAction = "AddPeopleInControl" }; PopulateGetHelpWithQuestion(model, RoatpWorkflowPageIds.WhosInControl.AddPeopleInControl); return(View("~/Views/Roatp/WhosInControl/AddPeopleInControl.cshtml", model)); }
public async Task <IActionResult> UpdatePartnerDetails(AddEditPeopleInControlViewModel model) { var errorMessages = PeopleInControlValidator.Validate(model); if (errorMessages.Any()) { model.ErrorMessages = errorMessages; return(View("~/Views/Roatp/WhosInControl/EditPartner.cshtml", model)); } var partnerTableData = await _tabularDataRepository.GetTabularDataAnswer(model.ApplicationId, RoatpWorkflowQuestionTags.AddPartners); if (partnerTableData != null) { var partner = new TabularDataRow { Columns = new List <string> { model.PersonInControlName } }; if (!model.DateOfBirthOptional) { partner.Columns.Add(DateOfBirthFormatter.FormatDateOfBirth(model.PersonInControlDobMonth, model.PersonInControlDobYear)); } else { partner.Columns.Add(string.Empty); } var whosInControlSection = await _qnaApiClient.GetSectionBySectionNo(model.ApplicationId, RoatpWorkflowSequenceIds.YourOrganisation, RoatpWorkflowSectionIds.YourOrganisation.WhosInControl); var result = await _tabularDataRepository.EditTabularDataRecord( model.ApplicationId, whosInControlSection.Id, RoatpWorkflowPageIds.WhosInControl.AddPartners, RoatpYourOrganisationQuestionIdConstants.AddPartners, RoatpWorkflowQuestionTags.AddPartners, partner, model.Index); } return(RedirectToAction("ConfirmPartners", new { model.ApplicationId })); }
public async Task <IActionResult> EditPartner(Guid applicationId, int index) { var partnerTableData = await _tabularDataRepository.GetTabularDataAnswer(applicationId, RoatpWorkflowQuestionTags.AddPartners); if (partnerTableData != null) { if (index >= partnerTableData.DataRows.Count) { return(RedirectToAction("ConfirmPartners", new { applicationId })); } var partner = partnerTableData.DataRows[index]; var model = new AddEditPeopleInControlViewModel { ApplicationId = applicationId, PersonInControlName = partner.Columns[0], Index = index, Identifier = "organisation", DateOfBirthOptional = true, GetHelpAction = "EditPartner", PageId = "EditPartner" }; if (partner.Columns.Count > 1 && !string.IsNullOrEmpty(partner.Columns[1])) { var dateOfBirth = partner.Columns[1]; model.PersonInControlDobMonth = DateOfBirthFormatter.GetMonthNumberFromShortDateOfBirth(dateOfBirth); model.PersonInControlDobYear = DateOfBirthFormatter.GetYearFromShortDateOfBirth(dateOfBirth); model.DateOfBirthOptional = false; model.Identifier = "individual"; } PopulateGetHelpWithQuestion(model); return(View($"~/Views/Roatp/WhosInControl/EditPartner.cshtml", model)); } return(RedirectToAction("ConfirmPartners", new { applicationId })); }