public IActionResult AddPAYENumber(BusinessCredentialsViewModel model)
        {
            model.Validate();

            model.PAYEStatusViewModel.PAYENumbers = model.PAYEStatusViewModel.PAYENumbers.Concat(new[] { new PAYENumberRow() }).ToList();
            return(View(nameof(BusinessCredentials), model));
        }
        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)));
        }
        public void it_should_map_business_credentials_to_the_licence_entity()
        {
            var input = new BusinessCredentialsViewModel
            {
                CompaniesHouseRegistrationViewModel = new CompaniesHouseRegistrationViewModel
                {
                    CompaniesHouseNumber    = "0123455",
                    CompanyRegistrationDate = new DateViewModel
                    {
                        Date = new DateTime(2017, 1, 1)
                    }
                },
                VATStatusViewModel = new VATStatusViewModel
                {
                    HasVATNumber        = true,
                    VATNumber           = "12345",
                    VATRegistrationDate = new DateViewModel
                    {
                        Date = new DateTime(2017, 1, 2)
                    }
                },
                PAYEStatusViewModel = new PAYEStatusViewModel
                {
                    HasPAYENumber = true
                                    // numbers are mapped via a seperate mapping call
                }
            };

            var result = this.mapper.Map <Licence>(input);

            Assert.AreEqual(input.CompaniesHouseRegistrationViewModel.CompaniesHouseNumber, result.CompaniesHouseNumber);
            Assert.AreEqual(input.CompaniesHouseRegistrationViewModel.CompanyRegistrationDate.Date, result.CompanyRegistrationDate);

            Assert.AreEqual(input.VATStatusViewModel.HasVATNumber, result.HasVATNumber);
            Assert.AreEqual(input.VATStatusViewModel.VATNumber, result.VATNumber);
            Assert.AreEqual(input.VATStatusViewModel.VATRegistrationDate.Date, result.VATRegistrationDate);

            Assert.AreEqual(input.PAYEStatusViewModel.HasPAYENumber, result.HasPAYENumber);
        }
 public IActionResult RemovePAYENumber(int id, BusinessCredentialsViewModel model)
 {
     model.PAYEStatusViewModel.PAYENumbers.RemoveAt(id);
     return(View(nameof(BusinessCredentials), model));
 }