public async Task <BlogDetailDto> GetBlogDetail(int id) { var post = await _piDbContext.Posts.FirstOrDefaultAsync(x => x.Id == id); if (null == post) { return(null); } var prevPost = await _piDbContext.Posts .Where(x => x.CreationTime > post.CreationTime) .Take(1) .FirstOrDefaultAsync(); var nextPost = await _piDbContext.Posts .Where(x => x.CreationTime < post.CreationTime) .OrderByDescending(x => x.CreationTime) .Take(1) .FirstOrDefaultAsync(); var result = new BlogDetailDto() { Id = post.Id, Title = post.Title, Author = post.Author, Body = post.Body, CreationTime = post.CreationTime, PrevId = prevPost == null ? -1: prevPost.Id, PrevTitle = prevPost == null ? null: prevPost.Title, NextId = nextPost == null? -1:nextPost.Id, NextTitle = nextPost == null? null: nextPost.Title }; return(result); }
public BlogDetailDto GetBlogArticleDetail(int id) { var repos = new ArticlesRepository(_context, new LogsRepository(_context)); var detail = repos.Get(id); var blogDto = new BlogDetailDto(detail, _currentLang); var categories = _context.ArticleCategories.Where(w => !w.IsDeleted).Select(s => new BlogCategoryModel { Id = s.Id, Title = _currentLang == (int)Language.Farsi ? s.Title : s.EnglishTitle }).ToList(); blogDto.Categories.AddRange(categories); blogDto.RecentBlogs = repos.GetArticles().Select(s => new BlogViewModel(s, _currentLang)).ToList(); return(blogDto); }