public IActionResult CheckIn(Guid venueId) { var venueCheckInViewModel = new VenueCheckInViewModel(); try { var venueDb = this._venueService.GetVenueById(venueId); if (venueDb == null) { throw new Exception("venue was not found"); } venueCheckInViewModel.VenueId = venueDb.Id; var venueViewModel = new VenueViewModel { Name = venueDb.Name, Email = venueDb.Email, Telephone = venueDb.Telephone, Address = venueDb.Address, Capacity = venueDb.Capacity }; venueCheckInViewModel.VenueDetails = venueViewModel; } catch (System.Exception ex) { _logger.LogError("Error", ex.Message); ModelState.AddModelError("Error", ex.Message); } return(View(venueCheckInViewModel)); }
public async Task <IActionResult> CheckIn(VenueCheckInViewModel checkIn) { var venueViewModel = new VenueViewModel(); try { var venueDb = this._venueService.GetVenueById(checkIn.VenueId); var currentUser = await GetUserIdAsync(); var venueVisit = new Visit { CheckIn = DateTime.Now, Venue = this._venueService.GetVenueById(checkIn.VenueId), User = currentUser }; var allUserVisits = this._venueService.FindVisitsByUser(currentUser); foreach (var userVisit in allUserVisits) { if (userVisit.CheckOut == DateTime.MinValue || userVisit.CheckOut == null) { checkIn.VenueDetails = new VenueViewModel { Name = venueDb.Name, Address = venueDb.Address, Telephone = venueDb.Telephone, }; throw new Exception($"You have already checked in { userVisit.Venue.Name }"); } } this._venueService.CheckInVisitor(venueVisit); } catch (System.Exception ex) { _logger.LogError("Error", ex.Message); ModelState.AddModelError("Error", ex.Message); return(View(checkIn)); } return(RedirectToAction("Index")); }