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 })); }
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(); }
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(); }
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(); }