CmsKit - Refactoring TagManager

pull/7848/head
enisn 5 years ago
parent a327467752
commit c2ffc861c3

@ -62,7 +62,7 @@ namespace Volo.CmsKit.Admin.Tags
await CheckPolicyAsync(definition.UpdatePolicy);
var existingTags =
await TagRepository.GetAllRelatedTagsAsync(input.EntityType, input.EntityId, CurrentTenant?.Id);
await TagRepository.GetAllRelatedTagsAsync(input.EntityType, input.EntityId);
var deletedTags = existingTags.Where(x => !input.Tags.Contains(x.Name)).ToList();
var addedTags = input.Tags.Where(x => !existingTags.Any(a => a.Name == x));

@ -23,16 +23,18 @@ namespace Volo.CmsKit.Admin.Tags
ITagAdminAppService
{
protected TagManager TagManager { get; }
protected ITagDefinitionStore TagDefinitionStore { get; }
protected IStringLocalizerFactory StringLocalizerFactory { get; }
public TagAdminAppService(
IRepository<Tag, Guid> repository,
TagManager tagManager,
ITagDefinitionStore tagDefinitionStore,
IStringLocalizerFactory stringLocalizerFactory) : base(repository)
{
TagManager = tagManager;
StringLocalizerFactory = stringLocalizerFactory;
TagDefinitionStore = tagDefinitionStore;
StringLocalizerFactory = stringLocalizerFactory;
GetListPolicyName = CmsKitAdminPermissions.Tags.Default;
GetPolicyName = CmsKitAdminPermissions.Tags.Default;
@ -73,7 +75,7 @@ namespace Volo.CmsKit.Admin.Tags
public virtual async Task<List<TagDefinitionDto>> GetTagDefinitionsAsync()
{
var definitions = await TagManager.GetTagDefinitionsAsync();
var definitions = await TagDefinitionStore.GetTagEntityTypeDefinitionListAsync();
return definitions
.Select(s =>

@ -20,8 +20,7 @@ namespace Volo.CmsKit.Tags
{
var entities = await TagRepository.GetAllRelatedTagsAsync(
entityType,
entityId,
CurrentTenant.Id);
entityId);
return ObjectMapper.Map<List<Tag>, List<TagDto>>(entities);
}

@ -60,10 +60,5 @@ namespace Volo.CmsKit.Tags
return await TagRepository.UpdateAsync(entity);
}
public virtual Task<List<TagEntityTypeDefiniton>> GetTagDefinitionsAsync()
{
return TagDefinitionStore.GetTagEntityTypeDefinitionListAsync();
}
}
}

@ -63,20 +63,18 @@ namespace Volo.CmsKit.Tags
public virtual async Task<List<Tag>> GetAllRelatedTagsAsync(
[NotNull] string entityType,
[NotNull] string entityId,
Guid? tenantId = null,
CancellationToken cancellationToken = default)
{
Check.NotNullOrEmpty(entityType, nameof(entityType));
Check.NotNullOrEmpty(entityId, nameof(entityId));
var entityTagIds = await (await GetDbContextAsync()).Set<EntityTag>()
.Where(q => q.EntityId == entityId && q.TenantId == tenantId)
.Where(q => q.EntityId == entityId)
.Select(q => q.TagId)
.ToListAsync(cancellationToken: GetCancellationToken(cancellationToken));
var query = (await GetDbSetAsync())
.Where(x => x.EntityType == entityType &&
x.TenantId == tenantId &&
entityTagIds.Contains(x.Id));
return await query.ToListAsync(cancellationToken: GetCancellationToken(cancellationToken));

@ -48,5 +48,15 @@ namespace Volo.CmsKit.Tags
Name = _cmsKitTestData.Content_1_Tags[0],
}));
}
public async Task GetTagDefinitionsAsync_ShouldWorkProperly_WithoutParameters()
{
var definitions = await _tagAdminAppService.GetTagDefinitionsAsync();
definitions.ShouldNotBeNull();
definitions.ShouldNotBeEmpty();
definitions.Count.ShouldBeGreaterThan(1);
definitions.ShouldContain(x => x.EntityType == _cmsKitTestData.TagDefinition_1_EntityType);
}
}
}

@ -112,15 +112,5 @@ namespace Volo.CmsKit.Tags
Should.Throw<Exception>(async () => await _tagManager.UpdateAsync(tag.Id, newName));
}
[Fact]
public async Task ShouldGetTagDefinitionsProperly_WithoutParameter()
{
var definitions = await _tagManager.GetTagDefinitionsAsync();
definitions.ShouldNotBeNull();
definitions.Count.ShouldBeGreaterThan(1);
definitions.ShouldContain(x => x.EntityType == _cmsKitTestData.TagDefinition_1_EntityType);
}
}
}
Loading…
Cancel
Save