//在TicketGroupsList頁面中Ajax調用這個方法取得活動分頁
        public ActionResult GetTicketGroupsPages(int page = 1, string orderMode = "pricedown", int minPrice = 0, int maxPrice = int.MaxValue, int priceFilter = 0)
        {
            int currentPage = page < 1 ? 1 : page;
            int pageSize    = 4;

            //ViewBag紀錄此Action方法,才能執行正確的換頁
            ViewBag.ActionName = "GetTicketGroupsPages";
            //ViewBag紀錄此OrderMode,因為換頁時也會呼叫此方法
            ViewBag.OrderMode = orderMode;
            List <TicketGroups> ticketgroups = db.TicketGroups.Where(t => t.Status == true).ToList();

            if (priceFilter == 1)
            {
                ViewBag.PriceFilter = 1;
                ViewBag.MinPrice    = minPrice;
                ViewBag.MaxPrice    = maxPrice;

                ticketgroups = ticketgroups.Where(g => Math.Round(g.TicketGroupDetail.Select(
                                                                      tgd => { return(tgd.Activity.Tickets.Count() == 0 ? 0 : tgd.Activity.Tickets.Min(a => a.Price)); }).Sum() * (1 - g.TicketGroupDiscount), 0) >= minPrice &&
                                                  Math.Round(g.TicketGroupDetail.Select(
                                                                 tgd => { return(tgd.Activity.Tickets.Count() == 0 ? 0 : tgd.Activity.Tickets.Min(a => a.Price)); }).Sum() * (1 - g.TicketGroupDiscount), 0) <= maxPrice).ToList();
            }
            ticketgroups = OrderTicketGroupsByOrderMode(ticketgroups, orderMode);
            VMTicketGroupsList vm = new VMTicketGroupsList()
            {
                ticketGroups = ticketgroups
            };
            IPagedList <TicketGroups> pagedList = vm.ticketGroups.ToPagedList(currentPage, pageSize);

            return(PartialView(pagedList));
        }
        // 首頁按下套票後呼叫的Controller
        public ActionResult TicketGroupsList()
        {
            List <TicketGroups> ticketgroups = db.TicketGroups.Where(t => t.Status == true).ToList();
            //if (ticketgroups.Count() == 0) return View("ProductNotFound","_Layout");
            // todo取出套票中各個活動最便宜的票價,然後加總乘以套票的優惠折扣,其中最貴的套票的價錢
            int max = (int)ticketgroups.Max(ticketGroup => Math.Round(ticketGroup.TicketGroupDetail.Select(
                                                                          tgd => { return(tgd.Activity.Tickets.Count() == 0 ? 0 : tgd.Activity.Tickets.Min(t => t.Price)); }).Sum() * (1 - ticketGroup.TicketGroupDiscount), 0));

            VMTicketGroupsList vm = new VMTicketGroupsList()
            {
                ticketGroups  = ticketgroups,
                maxPriceOfAll = max
            };

            return(View(vm));
        }