public async Task <IActionResult> Index(int?ID) //displays all ticket { if (ID == null) { return(RedirectToAction("Events", "Owner")); } // update ticket types with Eventbrite await Ticket_Classes.UpdateEB(_db, (int)ID); // get the current event with all ticket types ViewBag.Event = await _db.Events.Include(x => x.Tickets).SingleOrDefaultAsync(x => x.ID == ID); return(View()); }
public static async Task Update(ApplicationDbContext _db, int ID) { // Update orders await Order.OrderUpdate(_db, ID); await Ticket_Classes.UpdateEB(_db, ID); Event e = await _db.Events .Include(x => x.Tickets) .Include(x => x.Types) .Include(x => x.Orders) .Include(X => X.Visitors) .FirstOrDefaultAsync(x => x.ID == ID); e.RevFact = 0; // Tickets foreach (Ticket t in e.Tickets) { t.Sold = e.Orders .Where(x => x.TicketType == t.Type).Sum(x => x.Amount); t.CheckIned = e.Visitors .Where(x => x.TicketType == t.Type && x.CheckIned).Count(); t.Registered = e.Visitors .Where(x => x.TicketType == t.Type && x.Registered).Count(); e.RevFact += t.Sold * t.Price; } e.TicketsSold = e.Orders.Sum(x => x.Amount); //VTypes foreach (VType v in e.Types) { v.CheckIned = e.Visitors .Where(x => x.Type == v.Name && x.CheckIned && !x.Deleted).Count(); v.Registered = e.Visitors .Where(x => x.Type == v.Name && x.Registered && !x.Deleted).Count(); } _db.Events.Update(e); await _db.SaveChangesAsync(); }
public async Task <IActionResult> SelectTickets(int?ID, int?EID) //product ID { if (ID == null || EID == null) { return(RedirectToAction("Events", "Owner")); } // update tickets with Eventbrite await Ticket_Classes.UpdateEB(_db, (int)EID); // get all tickets for current event ViewBag.Tickets = await _db.Tickets.Where(x => x.EID == EID).OrderBy(x => x.Type).ToListAsync(); // get current product ViewBag.Product = await _db.Products.SingleOrDefaultAsync(x => x.ID == ID); ViewBag.ID = (int)ID; ViewBag.EID = (int)EID; return(View()); }