コード例 #1
0
        public IEnumerable <ScoreViewModel> GetDataTableForScore(out int total, string term, int page,
                                                                 Order order, ScoreStateType slectionSearchBy, ElectionOrderBy slectionOrderBy, long professor_id, int count = 10)
        {
            var selectedobj = _Election
                              .Include(x => x.PeresentedCource)
                              .Include(x => x.Student)
                              .Where(x => x.PeresentedCource.Professor.Id == professor_id)
                              .AsNoTracking().AsQueryable();

            if (!string.IsNullOrEmpty(term))
            {
                switch (slectionSearchBy)
                {
                case ScoreStateType.NotScore:
                    selectedobj = selectedobj.Where(a => !a.Score.HasValue).AsQueryable(); break;

                case ScoreStateType.Score:
                    selectedobj = selectedobj.Where(a => a.Score.HasValue).AsQueryable(); break;
                }
            }
            if (order == Order.Asscending)
            {
                switch (slectionOrderBy)
                {
                case ElectionOrderBy.Id:
                    selectedobj = selectedobj.OrderBy(x => x.Id).AsQueryable(); break;

                case ElectionOrderBy.Score:
                    selectedobj = selectedobj.OrderBy(x => x.Score).AsQueryable(); break;
                }
            }
            else
            {
                switch (slectionOrderBy)
                {
                case ElectionOrderBy.Id:
                    selectedobj = selectedobj.OrderByDescending(x => x.Id).AsQueryable(); break;

                case ElectionOrderBy.Score:
                    selectedobj = selectedobj.OrderByDescending(x => x.Score).AsQueryable(); break;
                }
            }

            var totalQuery = selectedobj.FutureCount();
            var query      = selectedobj.Skip((page - 1) * count).Take(count)
                             .Select(a => new ScoreViewModel
            {
                Id               = a.Id,
                Score            = a.Score,
                PeresentedCource = a.PeresentedCource,
                Student          = a.Student
            }).Future();

            total = totalQuery.Value;
            var categories = query.ToList();

            return(categories);
        }
コード例 #2
0
        public virtual ActionResult List(string term = "", int page = 1, int count = 10,
                                         Order order = Order.Descending, ScoreStateType objSearchBy = ScoreStateType.Score,
                                         ElectionOrderBy objOrderBy = ElectionOrderBy.Id)
        {
            string    userName = HttpContext.User.Identity.Name;
            Professor pro      = _ProfessorService.GetByUserId(_UserService.GetUserByUserName(userName).Id);
            //#region Retrive Data
            int total;
            var articles = _ElectionService.GetDataTableForScore(out total, term, page, order,
                                                                 objSearchBy, objOrderBy, pro.Id, count);
            var model = new ScoreListVM
            {
                Order          = order,
                PageCount      = count,
                PageNumber     = page,
                ScoreList      = articles,
                Term           = term,
                TotalElections = total
            };

            ViewBag.CountList = DropDown.GetCountList(count);
            ViewBag.OrderList = DropDown.GetOrderList(order);
            return(PartialView("_ListPartial", model));
        }