コード例 #1
0
        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());
        }
コード例 #2
0
ファイル: Event.cs プロジェクト: JackRus/GlobalEvent
        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();
        }
コード例 #3
0
        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());
        }