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"));
        }
Example #2
0
        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));
        }