示例#1
0
        public virtual ActionResult DataTable(string term = "", int page = 0, int count = 10,
            Order order = Order.Asscending, LabelOrderBy orderBy = LabelOrderBy.Id,
            LabelSearchBy searchBy = LabelSearchBy.Name)
        {
            ViewBag.CurrentPage = page;

            ViewBag.Count = count;

            ViewBag.TERM = term;
            ViewBag.PAGE = page;
            ViewBag.COUNT = count;
            ViewBag.ORDER = order;
            ViewBag.ORDERBY = orderBy;
            ViewBag.SEARCHBY = searchBy;

            var selectListOrderBy = new List<SelectListItem>
            {
                new SelectListItem {Text = "تاریخ", Value = "Id"},
                new SelectListItem {Text = "نام", Value = "Name"},
                new SelectListItem {Text = "توضیحات", Value = "Description"},
                new SelectListItem {Text = "تعداد پست ها", Value = "PostCount"}
            };


            ViewBag.OrderByItems = new SelectList(selectListOrderBy, "Value", "Text", orderBy);

            ViewBag.OrderByList = DropDownList.OrderList(order);

            ViewBag.CountList = DropDownList.CountList(count);

            IList<LabelDataTableModel> model = _labelService.GetAll(term, page, count, order, orderBy, searchBy);

            ViewBag.TotalRecords = (string.IsNullOrEmpty(term)) ? _labelService.Count : model.Count;

            return PartialView(MVC.Admin.Label.Views._DataTable, model);
        }
示例#2
0
        public virtual ActionResult DataTable(string term            = "", int page = 0, int count = 10,
                                              Order order            = Order.Asscending, LabelOrderBy orderBy = LabelOrderBy.Id,
                                              LabelSearchBy searchBy = LabelSearchBy.Name)
        {
            ViewBag.CurrentPage = page;

            ViewBag.Count = count;

            ViewBag.TERM     = term;
            ViewBag.PAGE     = page;
            ViewBag.COUNT    = count;
            ViewBag.ORDER    = order;
            ViewBag.ORDERBY  = orderBy;
            ViewBag.SEARCHBY = searchBy;

            var selectListOrderBy = new List <SelectListItem>
            {
                new SelectListItem {
                    Text = "تاریخ", Value = "Id"
                },
                new SelectListItem {
                    Text = "نام", Value = "Name"
                },
                new SelectListItem {
                    Text = "توضیحات", Value = "Description"
                },
                new SelectListItem {
                    Text = "تعداد دانشنامه ها", Value = "PostCount"
                }
            };


            ViewBag.OrderByItems = new SelectList(selectListOrderBy, "Value", "Text", orderBy);

            ViewBag.OrderByList = DropDownList.OrderList(order);

            ViewBag.CountList = DropDownList.CountList(count);

            IList <LabelDataTableModel> model = _labelService.GetAll(term, page, count, order, orderBy, searchBy);

            ViewBag.TotalRecords = (string.IsNullOrEmpty(term)) ? _labelService.Count : model.Count;

            return(PartialView(MVC.Admin.Label.Views._DataTable, model));
        }
示例#3
0
        public IList<LabelDataTableModel> GetAll(string term, int page, int count, Order order, LabelOrderBy orderBy,
            LabelSearchBy searchBy)
        {
            IQueryable<Label> selectedLabels = _labels.Include(label => label.Posts).AsQueryable();

            if (!string.IsNullOrEmpty(term))
            {
                switch (searchBy)
                {
                    case LabelSearchBy.Name:
                        selectedLabels = selectedLabels.Where(label => label.Name.Contains(term)).AsQueryable();
                        break;
                    case LabelSearchBy.Description:
                        selectedLabels = selectedLabels.Where(label => label.Description.Contains(term)).AsQueryable();
                        break;
                    default:
                        break;
                }
            }


            if (order == Order.Asscending)
            {
                switch (orderBy)
                {
                    case LabelOrderBy.Id:
                        selectedLabels = selectedLabels.OrderBy(label => label.Id).AsQueryable();
                        break;
                    case LabelOrderBy.Name:
                        selectedLabels = selectedLabels.OrderBy(label => label.Name).AsQueryable();
                        break;
                    case LabelOrderBy.Description:
                        selectedLabels = selectedLabels.OrderBy(label => label.Description).AsQueryable();
                        break;
                    case LabelOrderBy.PostCount:
                        selectedLabels = selectedLabels.OrderBy(label => label.Posts.Count).AsQueryable();
                        break;
                    default:
                        break;
                }
            }
            else
            {
                switch (orderBy)
                {
                    case LabelOrderBy.Id:
                        selectedLabels = selectedLabels.OrderByDescending(label => label.Id).AsQueryable();
                        break;
                    case LabelOrderBy.Name:
                        selectedLabels = selectedLabels.OrderByDescending(label => label.Name).AsQueryable();
                        break;
                    case LabelOrderBy.Description:
                        selectedLabels = selectedLabels.OrderByDescending(label => label.Description).AsQueryable();
                        break;
                    case LabelOrderBy.PostCount:
                        selectedLabels = selectedLabels.OrderByDescending(label => label.Posts.Count).AsQueryable();
                        break;
                    default:
                        break;
                }
            }
            return
                selectedLabels.Skip(page * count)
                    .Take(count)
                    .Select(
                        label =>
                            new LabelDataTableModel
                            {
                                Id = label.Id,
                                Name = label.Name,
                                Description = label.Description,
                                PostCount = label.Posts.Count
                            })
                    .ToList();
        }
示例#4
0
        public IList <LabelDataTableModel> GetAll(string term, int page, int count, Order order, LabelOrderBy orderBy,
                                                  LabelSearchBy searchBy)
        {
            IQueryable <Label> selectedLabels = _labels.Include(label => label.Posts).AsQueryable();

            if (!string.IsNullOrEmpty(term))
            {
                switch (searchBy)
                {
                case LabelSearchBy.Name:
                    selectedLabels = selectedLabels.Where(label => label.Name.Contains(term)).AsQueryable();
                    break;

                case LabelSearchBy.Description:
                    selectedLabels = selectedLabels.Where(label => label.Description.Contains(term)).AsQueryable();
                    break;

                default:
                    break;
                }
            }


            if (order == Order.Asscending)
            {
                switch (orderBy)
                {
                case LabelOrderBy.Id:
                    selectedLabels = selectedLabels.OrderBy(label => label.Id).AsQueryable();
                    break;

                case LabelOrderBy.Name:
                    selectedLabels = selectedLabels.OrderBy(label => label.Name).AsQueryable();
                    break;

                case LabelOrderBy.Description:
                    selectedLabels = selectedLabels.OrderBy(label => label.Description).AsQueryable();
                    break;

                case LabelOrderBy.PostCount:
                    selectedLabels = selectedLabels.OrderBy(label => label.Posts.Count).AsQueryable();
                    break;

                default:
                    break;
                }
            }
            else
            {
                switch (orderBy)
                {
                case LabelOrderBy.Id:
                    selectedLabels = selectedLabels.OrderByDescending(label => label.Id).AsQueryable();
                    break;

                case LabelOrderBy.Name:
                    selectedLabels = selectedLabels.OrderByDescending(label => label.Name).AsQueryable();
                    break;

                case LabelOrderBy.Description:
                    selectedLabels = selectedLabels.OrderByDescending(label => label.Description).AsQueryable();
                    break;

                case LabelOrderBy.PostCount:
                    selectedLabels = selectedLabels.OrderByDescending(label => label.Posts.Count).AsQueryable();
                    break;

                default:
                    break;
                }
            }
            return
                (selectedLabels.Skip(page * count)
                 .Take(count)
                 .Select(
                     label =>
                     new LabelDataTableModel
            {
                Id = label.Id,
                Name = label.Name,
                Description = label.Description,
                PostCount = label.Posts.Count
            })
                 .ToList());
        }