Browse Source

CmsKit - Seperate CmsKitTagOptions

pull/7103/head
enisn 6 years ago
parent
commit
ae0852e670
  1. 4
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/EntityTagAdminAppService.cs
  2. 17
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs
  3. 3
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitOptions.cs
  4. 11
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/CmsKitTagOptions.cs
  5. 12
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs
  6. 2
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs
  7. 2
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefinitionDictionary.cs

4
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/EntityTagAdminAppService.cs

@ -23,7 +23,7 @@ namespace Volo.CmsKit.Admin.Application.Volo.CmsKit.Admin.Tags
public async Task AddTagToEntityAsync(EntityTagCreateDto input)
{
var definition = await _tagDefinitionStore.GetTagDefinitionAsync(input.EntityType);
var definition = await _tagDefinitionStore.GetTagEntityTypeDefinitionsAsync(input.EntityType);
await CheckPolicyAsync(definition.CreatePolicy);
@ -38,7 +38,7 @@ namespace Volo.CmsKit.Admin.Application.Volo.CmsKit.Admin.Tags
public async Task RemoveTagFromEntityAsync(EntityTagRemoveDto input)
{
var definition = await _tagDefinitionStore.GetTagDefinitionAsync(input.EntityType);
var definition = await _tagDefinitionStore.GetTagEntityTypeDefinitionsAsync(input.EntityType);
await CheckPolicyAsync(definition.DeletePolicy);

17
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs

@ -1,4 +1,5 @@
using Volo.Abp.Domain;
using Microsoft.Extensions.Options;
using Volo.Abp.Domain;
using Volo.Abp.GlobalFeatures;
using Volo.Abp.Localization;
using Volo.Abp.Modularity;
@ -7,6 +8,7 @@ using Volo.CmsKit.GlobalFeatures;
using Volo.CmsKit.Localization;
using Volo.CmsKit.Pages;
using Volo.CmsKit.Reactions;
using Volo.CmsKit.Tags;
namespace Volo.CmsKit
{
@ -34,14 +36,19 @@ namespace Volo.CmsKit
options.Reactions.AddOrReplace(StandardReactions.Rocket);
options.Reactions.AddOrReplace(StandardReactions.Pray);
if (GlobalFeatureManager.Instance.IsEnabled<TagsFeature>())
});
if (GlobalFeatureManager.Instance.IsEnabled<TagsFeature>())
{
Configure<CmsKitTagOptions>(options =>
{
if (GlobalFeatureManager.Instance.IsEnabled<PagesFeature>())
{
options.Tags.AddOrReplace(typeof(Page).Name, L("Page"));
options.EntityTypes.AddOrReplace(typeof(Page).Name, L("Page"));
}
}
});
});
}
}
private static LocalizableString L(string name)

3
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitOptions.cs

@ -8,8 +8,5 @@ namespace Volo.CmsKit
{
[NotNull]
public ReactionDefinitionDictionary Reactions { get; } = new ReactionDefinitionDictionary();
[NotNull]
public TagDefinitionDictionary Tags { get; } = new TagDefinitionDictionary();
}
}

11
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/CmsKitTagOptions.cs

@ -0,0 +1,11 @@
using JetBrains.Annotations;
using Volo.CmsKit.Tags;
namespace Volo.CmsKit.Tags
{
public class CmsKitTagOptions
{
[NotNull]
public TagEntityTypeDefinitionDictionary EntityTypes { get; } = new TagEntityTypeDefinitionDictionary();
}
}

12
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs

@ -10,31 +10,31 @@ namespace Volo.CmsKit.Tags
{
public class DefaultTagDefinitionStore : ITagDefinitionStore, ITransientDependency
{
private readonly CmsKitOptions options;
private readonly CmsKitTagOptions options;
public DefaultTagDefinitionStore(IOptions<CmsKitOptions> options)
public DefaultTagDefinitionStore(IOptions<CmsKitTagOptions> options)
{
this.options = options.Value;
}
public virtual Task<TagEntityTypeDefiniton> GetTagDefinitionAsync([NotNull] string entityType)
public virtual Task<TagEntityTypeDefiniton> GetTagEntityTypeDefinitionsAsync([NotNull] string entityType)
{
Check.NotNullOrWhiteSpace(entityType, nameof(entityType));
var result = options.Tags.GetOrDefault(entityType) ?? throw new EntityNotTaggableException(entityType);
var result = options.EntityTypes.GetOrDefault(entityType) ?? throw new EntityNotTaggableException(entityType);
return Task.FromResult(result);
}
public virtual Task<List<TagEntityTypeDefiniton>> GetTagDefinitionsAsync()
{
return Task.FromResult(options.Tags.Values.ToList());
return Task.FromResult(options.EntityTypes.Values.ToList());
}
public virtual Task<bool> IsDefinedAsync([NotNull] string entityType)
{
Check.NotNullOrWhiteSpace(entityType, nameof(entityType));
return Task.FromResult(options.Tags.ContainsKey(entityType));
return Task.FromResult(options.EntityTypes.ContainsKey(entityType));
}
}
}

2
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs

@ -8,7 +8,7 @@ namespace Volo.CmsKit.Tags
{
Task<List<TagEntityTypeDefiniton>> GetTagDefinitionsAsync();
Task<TagEntityTypeDefiniton> GetTagDefinitionAsync([NotNull] string entityType);
Task<TagEntityTypeDefiniton> GetTagEntityTypeDefinitionsAsync([NotNull] string entityType);
Task<bool> IsDefinedAsync([NotNull] string entityType);
}

2
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefinitionDictionary.cs → modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefinitionDictionary.cs

@ -4,7 +4,7 @@ using Volo.Abp.Localization;
namespace Volo.CmsKit.Tags
{
public class TagDefinitionDictionary : Dictionary<string, TagEntityTypeDefiniton>
public class TagEntityTypeDefinitionDictionary : Dictionary<string, TagEntityTypeDefiniton>
{
public void AddOrReplace(
[NotNull] string entityType,
Loading…
Cancel
Save