Task <ArticleViewData> IArticleStorage.GetViewDataAsync(int id) { return(base.ConnectAsync <ArticleViewData>(async conn => { var data = new ArticleViewData(); string sql = $@"SELECT TOP 1 *, ISNULL((select top 1 text from type where typeid = a.typeid), '') as typetext FROM article a "; var model = await conn.QueryFirstOrDefaultAsync <Article>(sql + " WHERE id = @id", new { id }); if (model != null) { var param = new { model.created, model.typeid }; data.Previous = await conn.QueryFirstOrDefaultAsync <Article>(sql + " WHERE created < @created and typeid = @typeid", param); data.Next = await conn.QueryFirstOrDefaultAsync <Article>(sql + " WHERE created > @created and typeid = @typeid", param); } sql = $@"SELECT TOP 6 *, ISNULL((select top 1 text from type where typeid = a.typeid), '') as typetext FROM article a "; //热点 data.HotList = await conn.QueryAsync <Article>(sql + " WHERE ishot = 1 order by created desc"); //最新 data.NewList = await conn.QueryAsync <Article>(sql + " WHERE isnew = 1 order by created desc"); //推荐 data.ShowList = await conn.QueryAsync <Article>(sql + " WHERE isshow = 1 order by created desc"); return data; })); }
// GET: /KnowledgeBase/Article/id/title/ public ActionResult Article(int?id, string Title) { ArticleViewData knowledgeData = new ArticleViewData(); knowledgeData.KnowledgeArticle = knowledgeDB.KnowledgeArticles.Find(id); knowledgeData.KnowledgeCategories = knowledgeDB.KnowledgeCategories.OrderBy(c => c.Name).Where(c => c.KnowledgeArticles.Count > 0).ToList(); ViewBag.currentCategoryID = knowledgeData.KnowledgeArticle.CategoryId; return(View(knowledgeData)); }
// // GET: /KnowledgeBase/ public ActionResult Index() { ArticleViewData knowledgeData = new ArticleViewData(); knowledgeData.KnowledgeCategories = knowledgeDB.KnowledgeCategories.OrderBy(c => c.Name).Where(c => c.KnowledgeArticles.Count > 0).ToList(); knowledgeData.Articles = knowledgeDB.KnowledgeArticles.Where(c => c.Hidden == false).OrderByDescending(c => c.DateModified).Take(10).ToList(); ViewBag.noCategoryClass = "active"; return(View(knowledgeData)); }
public ActionResult Search(string searchTerm) { ViewBag.SearchTerm = searchTerm; string[] terms = searchTerm.Split(' '); ArticleViewData searchData = new ArticleViewData(); searchData.KnowledgeCategories = knowledgeDB.KnowledgeCategories.OrderBy(c => c.Name).Where(c => c.KnowledgeArticles.Count > 0).ToList(); searchData.Articles = knowledgeDB.KnowledgeArticles.MultiValueContainsAny(terms, s => s.Title).ToList(); return(View(searchData)); }
// GET: /KnowledgeBase/category/id/categoryname public ActionResult Category(int?id, string categoryName) { ArticleViewData knowledgeData = new ArticleViewData(); knowledgeData.KnowledgeCategories = knowledgeDB.KnowledgeCategories.OrderBy(c => c.Name).Where(c => c.KnowledgeArticles.Count > 0).ToList(); knowledgeData.Articles = knowledgeDB.KnowledgeArticles.Where(c => c.CategoryId == id).ToList(); knowledgeData.CurrentCategory = knowledgeDB.KnowledgeCategories.Single(c => c.KnowledgeCategoryId == id); ViewBag.currentCategoryId = id; return(View(knowledgeData)); }