public ActionResult Reserve(EventTicketsViewModel viewModel) { if (viewModel == null || viewModel.NoOfTickets < 1 || viewModel.NoOfTickets > 6) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Event selectedEvent = db.Events.Find(viewModel.SelectedEvent.Id); if (selectedEvent == null) { return(HttpNotFound()); } ApplicationUser user = db.Users.Find(User.Identity.GetUserId()); foreach (Reservation res in user.Reservations) { if (res.Event.Id == selectedEvent.Id) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "You've already made a reservation pal.")); } } if (selectedEvent.EventDate > DateTime.Now) { Reservation newReservation = new Reservation(selectedEvent, user, viewModel.NoOfTickets); selectedEvent.Reservations.Add(newReservation); user.Reservations.Add(newReservation); selectedEvent.CurrentlyReserved += viewModel.NoOfTickets; db.Reservations.Add(newReservation); db.SaveChanges(); } return(RedirectToAction("MyReservations")); }
public async Task <IActionResult> GetEventTickets(int eventId) { EventTicketsViewModel model; Dictionary <Event, List <Ticket> > dic = new Dictionary <Event, List <Ticket> >(); ViewData["Title"] = localizer["ticketsTitle"]; var @event = await eventsService.GetEventById(eventId); var eventTickets = await ticketsService.GetTicketsByEventId(eventId); var eventVenue = await venuesService.GetVenueById(@event.VenueId); var eventCity = await citiesService.GetCityById(eventVenue.CityId); var sellersIdsByEvent = eventTickets.AsEnumerable().Select(et => et.SellerId).ToList(); var sellersOfTicketsByEvent = await usersAndRolesService.GetUsersByListOfId(sellersIdsByEvent); dic.Add(@event, eventTickets); model = new EventTicketsViewModel { eventTickets = dic, Venue = eventVenue, City = eventCity, Sellers = sellersOfTicketsByEvent }; return(View("EventTickets", model)); }
// GET: Events/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Event @event = db.Events.Find(id); EventTicketsViewModel viewModel = new EventTicketsViewModel(@event); if (@event == null) { return(HttpNotFound()); } return(View(viewModel)); }