public async Task <IActionResult> CreateVenueAsync(AddProviderVenueViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View("AddProviderVenue", viewModel));
            }

            var(isValid, formattedPostcode) = await _providerVenueService.IsValidPostcodeAsync(viewModel.Postcode);

            viewModel.Postcode = formattedPostcode;

            if (string.IsNullOrWhiteSpace(viewModel.Postcode) || !isValid)
            {
                ModelState.AddModelError("Postcode", "You must enter a real postcode");
                return(View("AddProviderVenue", viewModel));
            }

            var venue = await _providerVenueService.GetVenueAsync(viewModel.ProviderId, viewModel.Postcode);

            int venueId;

            if (venue != null)
            {
                venueId = venue.Id;
            }
            else
            {
                venueId = await _providerVenueService.CreateVenueAsync(viewModel);
            }

            return(RedirectToRoute("GetProviderVenueDetail", new { providerVenueId = venueId }));
        }
Esempio n. 2
0
        public When_ProviderVenue_Add_Has_Invalid_Postcode()
        {
            _providerVenueService = Substitute.For <IProviderVenueService>();
            _providerVenueService.IsValidPostcodeAsync("CV1 2WT").Returns((false, "CV1 2WT"));
            var providerVenueController = new ProviderVenueController(_providerVenueService);

            var viewModel = new AddProviderVenueViewModel
            {
                Postcode = "CV1 2WT"
            };

            _result = providerVenueController.CreateVenueAsync(viewModel).GetAwaiter().GetResult();
        }
Esempio n. 3
0
        public When_ProviderVenue_Detail_Save_Has_No_Qualifications()
        {
            _providerVenueService = Substitute.For <IProviderVenueService>();
            _providerVenueService.IsValidPostcodeAsync("CV1 2WT").Returns((true, "CV1 2WT"));
            var providerVenueController = new ProviderVenueController(_providerVenueService);
            var controllerWithClaims    = new ClaimsBuilder <ProviderVenueController>(providerVenueController)
                                          .AddUserName("username")
                                          .AddEmail("*****@*****.**")
                                          .Build();

            var viewModel = new ProviderVenueDetailViewModel
            {
                Id       = 1,
                Postcode = "CV1 2WT"
            };

            _result = controllerWithClaims.SaveProviderVenueDetailAsync(viewModel).GetAwaiter().GetResult();
        }
Esempio n. 4
0
        public When_ProviderVenue_Add_Venue_Does_Not_Exist()
        {
            _providerVenueService = Substitute.For <IProviderVenueService>();
            _providerVenueService.IsValidPostcodeAsync("CV1 2WT").Returns((true, "CV1 2WT"));
            _providerVenueService.GetVenueAsync(1, "CV1 2WT").ReturnsNull();
            _providerVenueService.CreateVenueAsync(Arg.Any <AddProviderVenueViewModel>()).Returns(1);

            var providerVenueController = new ProviderVenueController(_providerVenueService);
            var controllerWithClaims    = new ClaimsBuilder <ProviderVenueController>(providerVenueController)
                                          .AddUserName("username")
                                          .AddEmail("*****@*****.**")
                                          .Build();

            var viewModel = new AddProviderVenueViewModel
            {
                ProviderId = 1,
                Postcode   = "CV1 2WT"
            };

            _result = controllerWithClaims.CreateVenueAsync(viewModel).GetAwaiter().GetResult();
        }