public override async Task <CommentPaging> GetCommentsAsync(Screams.Scream scream, int index, int size) { if (scream == null || scream.Model == null) { throw new NullReferenceException("scream of model can't be null"); } var paging = CommentPaging.Create(index, size); Expression <Func <ScreamBackend.DB.Tables.Comment, bool> > whereStatement = comment => comment.ScreamId == scream.Model.Id && !comment.Hidden; paging.List = await _db.Comments.AsNoTracking() .OrderByDescending(c => c.CreateDateTime) .Where(whereStatement) .Skip(paging.Skip) .Take(paging.Size) .Include(c => c.Author) .Select(c => new CommentPaging.Comment { Id = c.Id, AuthorId = c.AuthorId, Author = c.Author.Username, Content = c.Content, HiddenCount = c.HiddenCount, DateTime = c.CreateDateTime.ToShortDateString() }) .ToListAsync(); paging.TotalSize = await _db.Comments.CountAsync(whereStatement); return(paging); }
public abstract Task <CommentPaging> GetCommentsAsync(Screams.Scream scream, int index, int size);