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) public async Task AddTagToEntityAsync(EntityTagCreateDto input)
{ {
var definition = await _tagDefinitionStore.GetTagDefinitionAsync(input.EntityType); var definition = await _tagDefinitionStore.GetTagEntityTypeDefinitionsAsync(input.EntityType);
await CheckPolicyAsync(definition.CreatePolicy); await CheckPolicyAsync(definition.CreatePolicy);
@ -38,7 +38,7 @@ namespace Volo.CmsKit.Admin.Application.Volo.CmsKit.Admin.Tags
public async Task RemoveTagFromEntityAsync(EntityTagRemoveDto input) public async Task RemoveTagFromEntityAsync(EntityTagRemoveDto input)
{ {
var definition = await _tagDefinitionStore.GetTagDefinitionAsync(input.EntityType); var definition = await _tagDefinitionStore.GetTagEntityTypeDefinitionsAsync(input.EntityType);
await CheckPolicyAsync(definition.DeletePolicy); 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.GlobalFeatures;
using Volo.Abp.Localization; using Volo.Abp.Localization;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
@ -7,6 +8,7 @@ using Volo.CmsKit.GlobalFeatures;
using Volo.CmsKit.Localization; using Volo.CmsKit.Localization;
using Volo.CmsKit.Pages; using Volo.CmsKit.Pages;
using Volo.CmsKit.Reactions; using Volo.CmsKit.Reactions;
using Volo.CmsKit.Tags;
namespace Volo.CmsKit namespace Volo.CmsKit
{ {
@ -34,14 +36,19 @@ namespace Volo.CmsKit
options.Reactions.AddOrReplace(StandardReactions.Rocket); options.Reactions.AddOrReplace(StandardReactions.Rocket);
options.Reactions.AddOrReplace(StandardReactions.Pray); options.Reactions.AddOrReplace(StandardReactions.Pray);
if (GlobalFeatureManager.Instance.IsEnabled<TagsFeature>()) });
if (GlobalFeatureManager.Instance.IsEnabled<TagsFeature>())
{
Configure<CmsKitTagOptions>(options =>
{ {
if (GlobalFeatureManager.Instance.IsEnabled<PagesFeature>()) 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) 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] [NotNull]
public ReactionDefinitionDictionary Reactions { get; } = new ReactionDefinitionDictionary(); 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 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; 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)); 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); return Task.FromResult(result);
} }
public virtual Task<List<TagEntityTypeDefiniton>> GetTagDefinitionsAsync() 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) public virtual Task<bool> IsDefinedAsync([NotNull] string entityType)
{ {
Check.NotNullOrWhiteSpace(entityType, nameof(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<List<TagEntityTypeDefiniton>> GetTagDefinitionsAsync();
Task<TagEntityTypeDefiniton> GetTagDefinitionAsync([NotNull] string entityType); Task<TagEntityTypeDefiniton> GetTagEntityTypeDefinitionsAsync([NotNull] string entityType);
Task<bool> IsDefinedAsync([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 namespace Volo.CmsKit.Tags
{ {
public class TagDefinitionDictionary : Dictionary<string, TagEntityTypeDefiniton> public class TagEntityTypeDefinitionDictionary : Dictionary<string, TagEntityTypeDefiniton>
{ {
public void AddOrReplace( public void AddOrReplace(
[NotNull] string entityType, [NotNull] string entityType,
Loading…
Cancel
Save