public virtual ActionResult DataTable(string term = "", int page = 0, int count = 10, Order order = Order.Descending, PageOrderBy orderBy = PageOrderBy.ParentTitle, PageSearchBy searchBy = PageSearchBy.Title) { ViewBag.CurrentPage = page; ViewBag.Count = count; ViewBag.TERM = term; ViewBag.PAGE = page; ViewBag.COUNT = count; ViewBag.ORDER = order; ViewBag.ORDERBY = orderBy; ViewBag.SEARCHBY = searchBy; ViewBag.OrderByList = DropDownList.OrderList(order); ViewBag.CountList = DropDownList.CountList(count); var selectListOrderBy = new List<SelectListItem> { new SelectListItem {Value = "Date", Text = "تاریخ ارسال"}, new SelectListItem {Value = "Title", Text = "عنوان"}, new SelectListItem {Value = "CommentCount", Text = "تعداد دیدگاه"}, new SelectListItem {Value = "UserName", Text = "نام کاربری"}, new SelectListItem {Value = "ParentTitle", Text = "مادر"} }; ViewBag.OrderByItems = new SelectList(selectListOrderBy, "Value", "Text", orderBy); IList<PageDataTableModel> model = _pageSerivce.GetDataTable(term, page, count, order, orderBy, searchBy); ViewBag.TotalRecords = (string.IsNullOrEmpty(term)) ? _pageSerivce.Count : model.Count; return PartialView(MVC.Admin.Page.Views._DataTable, model); }
public IList<PageDataTableModel> GetDataTable(string term, int page, int count, Order order, PageOrderBy orderBy, PageSearchBy searchBy) { IQueryable<Page> selectedPages = _pages.Include(Page => Page.Comments).Include(Page => Page.User).AsQueryable(); // page in lambda expression changed to Page, because it confilicts with page Parameter if (!string.IsNullOrEmpty(term)) { switch (searchBy) { case PageSearchBy.Title: selectedPages = selectedPages.Where(Page => Page.Title.Contains(term)).AsQueryable(); break; case PageSearchBy.UserName: selectedPages = selectedPages.Where(Page => Page.User.UserName.Contains(term)).AsQueryable(); break; case PageSearchBy.ParentTitle: selectedPages = selectedPages.Where(Page => Page.Parent.Title.Contains(term)).AsQueryable(); break; default: break; } } if (order == Order.Asscending) { switch (orderBy) { case PageOrderBy.Title: selectedPages = selectedPages.OrderBy(Page => Page.Title).AsQueryable(); break; case PageOrderBy.Date: selectedPages = selectedPages.OrderBy(Page => Page.CreatedDate).AsQueryable(); break; case PageOrderBy.CommentCount: selectedPages = selectedPages.OrderBy(Page => Page.Comments.Count).AsQueryable(); break; case PageOrderBy.Status: break; case PageOrderBy.UserName: selectedPages = selectedPages.OrderBy(Page => Page.User.UserName).AsQueryable(); break; case PageOrderBy.ParentTitle: selectedPages = selectedPages.OrderBy(Page => Page.CreatedDate).OrderBy(Page => Page.Parent.Title) .AsQueryable(); break; default: break; } } else { switch (orderBy) { case PageOrderBy.Title: selectedPages = selectedPages.OrderByDescending(Page => Page.Title).AsQueryable(); break; case PageOrderBy.Date: selectedPages = selectedPages.OrderByDescending(Page => Page.CreatedDate).AsQueryable(); break; case PageOrderBy.CommentCount: selectedPages = selectedPages.OrderByDescending(Page => Page.Comments.Count).AsQueryable(); break; case PageOrderBy.Status: break; case PageOrderBy.UserName: selectedPages = selectedPages.OrderByDescending(Page => Page.User.UserName).AsQueryable(); break; case PageOrderBy.ParentTitle: selectedPages = selectedPages.OrderByDescending(Page => Page.CreatedDate).OrderBy(Page => Page.Parent.Title) .AsQueryable(); break; default: break; } } return selectedPages.Select(Page => new PageDataTableModel { CommentCount = Page.Comments.Count, CommentStatus = Page.CommentStatus, CreatedDate = Page.CreatedDate, Id = Page.Id, ParentId = Page.Parent.Id, ParentTitle = Page.Parent.Title, Status = Page.Status, Title = Page.Title, UserId = Page.User.Id, UserName = Page.User.UserName }).Skip(page * count).Take(count).ToList(); }
public IList <PageDataTableModel> GetDataTable(string term, int page, int count, Order order, PageOrderBy orderBy, PageSearchBy searchBy) { IQueryable <Page> selectedPages = _pages.Include(Page => Page.Comments).Include(Page => Page.User).AsQueryable(); // page in lambda expression changed to Page, because it confilicts with page Parameter if (!string.IsNullOrEmpty(term)) { switch (searchBy) { case PageSearchBy.Title: selectedPages = selectedPages.Where(Page => Page.Title.Contains(term)).AsQueryable(); break; case PageSearchBy.UserName: selectedPages = selectedPages.Where(Page => Page.User.UserName.Contains(term)).AsQueryable(); break; case PageSearchBy.ParentTitle: selectedPages = selectedPages.Where(Page => Page.Parent.Title.Contains(term)).AsQueryable(); break; default: break; } } if (order == Order.Asscending) { switch (orderBy) { case PageOrderBy.Title: selectedPages = selectedPages.OrderBy(Page => Page.Title).AsQueryable(); break; case PageOrderBy.Date: selectedPages = selectedPages.OrderBy(Page => Page.CreatedDate).AsQueryable(); break; case PageOrderBy.CommentCount: selectedPages = selectedPages.OrderBy(Page => Page.Comments.Count).AsQueryable(); break; case PageOrderBy.Status: break; case PageOrderBy.UserName: selectedPages = selectedPages.OrderBy(Page => Page.User.UserName).AsQueryable(); break; case PageOrderBy.ParentTitle: selectedPages = selectedPages.OrderBy(Page => Page.CreatedDate).OrderBy(Page => Page.Parent.Title) .AsQueryable(); break; default: break; } } else { switch (orderBy) { case PageOrderBy.Title: selectedPages = selectedPages.OrderByDescending(Page => Page.Title).AsQueryable(); break; case PageOrderBy.Date: selectedPages = selectedPages.OrderByDescending(Page => Page.CreatedDate).AsQueryable(); break; case PageOrderBy.CommentCount: selectedPages = selectedPages.OrderByDescending(Page => Page.Comments.Count).AsQueryable(); break; case PageOrderBy.Status: break; case PageOrderBy.UserName: selectedPages = selectedPages.OrderByDescending(Page => Page.User.UserName).AsQueryable(); break; case PageOrderBy.ParentTitle: selectedPages = selectedPages.OrderByDescending(Page => Page.CreatedDate).OrderBy(Page => Page.Parent.Title) .AsQueryable(); break; default: break; } } return(selectedPages.Select(Page => new PageDataTableModel { CommentCount = Page.Comments.Count, CommentStatus = Page.CommentStatus, CreatedDate = Page.CreatedDate, Id = Page.Id, ParentId = Page.Parent.Id, ParentTitle = Page.Parent.Title, Status = Page.Status, Title = Page.Title, UserId = Page.User.Id, UserName = Page.User.UserName }).Skip(page * count).Take(count).ToList()); }
public virtual ActionResult DataTable(string term = "", int page = 0, int count = 10, Order order = Order.Descending, PageOrderBy orderBy = PageOrderBy.ParentTitle, PageSearchBy searchBy = PageSearchBy.Title) { ViewBag.CurrentPage = page; ViewBag.Count = count; ViewBag.TERM = term; ViewBag.PAGE = page; ViewBag.COUNT = count; ViewBag.ORDER = order; ViewBag.ORDERBY = orderBy; ViewBag.SEARCHBY = searchBy; ViewBag.OrderByList = DropDownList.OrderList(order); ViewBag.CountList = DropDownList.CountList(count); var selectListOrderBy = new List <SelectListItem> { new SelectListItem { Value = "Date", Text = "تاریخ ارسال" }, new SelectListItem { Value = "Title", Text = "عنوان" }, new SelectListItem { Value = "CommentCount", Text = "تعداد دیدگاه" }, new SelectListItem { Value = "UserName", Text = "نام کاربری" }, new SelectListItem { Value = "ParentTitle", Text = "مادر" } }; ViewBag.OrderByItems = new SelectList(selectListOrderBy, "Value", "Text", orderBy); IList <PageDataTableModel> model = _pageSerivce.GetDataTable(term, page, count, order, orderBy, searchBy); ViewBag.TotalRecords = (string.IsNullOrEmpty(term)) ? _pageSerivce.Count : model.Count; return(PartialView(MVC.Admin.Page.Views._DataTable, model)); }