Browse Source

CmsKit - Fix Unsupported mongo query

pull/6858/head
enisn 6 years ago
parent
commit
3b7657bb0b
  1. 19
      modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs

19
modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs

@ -8,6 +8,7 @@ using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories.MongoDB;
using Volo.Abp.MongoDB;
using Volo.CmsKit.Tags;
using Tag = Volo.CmsKit.Tags.Tag;
namespace Volo.CmsKit.MongoDB.Tags
{
@ -31,7 +32,7 @@ namespace Volo.CmsKit.MongoDB.Tags
cancellationToken);
}
public Task<Volo.CmsKit.Tags.Tag> GetAsync(
public Task<Tag> GetAsync(
[NotNull] string entityType,
[NotNull] string name,
Guid? tenantId = null,
@ -44,7 +45,7 @@ namespace Volo.CmsKit.MongoDB.Tags
cancellationToken: cancellationToken);
}
public Task<Volo.CmsKit.Tags.Tag> FindAsync(
public Task<Tag> FindAsync(
[NotNull] string entityType,
[NotNull] string name,
Guid? tenantId = null,
@ -57,7 +58,7 @@ namespace Volo.CmsKit.MongoDB.Tags
cancellationToken: cancellationToken);
}
public virtual async Task<List<Volo.CmsKit.Tags.Tag>> GetAllRelatedTagsAsync(
public virtual async Task<List<Tag>> GetAllRelatedTagsAsync(
[NotNull] string entityType,
[NotNull] string entityId,
Guid? tenantId = null,
@ -65,13 +66,15 @@ namespace Volo.CmsKit.MongoDB.Tags
{
var entityTagIds = await DbContext.EntityTags.AsQueryable()
.Where(q => q.EntityId == entityId && q.TenantId == tenantId)
.Select(q => q.EntityId)
.Select(q => q.TagId)
.ToListAsync(cancellationToken: GetCancellationToken(cancellationToken));
var query = GetMongoQueryable()
.Where(x => x.EntityType == entityType &&
x.TenantId == tenantId &&
entityTagIds.Contains(x.Id.ToString()));
var query = await Collection.FindAsync(Builders<Tag>.Filter.And(new[]
{
Builders<Tag>.Filter.Eq(x =>x.EntityType, entityType),
Builders<Tag>.Filter.Eq(x =>x.TenantId, tenantId),
Builders<Tag>.Filter.In(x => x.Id, entityTagIds),
}));
var result = await query.ToListAsync(cancellationToken: GetCancellationToken(cancellationToken));
return result;

Loading…
Cancel
Save