public virtual ActionResult List(string term = "", int page = 1, int count = 10, Order order = Order.Descending, ElectionSearchBy objSearchBy = ElectionSearchBy.Score, ElectionOrderBy objOrderBy = ElectionOrderBy.Id) { //#region Retrive Data int total; var articles = _ElectionService.GetDataTable(out total, term, page, order, objSearchBy, objOrderBy, count); var model = new ElectionListVM { Order = order, PageCount = count, PageNumber = page, ElectionList = articles, Term = term, TotalElections = total }; ViewBag.CountList = DropDown.GetCountList(count); ViewBag.OrderList = DropDown.GetOrderList(order); return(PartialView("_ListPartial", model)); }
public IEnumerable <ElectionViewModel> GetDataTable(out int total, string term, int page, Order order, ElectionSearchBy slectionSearchBy, ElectionOrderBy slectionOrderBy, int count = 10) { var selectedobj = _Election .Include(x => x.PeresentedCource) .Include(x => x.Student) .AsNoTracking().AsQueryable(); if (!string.IsNullOrEmpty(term)) { switch (slectionSearchBy) { case ElectionSearchBy.Peresented_Cource_Name: selectedobj = selectedobj.Where(a => a.PeresentedCource.Course.Name.Contains(term)).AsQueryable(); break; case ElectionSearchBy.Score: selectedobj = selectedobj.Where(a => a.Score == Convert.ToDecimal(term)).AsQueryable(); break; case ElectionSearchBy.StudentName: selectedobj = selectedobj.Where(a => a.Student.FirstName.Contains(term) || a.Student.LastName.Contains(term)).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 ElectionViewModel { Id = a.Id, Score = a.Score, PeresentedCource = a.PeresentedCource, Student = a.Student }).Future(); total = totalQuery.Value; var categories = query.ToList(); return(categories); }