public async Task <IActionResult> CheckOut(Guid venueId) { var venueCheckOutViewModel = new VenueCheckOutViewModel(); try { var venueDb = this._venueService.GetVenueById(venueId); var userHasCheckedOut = this._venueService.UserHasCheckedOut(venueDb, await GetUserIdAsync()); if (userHasCheckedOut) { throw new Exception("User hae already checked out"); } if (venueDb == null) { throw new Exception("Venue was not found"); } venueCheckOutViewModel.VenueId = venueDb.Id; var venueViewModel = new VenueViewModel { Name = venueDb.Name, Email = venueDb.Email, Telephone = venueDb.Telephone, Address = venueDb.Address, Capacity = venueDb.Capacity }; venueCheckOutViewModel.VenueDetails = venueViewModel; } catch (System.Exception ex) { _logger.LogError("Error", ex.Message); ModelState.AddModelError("Error", ex.Message); } return(View(venueCheckOutViewModel)); }