public void it_unlinks_a_director_from_the_principal_authority() { const int paId = 1; var pa = new PrincipalAuthority { Id = paId, DirectorOrPartner = new DirectorOrPartner() }; repository.GetById <PrincipalAuthority>(paId).Returns(pa); var pdh = new LicenceApplicationPostDataHandler(mapper, repository, licenceRepository, statusRepository, dateTimeProvider); pdh.UnlinkDirectorOrPartnerFromPrincipalAuthority(paId); repository.Received(1).Upsert(Arg.Is <PrincipalAuthority>(d => d.DirectorOrPartner == null)); }
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)); }