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