コード例 #1
0
 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);
     }
 }
コード例 #2
0
        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"));
            }
        }