public async Task RegisteredCompanyDetailsPost_ValidViewModel_ReturnsCorrectRedirect(EntityType type, string expectedController, string expectedAction)
        {
            var viewModel = new RegisteredCompanyDetailsViewModel()
            {
                BusinessTradingName         = "name",
                OrganisationType            = "Registered company",
                CompaniesRegistrationNumber = "1234567",
                CompanyName = "Name",
                EntityType  = type
            };

            viewModel.Address.Countries = countries;

            var result = await controller.RegisteredCompanyDetails(viewModel) as RedirectToRouteResult;

            result.RouteValues["action"].Should().Be(expectedAction);
            result.RouteValues["controller"].Should().Be(expectedController);

            result.RouteValues["organisationId"].Should().NotBe(null);

            if (type != EntityType.Pcs)
            {
                result.RouteValues["facilityType"].Should().Be(viewModel.EntityType);
            }
        }
        public async Task RegisteredCompanyDetailsPost_ModelNotValid_ReturnsView()
        {
            var viewModel = new RegisteredCompanyDetailsViewModel()
            {
                BusinessTradingName         = "Company",
                OrganisationType            = "Registered company",
                CompaniesRegistrationNumber = "1234567",
                CompanyName = "Name"
            };

            viewModel.Address.Countries = countries;

            controller.ModelState.AddModelError("error", "error");

            var result = await controller.RegisteredCompanyDetails(viewModel) as ViewResult;

            var resultViewModel = result.Model as RegisteredCompanyDetailsViewModel;

            Assert.True(string.IsNullOrEmpty(result.ViewName) || result.ViewName == "SoleTraderOrPartnershipDetails");
            Assert.Equal(viewModel.BusinessTradingName, resultViewModel.BusinessTradingName);
            Assert.Equal(viewModel.OrganisationType, resultViewModel.OrganisationType);
            Assert.Equal(viewModel.CompanyName, resultViewModel.CompanyName);
            Assert.Equal(viewModel.CompaniesRegistrationNumber, resultViewModel.CompaniesRegistrationNumber);
            Assert.Equal(countries, resultViewModel.Address.Countries);
        }
Exemplo n.º 3
0
        public async Task <ActionResult> RegisteredCompanyDetails(RegisteredCompanyDetailsViewModel model)
        {
            SetBreadcrumb(InternalUserActivity.CreateOrganisation);

            if (!ModelState.IsValid)
            {
                var countries = await GetCountries();

                model.Address.Countries = countries;

                return(View(model));
            }

            using (var client = apiClient())
            {
                var request = new CreateOrganisationAdmin()
                {
                    Address            = model.Address,
                    BusinessName       = model.CompanyName,
                    OrganisationType   = model.OrganisationType.GetValueFromDisplayName <OrganisationType>(),
                    RegistrationNumber = model.CompaniesRegistrationNumber,
                    TradingName        = model.BusinessTradingName
                };

                var id = await client.SendAsync(User.GetAccessToken(), request);

                await cache.InvalidateOrganisationSearch();

                return(RedirectToAddAction(id, model.EntityType));
            }
        }
        public async Task RegisteredCompanyDetailsPost_Always_SetsInternalBreadcrumb()
        {
            var viewModel = new RegisteredCompanyDetailsViewModel
            {
                BusinessTradingName         = "name",
                OrganisationType            = "Registered company",
                CompaniesRegistrationNumber = "1234567",
                CompanyName = "Name",
                Address     = { Countries = countries }
            };

            await controller.RegisteredCompanyDetails(viewModel);

            Assert.Equal("Add new organisation", breadcrumbService.InternalActivity);
        }
        public async Task RegisteredCompanyDetailsPost_InvalidateCacheMustBeRun()
        {
            var viewModel = new RegisteredCompanyDetailsViewModel
            {
                BusinessTradingName         = "Company",
                OrganisationType            = "Registered company",
                CompaniesRegistrationNumber = "1234567",
                CompanyName = "Name",
                Address     = { Countries = countries }
            };

            await controller.RegisteredCompanyDetails(viewModel);

            A.CallTo(() => cache.InvalidateOrganisationSearch()).MustHaveHappened(Repeated.Exactly.Once);
        }
Exemplo n.º 6
0
        public async Task <ActionResult> RegisteredCompanyDetails(string organisationType, EntityType entityType, string searchedText = null)
        {
            SetBreadcrumb(InternalUserActivity.CreateOrganisation);

            var countries = await GetCountries();

            var model = new RegisteredCompanyDetailsViewModel
            {
                CompanyName      = searchedText,
                OrganisationType = organisationType,
                EntityType       = entityType,
                Address          = { Countries = countries }
            };

            return(View(model));
        }
        public async Task PostRegisteredCompanyDetails_WithInvalidModel_ReturnsView()
        {
            // Arrange
            IWeeeClient weeeClient = A.Dummy<IWeeeClient>();
            ISearcher<OrganisationSearchResult> organisationSearcher = A.Dummy<ISearcher<OrganisationSearchResult>>();

            OrganisationRegistrationController controller = new OrganisationRegistrationController(
                () => weeeClient,
                organisationSearcher);

            controller.ModelState.AddModelError("Key", "Error");

            RegisteredCompanyDetailsViewModel model = new RegisteredCompanyDetailsViewModel();

            // Act
            ActionResult result = await controller.RegisteredCompanyDetails(model);

            // Assert
            var viewmodel = ((ViewResult)result).Model;

            Assert.NotNull(viewmodel);
            Assert.False(((ViewResult)result).ViewData.ModelState.IsValid);
        }
        public async Task<ActionResult> RegisteredCompanyDetails(RegisteredCompanyDetailsViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }
            using (var client = apiClient())
            {
                if (model.OrganisationId != null)
                {
                    // update orgnisation details
                    UpdateOrganisationTypeDetails updateRequest = new UpdateOrganisationTypeDetails(
                        model.OrganisationId.Value,
                        OrganisationType.RegisteredCompany,
                        model.CompanyName,
                        model.BusinessTradingName,
                        model.CompaniesRegistrationNumber);

                    Guid organisationId = await client.SendAsync(User.GetAccessToken(), updateRequest);
                    return RedirectToAction("MainContactPerson", new { organisationId });
                }

                CreateRegisteredCompanyRequest request = new CreateRegisteredCompanyRequest
                {
                    BusinessName = model.CompanyName,
                    CompanyRegistrationNumber = model.CompaniesRegistrationNumber,
                    TradingName = model.BusinessTradingName
                };
                //create the organisation only if does not exist
                Guid orgId = await client.SendAsync(User.GetAccessToken(), request);
                return RedirectToAction("MainContactPerson", new { organisationId = orgId });
            }
        }
        public async Task<ActionResult> RegisteredCompanyDetails(Guid? organisationId = null, string searchedText = null)
        {
            if (organisationId != null)
            {
                using (var client = apiClient())
                {
                    var organisation = await GetOrganisation(organisationId, client);

                    if (organisation.OrganisationType == OrganisationType.RegisteredCompany)
                    {
                        var model = new RegisteredCompanyDetailsViewModel
                        {
                            BusinessTradingName = organisation.TradingName,
                            CompanyName = organisation.Name,
                            CompaniesRegistrationNumber = organisation.CompanyRegistrationNumber,
                            OrganisationId = organisationId.Value
                        };

                        return View("RegisteredCompanyDetails", model);
                    }
                    return View(new RegisteredCompanyDetailsViewModel { CompanyName = searchedText });
                }
            }
            return View(new RegisteredCompanyDetailsViewModel { CompanyName = searchedText });
        }