示例#1
0
        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));
        }