Ejemplo n.º 1
0
        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));
        }