Browse Source

CmsKit - Fix MongoDb Query for Comment details

pull/8588/head
enisn 6 years ago
parent
commit
078a4b540b
  1. 25
      modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs

25
modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs

@ -23,23 +23,28 @@ namespace Volo.CmsKit.MongoDB.Comments
public async Task<CommentWithAuthorQueryResultItem> GetWithAuthorAsync(Guid id, CancellationToken cancellationToken = default)
{
var query = from comment in (await GetMongoQueryableAsync(cancellationToken))
join user in (await GetDbContextAsync(cancellationToken)).CmsUsers on comment.CreatorId equals user.Id
where id == comment.Id
select new CommentWithAuthorQueryResultItem
{
Comment = comment,
Author = user
};
var dbContext = await GetDbContextAsync();
var commentQueryable = await GetMongoQueryableAsync(cancellationToken);
var userQueryable = dbContext.Collection<CmsUser>();
var joined = commentQueryable.Join(userQueryable, x => x.CreatorId, x => x.Id, (comment, user) => new
{
Comment = comment,
User = user
});
var commentWithAuthor = await query.FirstOrDefaultAsync(GetCancellationToken(cancellationToken));
var commentWithAuthor = await joined.FirstOrDefaultAsync(GetCancellationToken(cancellationToken));
if (commentWithAuthor == null)
{
throw new EntityNotFoundException(typeof(Comment), id);
}
return commentWithAuthor;
return new CommentWithAuthorQueryResultItem()
{
Comment = commentWithAuthor.Comment,
Author = commentWithAuthor.User
};
}
public async Task<List<CommentWithAuthorQueryResultItem>> GetListAsync(

Loading…
Cancel
Save