public async Task <List <Blog> > GetBlogsAsync(BlogSearchRequest obj) { var blogsQueryable = db.Blogs .AsNoTracking() .Include(x => x.BlogsTags) .ThenInclude(x => x.Tag) .OrderByDescending(x => x.CreatedAt) .AsQueryable(); if (obj.Tag != null && !String.IsNullOrEmpty(obj.Tag)) { blogsQueryable = blogsQueryable.Where(x => x.BlogsTags.Select(c => c.Tag.Name).Contains(obj.Tag)); } var listOfBlogs = await blogsQueryable.ToListAsync(); var returnObjectBlogs = new List <Blog>(); foreach (var dbBlog in listOfBlogs) { var ConvertedBlog = MapBlogWithTags(dbBlog); returnObjectBlogs.Add(ConvertedBlog); } return(returnObjectBlogs); }
public async Task <ActionResult <List <Blog> > > GetBlogs([FromQuery] BlogSearchRequest obj) { var result = await blogService.GetBlogsAsync(obj); return(Ok(result)); }