public IEnumerable <GroupsViewModel> GetDataTable(out int total, string term, int page, Order order, GroupsSearchBy slectionSearchBy, int count = 10) { var selectedobj = _Groups .Include(x => x.Professors) .AsNoTracking().AsQueryable(); if (!string.IsNullOrEmpty(term)) { switch (slectionSearchBy) { case GroupsSearchBy.Manager: selectedobj = selectedobj.Where(a => a.Manager.Contains(term)).AsQueryable(); break; case GroupsSearchBy.Name: selectedobj = selectedobj.Where(a => a.Name.Contains(term)).AsQueryable(); break; } } if (order == Order.Asscending) { selectedobj = selectedobj.OrderBy(x => x.Id).AsQueryable(); } else { selectedobj = selectedobj.OrderByDescending(x => x.Id).AsQueryable(); } var totalQuery = selectedobj.FutureCount(); var query = selectedobj.Skip((page - 1) * count).Take(count) .Select(a => new GroupsViewModel { Id = a.Id, Manager = a.Manager, Name = a.Name, Professors = a.Professors }).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, GroupsSearchBy objSearchBy = GroupsSearchBy.Name) { //#region Retrive Data int total; var articles = _GroupsService.GetDataTable(out total, term, page, order, objSearchBy, count); var model = new GroupsListVM { Order = order, PageCount = count, PageNumber = page, GroupsList = articles, Term = term, TotalGroups = total }; ViewBag.CountList = DropDown.GetCountList(count); ViewBag.OrderList = DropDown.GetOrderList(order); return(PartialView("_ListPartial", model)); }