public IActionResult SubmitApplication(LicenceApplicationViewModel model) { var licenceId = Session.GetCurrentLicenceId(); if (!model.AgreedToTermsAndConditions) { ModelState.AddModelError("AgreedToTermsAndConditions", "You must agree to the terms and conditions in order to submit your application."); var dbModel = LicenceApplicationViewModelBuilder.Build(licenceId); model.OrganisationDetails = dbModel.OrganisationDetails; model.PrincipalAuthority = dbModel.PrincipalAuthority; model.AlternativeBusinessRepresentatives = dbModel.AlternativeBusinessRepresentatives; model.DirectorOrPartner = dbModel.DirectorOrPartner; model.NamedIndividuals = dbModel.NamedIndividuals; model.Organisation = dbModel.Organisation; return(View("SubmitApplication", model)); } model.NewLicenceStatus = new LicenceStatusViewModel { Id = ConstantService.ApplicationSubmittedOnlineStatusId }; LicenceApplicationPostDataHandler.Update(licenceId, model); return(RedirectToAction("Portal")); }
public void it_should_update_an_entity_in_a_collection_by_its_id() { const int expectedId = 1; const string expectedName = "Name"; var licence = new Licence { Id = expectedId, NamedIndividuals = new List <NamedIndividual> { new NamedIndividual { Id = expectedId, FullName = string.Empty } } }; var model = new FullNameViewModel { FullName = expectedName }; licenceRepository.GetById(expectedId).Returns(licence); repository.Upsert(Arg.Any <NamedIndividual>()).Returns(expectedId); var pdh = new LicenceApplicationPostDataHandler(mapper, repository, licenceRepository, statusRepository, dateTimeProvider); var result = pdh.Update(expectedId, l => l.NamedIndividuals, model, expectedId); Assert.AreEqual(expectedId, result); repository.Received(1).Upsert(Arg.Is <NamedIndividual>(a => a.Id == expectedId && a.FullName.Equals(expectedName))); }
public void it_should_create_and_update_a_new_entity_if_one_does_not_exist_with_the_specified_id() { const int expectedId = 1; const string expectedName = "Name"; var licence = new Licence { Id = expectedId, NamedIndividuals = new List <NamedIndividual>() }; var model = new FullNameViewModel { FullName = expectedName }; licenceRepository.GetById(expectedId).Returns(licence); repository.Create <NamedIndividual>().Returns(new NamedIndividual { Id = expectedId }); repository.Upsert(Arg.Any <NamedIndividual>()).Returns(expectedId); var pdh = new LicenceApplicationPostDataHandler(mapper, repository, licenceRepository, statusRepository, dateTimeProvider); var result = pdh.Update(expectedId, l => l.NamedIndividuals, model, expectedId); Assert.AreEqual(expectedId, result); repository.Received(1).Upsert(Arg.Is <NamedIndividual>(a => a.Id == expectedId && a.FullName.Equals(expectedName))); }
public void it_should_create_and_update_a_new_entity_with_an_address_if_one_does_not_exist_with_the_specified_id_and_it_is_addressable() { const int expectedId = 1; const string expectedName = "Name"; var licence = new Licence { Id = expectedId, DirectorOrPartners = new List <DirectorOrPartner>() }; var model = new FullNameViewModel { FullName = expectedName }; licenceRepository.GetById(expectedId).Returns(licence); repository.Create <DirectorOrPartner>().Returns(new DirectorOrPartner { Id = expectedId }); repository.Create <Address>().Returns(new Address { Id = expectedId }); repository.Upsert(Arg.Any <DirectorOrPartner>()).Returns(expectedId); var pdh = new LicenceApplicationPostDataHandler(mapper, repository, licenceRepository, statusRepository, dateTimeProvider); var result = pdh.Update(expectedId, l => l.DirectorOrPartners, model, expectedId); Assert.AreEqual(expectedId, result); repository.Received(1).Create <Address>(); repository.Received(1).Upsert(Arg.Is <DirectorOrPartner>(a => a.Id == expectedId && a.FullName.Equals(expectedName) && a.Address.Id == expectedId)); }
public IActionResult SaveIsPreviousPrincipalAuthority(IsPreviousPrincipalAuthorityViewModel model) { Session.SetSubmittedPage(FormSection.DirectorOrPartner, 1); if (!ModelState.IsValid || !model.IsPreviousPrincipalAuthority.HasValue) { return(View(GetViewPath(FormSection.DirectorOrPartner, 1), model)); } var dopId = LicenceApplicationPostDataHandler.Update(Session.GetCurrentLicenceId(), l => l.DirectorOrPartners, model, Session.GetCurrentDopId()); Session.SetCurrentDopStatus(dopId, model.IsPreviousPrincipalAuthority.Value); if (model.IsPreviousPrincipalAuthority.Value) { var paId = LicenceApplicationPostDataHandler.UpsertPrincipalAuthorityAndLinkToDirectorOrPartner( Session.GetCurrentLicenceId(), dopId, Session.GetCurrentPaId(), model); Session.SetCurrentPaStatus(paId, true); } else { LicenceApplicationPostDataHandler.UnlinkPrincipalAuthorityFromDirectorOrPartner(Session.GetCurrentDopId()); } return(CheckParentValidityAndRedirect(FormSection.DirectorOrPartner, 1)); }
public IActionResult AddPreviousTradingName(PreviousTradingNameViewModel model, FormSection section, int id) { if (!ModelState.IsValid) { return(RedirectToAction("AddPreviousTradingName", new { section, id })); } LicenceApplicationPostDataHandler.Update(Session.GetCurrentLicenceId(), l => l.PreviousTradingNames, model, model.Id); var lastLoaded = Session.GetLoadedPage(); return(RedirectToAction(section, lastLoaded)); }
public IActionResult SaveMultipleBranch(MultipleBranchViewModel model) { Session.SetSubmittedPage(FormSection.Organisation, 5); if (!ModelState.IsValid) { return(View(GetViewPath(FormSection.Organisation, 5), model)); } LicenceApplicationPostDataHandler.Update(Session.GetCurrentLicenceId(), x => x, model); LicenceApplicationPostDataHandler.Update(Session.GetCurrentLicenceId(), x => x.SelectedMultiples, model.SelectedMultiples); return(CheckParentValidityAndRedirect(FormSection.Organisation, 5)); }
public IActionResult OperatingCountries(OperatingCountriesViewModel model) { Session.SetSubmittedPage(FormSection.OrganisationDetails, nameof(OperatingCountries)); if (!ModelState.IsValid) { return(View(nameof(OperatingCountries), model)); } LicenceApplicationPostDataHandler.Update(Session.GetCurrentLicenceId(), x => x.OperatingCountries, model.OperatingCountries); return(CheckParentValidityAndRedirect(FormSection.OrganisationDetails, nameof(OperatingCountries))); }
public IActionResult SaveOutsideSectors(OutsideSectorsViewModel model) { Session.SetSubmittedPage(FormSection.Organisation, 2); if (!ModelState.IsValid) { return(View(GetViewPath(FormSection.Organisation, 2), model)); } // update the non collection part LicenceApplicationPostDataHandler.Update(Session.GetCurrentLicenceId(), x => x, model); LicenceApplicationPostDataHandler.Update(Session.GetCurrentLicenceId(), x => x.SelectedSectors, model.SelectedSectors); return(CheckParentValidityAndRedirect(FormSection.Organisation, 2)); }
private IActionResult OrganisationPost <T>(T model, int submittedPageId) { Session.SetSubmittedPage(FormSection.Organisation, submittedPageId); model = RepopulateDropdowns(model); if (!ModelState.IsValid) { return(View(GetViewPath(FormSection.Organisation, submittedPageId), model)); } LicenceApplicationPostDataHandler.Update(Session.GetCurrentLicenceId(), x => x, model); return(CheckParentValidityAndRedirect(FormSection.Organisation, submittedPageId)); }
public IActionResult SaveAlternativeBusinessRepresentatives(AlternativeBusinessRepresentativeCollectionViewModel model) { Session.SetSubmittedPage(FormSection.AlternativeBusinessRepresentatives, 2); model = RepopulateDropdowns(model); if (!ModelState.IsValid) { return(View(GetViewPath(FormSection.AlternativeBusinessRepresentatives, 2), model)); } LicenceApplicationPostDataHandler.Update(Session.GetCurrentLicenceId(), x => x, model); return(RedirectToAction(FormSection.AlternativeBusinessRepresentatives, 3)); }
public IActionResult SaveNamedIndividuals(NamedIndividualCollectionViewModel model) { Session.SetSubmittedPage(FormSection.NamedIndividuals, 2); model = RepopulateDropdowns(model); if (!ModelState.IsValid) { return(View(GetViewPath(FormSection.NamedIndividuals, 2), model)); } LicenceApplicationPostDataHandler.Update(Session.GetCurrentLicenceId(), x => x, model); return(RedirectToAction(FormSection.NamedIndividuals, 3)); }
public IActionResult BusinessCredentials(BusinessCredentialsViewModel model) { Session.SetSubmittedPage(FormSection.OrganisationDetails, nameof(BusinessCredentials)); if (!ModelState.IsValid) { return(View(nameof(BusinessCredentials), model)); } var licenceId = Session.GetCurrentLicenceId(); LicenceApplicationPostDataHandler.Update(licenceId, x => x, model); LicenceApplicationPostDataHandler.UpdateAll(licenceId, x => x.PAYENumbers, model.PAYEStatusViewModel.PAYENumbers); return(CheckParentValidityAndRedirect(FormSection.OrganisationDetails, nameof(BusinessCredentials))); }
private IActionResult NamedIndividualPost <T>(T model, int submittedPageId, Func <T, bool> modelIsInvalid) { Session.SetSubmittedPage(FormSection.NamedIndividual, submittedPageId); model = RepopulateDropdowns(model); if (modelIsInvalid(model)) { return(View(GetViewPath(FormSection.NamedIndividual, submittedPageId), model)); } var id = LicenceApplicationPostDataHandler.Update(Session.GetCurrentLicenceId(), x => x.NamedIndividuals, model, Session.GetCurrentNamedIndividualId()); Session.SetCurrentNamedIndividualId(id); return(CheckParentValidityAndRedirect(FormSection.NamedIndividual, submittedPageId)); }
public IActionResult SaveJobTitle(NamedJobTitleViewModel model) { Session.SetSubmittedPage(FormSection.JobTitle, 1); model = RepopulateDropdowns(model); if (!ModelState.IsValid) { return(View(GetViewPath(FormSection.JobTitle, 1), model)); } var id = LicenceApplicationPostDataHandler.Update(Session.GetCurrentLicenceId(), x => x.NamedJobTitles, model, Session.GetCurrentNamedIndividualId()); Session.SetCurrentNamedIndividualId(id); return(RedirectToAction(FormSection.JobTitle, 2)); }
public void it_should_not_add_a_checked_item_to_the_entity_from_the_model_if_it_is_already_present() { const int expectedId = 1; const string expectedName = "Name"; var licence = new Licence { Id = expectedId, OperatingIndustries = new List <LicenceIndustry> { new LicenceIndustry { LicenceId = expectedId, IndustryId = expectedId, Industry = new Industry { Id = expectedId, Name = expectedName } } } }; var model = new OperatingIndustriesViewModel { OperatingIndustries = new List <CheckboxListItem> { new CheckboxListItem { Id = expectedId, Name = expectedName, Checked = true } } }; licenceRepository.GetById(expectedId).Returns(licence); repository.GetById <Industry>(expectedId).Returns(new Industry { Id = expectedId, Name = expectedName }); var pdh = new LicenceApplicationPostDataHandler(mapper, repository, licenceRepository, statusRepository, dateTimeProvider); pdh.Update(expectedId, l => l.OperatingIndustries, model.OperatingIndustries); repository.Received(1).Upsert(Arg.Is <Licence>(l => l.OperatingIndustries.Single().Id == expectedId && l.OperatingIndustries.Single().IndustryId == expectedId && l.OperatingIndustries.Single().Industry.Name.Equals(expectedName))); }
public IActionResult BusinessName(BusinessNameViewModel model) { Session.SetSubmittedPage(FormSection.OrganisationDetails, nameof(BusinessName)); model.Validate(); if (!model.IsValid) { return(View(nameof(BusinessName), model)); } var licenceId = Session.GetCurrentLicenceId(); LicenceApplicationPostDataHandler.Update(licenceId, x => x, model); LicenceApplicationPostDataHandler.UpdateAll(licenceId, x => x.PreviousTradingNames, model.PreviousTradingNames); return(CheckParentValidityAndRedirect(FormSection.OrganisationDetails, nameof(BusinessName))); }
public void it_should_update_the_licence_field_from_the_model() { const int expectedId = 1; const string expectedName = "Name"; var licence = new Licence { Id = expectedId, BusinessName = string.Empty }; var model = new BusinessNameViewModel { BusinessName = expectedName }; licenceRepository.GetById(expectedId).Returns(licence); var pdh = new LicenceApplicationPostDataHandler(mapper, repository, licenceRepository, statusRepository, dateTimeProvider); pdh.Update(expectedId, l => l, model); repository.Received(1).Upsert(Arg.Is <Licence>(l => l.BusinessName == expectedName)); }
public IActionResult OperatingIndustries(OperatingIndustriesViewModel model) { Session.SetSubmittedPage(FormSection.OrganisationDetails, nameof(OperatingIndustries)); if (!ModelState.IsValid) { return(View(nameof(OperatingIndustries), model)); } var licenceId = Session.GetCurrentLicenceId(); // TODO: This could be a mapping LicenceApplicationPostDataHandler.UpdateShellfishStatus(licenceId, model); LicenceApplicationPostDataHandler.Update(licenceId, x => x.OperatingIndustries, model.OperatingIndustries); return(CheckParentValidityAndRedirect(FormSection.OrganisationDetails, nameof(OperatingIndustries))); }
private IActionResult AlternativeBusinessRepresentativePost <T>(T model, int submittedPageId, Func <T, bool> modelIsInvalid) { Session.SetSubmittedPage(FormSection.AlternativeBusinessRepresentative, submittedPageId); model = RepopulateDropdowns(model); if (modelIsInvalid(model)) { return(View(GetViewPath(FormSection.AlternativeBusinessRepresentative, submittedPageId), model)); } var id = LicenceApplicationPostDataHandler.Update(Session.GetCurrentLicenceId(), x => x.AlternativeBusinessRepresentatives, model, Session.GetCurrentAbrId()); Session.SetCurrentAbrId(id); return(CheckParentValidityAndRedirect(FormSection.AlternativeBusinessRepresentative, submittedPageId)); }
private IActionResult DirectorOrPartnerPost <T>(T model, int submittedPageId, bool doPaLinking, Func <T, bool> modelIsInvalid) { Session.SetSubmittedPage(FormSection.DirectorOrPartner, submittedPageId); model = RepopulateDropdowns(model); if (modelIsInvalid(model)) { return(View(GetViewPath(FormSection.DirectorOrPartner, submittedPageId), model)); } if (Session.GetCurrentDopIsPa() && doPaLinking) { LicenceApplicationPostDataHandler.Update(Session.GetCurrentLicenceId(), l => l.PrincipalAuthorities, model, Session.GetCurrentPaId()); } LicenceApplicationPostDataHandler.Update(Session.GetCurrentLicenceId(), l => l.DirectorOrPartners, model, Session.GetCurrentDopId()); return(CheckParentValidityAndRedirect(FormSection.DirectorOrPartner, submittedPageId)); }
private IActionResult OrganisationDetailsPost <T>(T model, string actionName) { Session.SetSubmittedPage(FormSection.OrganisationDetails, actionName); model = RepopulateDropdowns(model); if (!ModelState.IsValid) { return(View(actionName, model)); } var licenceId = Session.GetCurrentLicenceId(); if (model is AddressViewModel) { LicenceApplicationPostDataHandler.UpdateAddress(Session.GetCurrentLicenceId(), x => x, model as AddressViewModel); } else { LicenceApplicationPostDataHandler.Update(licenceId, x => x, model); } return(CheckParentValidityAndRedirect(FormSection.OrganisationDetails, actionName)); }
public IActionResult SaveIsDirector(IsDirectorViewModel model) { Session.SetSubmittedPage(FormSection.PrincipalAuthority, 2); if (!ModelState.IsValid || !model.IsDirector.HasValue) { return(View(GetViewPath(FormSection.PrincipalAuthority, 2), model)); } var paId = LicenceApplicationPostDataHandler.Update(Session.GetCurrentLicenceId(), x => x.PrincipalAuthorities, model, Session.GetCurrentPaId()); Session.SetCurrentPaStatus(paId, model.IsDirector.Value); if (model.IsDirector.Value) { var licenceModel = LicenceApplicationViewModelBuilder.Build(Session.GetCurrentLicenceId()); var existingDirectorOrPartnerId = licenceModel.PrincipalAuthority.DirectorOrPartnerId ?? 0; var dopId = LicenceApplicationPostDataHandler.Update(Session.GetCurrentLicenceId(), l => l.DirectorOrPartners, model, existingDirectorOrPartnerId); Session.SetCurrentDopStatus(dopId, true); LicenceApplicationPostDataHandler.UpsertDirectorOrPartnerAndLinkToPrincipalAuthority( Session.GetCurrentLicenceId(), paId, dopId, model); return(RedirectToAction(FormSection.PrincipalAuthority, 4)); } LicenceApplicationPostDataHandler.UnlinkDirectorOrPartnerFromPrincipalAuthority(Session.GetCurrentPaId()); return(CheckParentValidityAndRedirect(FormSection.PrincipalAuthority, 2)); }