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