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); }
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)); }