public ActionResult Index(ArticleQueryModel model, string Message = null) { ///操作判断开始 if (!string.IsNullOrEmpty(model.Method)) { if (model.Method.Equals("Trash")) { return TrashList(model.ArticleIds); } else if (model.Method.Equals("Edit")) { //return Edit(model.ArticleIds); } else if (model.Method.Equals("UnTrash")) { return UnTrashList(model.ArticleIds); } else if (model.Method.Equals("Delete")) { return DeleteList(model.ArticleIds); } } ViewBag.Message = Message; ///取得每页显示数 int pageSize = int.Parse(_settiongService.GetSetting("AdminArticlePageSize")); model.Page = model.Page <= 0 ? 1 : model.Page; model.PageSize = model.PageSize <= 0 ? pageSize : model.PageSize; ///更新数据库 if (model.PageSize != pageSize) { _settiongService.SetSetting("AdminArticlePageSize", model.PageSize.ToString()); } //构造查询条件 model.PageInfo = _articleService.FindArticlesByQuery(query => BulidQuery(query, model), model.Page, model.PageSize); model.Page = model.PageInfo.PageIndex; ///取得博客数目 model.AllCount = (int)_articleService.GetArticleSingle(qyery => qyery.Where(a => a.Type == ArticleType.Blog).Count()); model.OpenCount = (int)_articleService.GetArticleSingle(qyery => qyery.Where(a => a.Type == ArticleType.Blog && a.Status == ArticleStatus.Open).Count()); model.DeleteCount = (int)_articleService.GetArticleSingle(qyery => qyery.Where(a => a.Type == ArticleType.Blog && a.Status == ArticleStatus.Delete).Count()); ///取得审核评论数目 IDictionary<int, int> VerifyComment = new Dictionary<int, int>(); foreach (Article articel in model.PageInfo) { VerifyComment[articel.ArticleId] = (int)_commentService.GetCommentSingle(query => query.Where(c => c.Article.Type == ArticleType.Blog && c.Article.ArticleId == articel.ArticleId && c.Status == CommentStatus.Verify).Count()); } model.VerifyComment = VerifyComment; ///取得分类与分档 model.MonthCategorys = _categoryService.GetMonthCategory(); model.Categorys = _categoryService.GetAllCategory(); return View("Index", model); }
/// <summary> /// 创建查询表达式 /// </summary> /// <param name="query"></param> /// <param name="model"></param> /// <returns></returns> public IQueryable<Article> BulidQuery(IQueryable<Article> query, ArticleQueryModel model) { ///状态限制 if (model.Status != null) { query = query.Where(a => a.Status == model.Status); } else { query = query.Where(a => a.Status != ArticleStatus.Delete); } ///标题查询 if (!string.IsNullOrEmpty(model.Title)) { query = query.Where(a => a.Title.Contains(model.Title)); } ///分类查询 if (model.Category != null && model.Category > 0) { query = query.Where(a => a.Categorys.Where(c => c.CategoryId == model.Category).Count() > 0); } ///标签查询 if (!string.IsNullOrEmpty(model.Tag)) { query = query.Where(a => a.Categorys.Where(c => c.Name == model.Tag && c.Type == CategoryType.Tag).Count() > 0); } ///分档查询 if (!string.IsNullOrEmpty(model.MonthCategory)) { try { int year = int.Parse(model.MonthCategory.Substring(0, 4)); int month = int.Parse(model.MonthCategory.Substring(4, 2)); query = query.Where(a => a.CreateDate.Year == year && a.CreateDate.Month == month); } catch (Exception) { View("Error"); } } ///开始排序 if (model.OrderBy == ArticleOrder.Title) { if (model.OrderType == OrderType.Asc) { return query.OrderBy(a => a.Title); } else { return query.OrderByDescending(a => a.Title); } } else if (model.OrderBy == ArticleOrder.CommentCount) { if (model.OrderType == OrderType.Asc) { return query.OrderBy(a => a.CommentCount); } else { return query.OrderByDescending(a => a.CommentCount); } } else if (model.OrderBy == ArticleOrder.CreateDate) { if (model.OrderType == OrderType.Asc) { return query.OrderBy(a => a.CreateDate); } else { return query.OrderByDescending(a => a.CreateDate); } } else { return query.OrderByDescending(a => a.CreateDate); } }