Example #1
0
 private static void OnListArticles(object?sender, ListArticlesEventArgs e)
 {
     if (e.HttpRequest.Query.ContainsKey("category"))
     {
         using var db = new BloggingContext();
         var category = db.Categories.Single(c => c.Slug == e.HttpRequest.Query["category"].ToString());
         e.Query = e.Query.Where(a => a.ArticleCategories.Any(ac => ac.CategoryId == category.Id));
     }
 }
        public PagedResult <ArticleDataModel> Get(int page = 1)
        {
            var query = _db.Articles
                        .Include(a => a.Author)
                        .Include(a => a.ArticleCategories)
                        .ThenInclude(ac => ac.Category)
                        .Include(a => a.CommentCollection)
                        .ThenInclude(cc => cc.Comments)
                        .OrderByDescending(a => a.Timestamp)
                        .AsQueryable();
            var listArticlesEventArgs = new ListArticlesEventArgs {
                HttpRequest = HttpContext.Request, Query = query
            };

            Events.OnListArticles(listArticlesEventArgs);
            return(listArticlesEventArgs.Query.GetPaged(page, 4, article => new ArticleDataModel(article)));
        }