|
|
|
@ -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( |
|
|
|
|