public async Task BookAsync(string userId, int accommodationId, BookingDetails details) { try { await breaker.ExecuteAsync(() => innerProxy.BookAsync(userId, accommodationId, details)); } catch (HttpOperationException ex) { throw new RemoteServiceFailedException(ex.StatusCode(), ex); } catch (BrokenCircuitException ex) { throw new RemoteServiceFailedException(ex.StatusCode(), ex); } }
public async Task <IActionResult> Create(CreateBookingViewModel booking) { try { if (ModelState.IsValid) { var details = mapper.MapFrom(booking); await bookingService.BookAsync(booking.FacilityId, booking.AccommodationId, details); return(RedirectToAction("Index")); } var accommodation = await accommodationService.FindAsync(booking.AccommodationId); ViewBag.AccommodationId = accommodation.Id; ViewBag.AccommodationName = accommodation.Details.Name; return(View(booking)); } catch (AccommodationNotFoundException) { return(View("NotFound")); } }