public ActionResult AjaxQuery(AwardQuery query)
        {
            long activityID = Convert.ToInt64(Request.Form["ActivityID"]);
            var  awardtypes = Service.Select(new AwardTypeQuery()
            {
                ActivityID = activityID,
                OwnerID    = OwnerID,
                Take       = PageSize,
            }).ToArray();

            if (!awardtypes.Any())
            {
                ViewData["Pagination"] = Pagination.FromQuery(query);
                ViewData["Query"]      = query;
                return(PartialView("Award/AwardList"));
            }
            else
            {
                query.Take           = query.Take ?? PageSize;
                query.OrderField     = query.OrderField ?? "LastModifiedAt";
                query.OrderDirection = query.OrderDirection ?? OrderDirection.Desc;
                query.AwardTypeIDs   = awardtypes.Select(o => o.ID).OfType <long>().ToArray();
                var initList = Service.Select(query).ToArray();
                initList = initList.Select(o =>
                {
                    o.AwardType = awardtypes.FirstOrDefault(p => p.ID == o.AwardTypeID);
                    return(o);
                }).ToArray();
                var pro = Pagination.FromQuery(query);
                ViewData["Pagination"] = pro;
                ViewData["Query"]      = query;
                return(PartialView("Award/AwardList", initList));
            }
        }
        public ActionResult Index(long activityID)
        {
            ViewBag.ActivityID = activityID;
            var query = new AwardQuery()
            {
                Take           = PageSize,
                OrderField     = "LastModifiedAt",
                OrderDirection = OrderDirection.Desc,
            };
            var awardtypes = Service.Select(new AwardTypeQuery()
            {
                ActivityID = activityID,
                OwnerID    = OwnerID,
                Take       = PageSize,
            }).ToArray();

            if (!awardtypes.Any())
            {
                var pro = Pagination.FromQuery(query);
                ViewData["Pagination"] = pro;
                ViewData["Query"]      = query;
                return(View());
            }
            else
            {
                query.Take           = query.Take ?? PageSize;
                query.OrderField     = query.OrderField ?? "LastModifiedAt";
                query.OrderDirection = query.OrderDirection ?? OrderDirection.Desc;
                query.AwardTypeIDs   = awardtypes.Select(o => o.ID).OfType <long>().ToArray();
                var initList = Service.Select(query).ToArray();
                initList = initList.Select(o =>
                {
                    o.AwardType = awardtypes.FirstOrDefault(p => p.ID == o.AwardTypeID);
                    return(o);
                }).ToArray();
                var pro = Pagination.FromQuery(query);
                ViewData["Pagination"] = pro;
                ViewData["Query"]      = query;
                return(View(initList));
            }
        }