Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }