Example #1
0
        public virtual ActionResult DataTable(string term = "", int page = 0, int count = 10,
                                              Order order = Order.Descending, ArticleOrderBy orderBy = ArticleOrderBy.Date,
                                              ArticleSearchBy searchBy = ArticleSearchBy.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 = "Order", Text = "ترتیب"
                }
            };

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


            IList <ArticleDataTableModel> model = _articleService.GetDataTable(term, page, count, order, orderBy,
                                                                               searchBy);


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


            return(PartialView(MVC.Admin.Article.Views._DataTable, model));
        }
Example #2
0
        public virtual ActionResult DataTable(string term = "", int page = 0, int count = 10,
            Order order = Order.Descending, ArticleOrderBy orderBy = ArticleOrderBy.Date,
            ArticleSearchBy searchBy = ArticleSearchBy.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 = "Order", Text = "ترتیب"}
            };

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


            IList<ArticleDataTableModel> model = _articleService.GetDataTable(term, page, count, order, orderBy,
                searchBy);


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


            return PartialView(MVC.Admin.Article.Views._DataTable, model);
        }
Example #3
0
        public IList <ArticleDataTableModel> GetDataTable(string term, int page, int count, Order order,
                                                          ArticleOrderBy orderBy, ArticleSearchBy searchBy)
        {
            IQueryable <Article> selectedArticles = _articles.AsQueryable();

            if (!string.IsNullOrEmpty(term))
            {
                switch (searchBy)
                {
                case ArticleSearchBy.Title:
                    selectedArticles = selectedArticles.Where(article => article.Title.Contains(term)).AsQueryable();
                    break;

                case ArticleSearchBy.UserName:
                    selectedArticles =
                        selectedArticles.Where(article => article.User.UserName.Contains(term)).AsQueryable();
                    break;
                }
            }

            if (order == Order.Asscending)
            {
                switch (orderBy)
                {
                case ArticleOrderBy.Title:
                    selectedArticles = selectedArticles.OrderBy(article => article.Title).AsQueryable();
                    break;

                case ArticleOrderBy.Date:
                    selectedArticles = selectedArticles.OrderBy(article => article.CreatedDate).AsQueryable();
                    break;

                case ArticleOrderBy.CommentCount:
                    selectedArticles = selectedArticles.OrderBy(article => article.Comments.Count).AsQueryable();
                    break;

                case ArticleOrderBy.Status:
                    selectedArticles = selectedArticles.OrderBy(article => article.Status).AsQueryable();
                    break;

                case ArticleOrderBy.UserName:
                    selectedArticles = selectedArticles.OrderBy(article => article.User.UserName).AsQueryable();
                    break;

                case ArticleOrderBy.Order:
                    selectedArticles = selectedArticles.OrderBy(article => article.Category.Order).AsQueryable();
                    break;
                }
            }
            else
            {
                switch (orderBy)
                {
                case ArticleOrderBy.Title:
                    selectedArticles = selectedArticles.OrderByDescending(article => article.Title).AsQueryable();
                    break;

                case ArticleOrderBy.Date:
                    selectedArticles =
                        selectedArticles.OrderByDescending(article => article.CreatedDate).AsQueryable();
                    break;

                case ArticleOrderBy.CommentCount:
                    selectedArticles =
                        selectedArticles.OrderByDescending(article => article.Comments.Count).AsQueryable();
                    break;

                case ArticleOrderBy.Status:
                    selectedArticles = selectedArticles.OrderByDescending(article => article.Status).AsQueryable();
                    break;

                case ArticleOrderBy.UserName:
                    selectedArticles =
                        selectedArticles.OrderByDescending(article => article.User.UserName).AsQueryable();
                    break;

                case ArticleOrderBy.Order:
                    selectedArticles =
                        selectedArticles.OrderByDescending(article => article.Category.Order).AsQueryable();
                    break;
                }
            }

            return(selectedArticles.Select(article => new ArticleDataTableModel
            {
                ArticleId = article.Id,
                ArticleStatus = article.Status,
                CommentStatus = article.CommentStatus,
                LikeCount = article.LikeCount,
                Title = article.Title,
                UserId = article.User.Id,
                UserName = article.User.UserName,
                VisitedCount = article.VisitedCount,
                CategoryId = article.Category.Id,
                CategoryName = article.Category.Name
            }).Skip(page * count).Take(count).ToList());
        }
        /// <summary>
        /// 根据QueryString生成查询对象
        /// </summary>
        /// <param name="queryString"></param>
        /// <returns></returns>
        public static ArticleQuery GetQueryFromQueryString(NameValueCollection queryString)
        {
            ArticleQuery result = new ArticleQuery();

            if (!string.IsNullOrEmpty(queryString["title"]))
            {
                result.Title = queryString["title"];
            }

            if (!string.IsNullOrEmpty(queryString["cat"]))
            {
                string catStr = queryString["cat"];
                if (catStr != "-1")
                {
                    result.CategoryID = int.Parse(catStr);
                }
            }

            if (!string.IsNullOrEmpty(queryString["hst"]))
            {
                result.HitStartTimes = int.Parse(queryString["hst"]);
            }

            if (!string.IsNullOrEmpty(queryString["het"]))
            {
                result.HitEndTimes = int.Parse(queryString["het"]);
            }

            if (!string.IsNullOrEmpty(queryString["cst"]))
            {
                result.CreateStartTime = DateTime.Parse(queryString["cst"]);
            }

            if (!string.IsNullOrEmpty(queryString["cet"]))
            {
                result.CreateEndTime = DateTime.Parse(queryString["cet"]);
            }

            // OrderBy
            try
            {
                ArticleOrderBy sortBy = (ArticleOrderBy)Enum.Parse(typeof(ArticleOrderBy), GlobalSettings.IsNullOrEmpty(queryString["sb"]) ? "1" : int.Parse(queryString["sb"]).ToString(), true);
                result.ArticleOrderBy = sortBy;
            }
            catch
            {
                result.ArticleOrderBy = ArticleOrderBy.CreateTime;
            }

            // Sort Order
            try
            {
                SortOrder sortOrder = (SortOrder)Enum.Parse(typeof(SortOrder), GlobalSettings.IsNullOrEmpty(queryString["so"]) ? "1" : int.Parse(queryString["so"]).ToString(), true);
                result.SortOrder = sortOrder;
            }
            catch
            {
                result.SortOrder = SortOrder.Descending;
            }

            return(result);
        }
Example #5
0
        public IList<ArticleDataTableModel> GetDataTable(string term, int page, int count, Order order,
            ArticleOrderBy orderBy, ArticleSearchBy searchBy)
        {
            IQueryable<Article> selectedArticles = _articles.AsQueryable();

            if (!string.IsNullOrEmpty(term))
            {
                switch (searchBy)
                {
                    case ArticleSearchBy.Title:
                        selectedArticles = selectedArticles.Where(article => article.Title.Contains(term)).AsQueryable();
                        break;
                    case ArticleSearchBy.UserName:
                        selectedArticles =
                            selectedArticles.Where(article => article.User.UserName.Contains(term)).AsQueryable();
                        break;
                }
            }

            if (order == Order.Asscending)
            {
                switch (orderBy)
                {
                    case ArticleOrderBy.Title:
                        selectedArticles = selectedArticles.OrderBy(article => article.Title).AsQueryable();
                        break;
                    case ArticleOrderBy.Date:
                        selectedArticles = selectedArticles.OrderBy(article => article.CreatedDate).AsQueryable();
                        break;
                    case ArticleOrderBy.CommentCount:
                        selectedArticles = selectedArticles.OrderBy(article => article.Comments.Count).AsQueryable();
                        break;
                    case ArticleOrderBy.Status:
                        selectedArticles = selectedArticles.OrderBy(article => article.Status).AsQueryable();
                        break;
                    case ArticleOrderBy.UserName:
                        selectedArticles = selectedArticles.OrderBy(article => article.User.UserName).AsQueryable();
                        break;
                    case ArticleOrderBy.Order:
                        selectedArticles = selectedArticles.OrderBy(article => article.Category.Order).AsQueryable();
                        break;
                }
            }
            else
            {
                switch (orderBy)
                {
                    case ArticleOrderBy.Title:
                        selectedArticles = selectedArticles.OrderByDescending(article => article.Title).AsQueryable();
                        break;
                    case ArticleOrderBy.Date:
                        selectedArticles =
                            selectedArticles.OrderByDescending(article => article.CreatedDate).AsQueryable();
                        break;
                    case ArticleOrderBy.CommentCount:
                        selectedArticles =
                            selectedArticles.OrderByDescending(article => article.Comments.Count).AsQueryable();
                        break;
                    case ArticleOrderBy.Status:
                        selectedArticles = selectedArticles.OrderByDescending(article => article.Status).AsQueryable();
                        break;
                    case ArticleOrderBy.UserName:
                        selectedArticles =
                            selectedArticles.OrderByDescending(article => article.User.UserName).AsQueryable();
                        break;
                    case ArticleOrderBy.Order:
                        selectedArticles =
                            selectedArticles.OrderByDescending(article => article.Category.Order).AsQueryable();
                        break;
                }
            }

            return selectedArticles.Select(article => new ArticleDataTableModel
            {
                ArticleId = article.Id,
                ArticleStatus = article.Status,
                CommentStatus = article.CommentStatus,
                LikeCount = article.LikeCount,
                Title = article.Title,
                UserId = article.User.Id,
                UserName = article.User.UserName,
                VisitedCount = article.VisitedCount,
                CategoryId = article.Category.Id,
                CategoryName = article.Category.Name
            }).Skip(page * count).Take(count).ToList();
        }