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))); }