public async Task <IActionResult> GetBlogs([FromQuery] BlogStatuses status = BlogStatuses.Published, [FromQuery] int?primaryAuthorId = null) { //var claims = User.Claims.Select(i => new { i.Type, i.Value }).ToList(); //claims.ForEach(c => Debug.WriteLine($"{c.Type}: {c.Value}")); IEnumerable <BlogListItemDto> blogs = await _blogQueries.GetBlogs(status, primaryAuthorId); return(Ok(blogs)); }
async public Task UpdateBlogStatusAsync(int blogId, BlogStatuses blogStatus) { var blog = Context.Blog.Find(blogId); blog.BlogStatusId = (int)blogStatus; Context.Update(blog); await Context.SaveChangesAsync(); }
public async Task <IEnumerable <BlogListItemDto> > GetBlogs(BlogStatuses blogStatus = BlogStatuses.Published, int?primaryAuthorId = null) { int blogStatusId = (int)blogStatus; List <BlogDto> blogs = await Context.Blog.Include(i => i.PrimaryAuthor) .Where(i => i.BlogStatusId == blogStatusId && (primaryAuthorId == null || i.PrimaryAuthorId == primaryAuthorId.Value)) .OrderBy(i => i.DisplayOrder) .ThenBy(i => i.DisplayName) .ProjectToType <BlogDto>().ToListAsync(); List <BlogListItemDto> blogsList = await Context.Blog .Where(i => i.BlogStatusId == blogStatusId && (primaryAuthorId == null || i.PrimaryAuthorId == primaryAuthorId.Value)) .OrderBy(i => i.DisplayOrder) .ThenBy(i => i.DisplayName) .ProjectToType <BlogListItemDto>().ToListAsync(); return(blogsList); }
public async Task <IEnumerable <BlogListItemDto> > GetBlogs(IEnumerable <string> tags, BlogStatuses blogStatus = BlogStatuses.Published) { int blogStatusId = (int)blogStatus; var q = from blogs in Context.Blog join blogTags in Context.BlogTag on blogs.Id equals blogTags.BlogId into dbt from blogTags in dbt.DefaultIfEmpty() join t in Context.Tag on blogTags.TagId equals t.Id into dt from t in dt.DefaultIfEmpty() join a in Context.Author on blogs.PrimaryAuthorId equals a.Id where tags.Contains(t.Name) && (blogStatusId == 0 || blogs.BlogStatusId == blogStatusId) orderby blogs.DisplayOrder orderby blogs.DisplayName select blogs; List <BlogListItemDto> list = await q.ProjectToType <BlogListItemDto>().ToListAsync(); return(list); }
public async Task <IEnumerable <BlogListItemDto> > GetBlogsByAuthor(int authorId, BlogStatuses blogStatus = BlogStatuses.Published) { int blogStatusId = (int)blogStatus; var q = from blogs in Context.Blog where blogs.PrimaryAuthorId == authorId && (blogStatusId == 0 || blogs.BlogStatusId == blogStatusId) orderby blogs.DisplayOrder orderby blogs.DisplayName select blogs; List <BlogListItemDto> list = await q.Distinct().ProjectToType <BlogListItemDto>().ToListAsync(); return(list); }