diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs index a60cb0d521..d553a2cd2b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs @@ -1,4 +1,6 @@ using Microsoft.Extensions.Options; +using System.Collections.Generic; +using Volo.Abp; using Volo.Abp.Domain; using Volo.Abp.GlobalFeatures; using Volo.Abp.Localization; @@ -21,20 +23,20 @@ namespace Volo.CmsKit { public override void ConfigureServices(ServiceConfigurationContext context) { - Configure(options => + Configure(options => { - options.Reactions.AddOrReplace(StandardReactions.ThumbsUp); - options.Reactions.AddOrReplace(StandardReactions.ThumbsDown); - options.Reactions.AddOrReplace(StandardReactions.Smile); - options.Reactions.AddOrReplace(StandardReactions.Wink); - options.Reactions.AddOrReplace(StandardReactions.Confused); - options.Reactions.AddOrReplace(StandardReactions.Victory); - options.Reactions.AddOrReplace(StandardReactions.Rock); - options.Reactions.AddOrReplace(StandardReactions.Eyes); - options.Reactions.AddOrReplace(StandardReactions.Heart); - options.Reactions.AddOrReplace(StandardReactions.HeartBroken); - options.Reactions.AddOrReplace(StandardReactions.Rocket); - options.Reactions.AddOrReplace(StandardReactions.Pray); + options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.ThumbsUp)); + options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.ThumbsDown)); + options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.Smile)); + options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.Wink)); + options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.Confused)); + options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.Victory)); + options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.Rock)); + options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.Eyes)); + options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.Heart)); + options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.HeartBroken)); + options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.Rocket)); + options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.Pray)); }); diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitOptions.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/CmsKitReactionOptions.cs similarity index 61% rename from modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitOptions.cs rename to modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/CmsKitReactionOptions.cs index 8075895184..065c4c5ee7 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitOptions.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/CmsKitReactionOptions.cs @@ -1,10 +1,8 @@ using JetBrains.Annotations; -using Volo.CmsKit.Reactions; -using Volo.CmsKit.Tags; -namespace Volo.CmsKit +namespace Volo.CmsKit.Reactions { - public class CmsKitOptions + public class CmsKitReactionOptions { [NotNull] public ReactionDefinitionDictionary Reactions { get; } = new ReactionDefinitionDictionary(); diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/DefaultReactionDefinitionStore.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/DefaultReactionDefinitionStore.cs index 84cb15471d..e0211faea9 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/DefaultReactionDefinitionStore.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/DefaultReactionDefinitionStore.cs @@ -8,21 +8,21 @@ namespace Volo.CmsKit.Reactions { public class DefaultReactionDefinitionStore : IReactionDefinitionStore, ITransientDependency { - protected CmsKitOptions Options { get; } + protected CmsKitReactionOptions Options { get; } - public DefaultReactionDefinitionStore(IOptions options) + public DefaultReactionDefinitionStore(IOptions options) { Options = options.Value; } public virtual Task> GetReactionsAsync(string entityType = null) { - return Task.FromResult(Options.Reactions.Values.ToList()); + return Task.FromResult(Options.Reactions.ToList()); } public virtual Task GetReactionOrNullAsync(string reactionName, string entityType = null) { - return Task.FromResult(Options.Reactions.GetOrDefault(reactionName)); + return Task.FromResult(Options.Reactions.SingleOrDefault(x => x.Name == reactionName)); } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/ReactionDefinition.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/ReactionDefinition.cs index 01d96617ea..463abc172d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/ReactionDefinition.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/ReactionDefinition.cs @@ -1,4 +1,5 @@ using JetBrains.Annotations; +using System; using Volo.Abp; using Volo.Abp.Localization; diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/ReactionDefinitionDictionary.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/ReactionDefinitionDictionary.cs index 94ff90fa45..2f72bcc40e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/ReactionDefinitionDictionary.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/ReactionDefinitionDictionary.cs @@ -4,11 +4,7 @@ using Volo.Abp.Localization; namespace Volo.CmsKit.Reactions { - public class ReactionDefinitionDictionary : Dictionary + public class ReactionDefinitionDictionary : List { - public void AddOrReplace([NotNull] string name, ILocalizableString displayName = null) - { - this[name] = new ReactionDefinition(name, displayName); - } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Comments/CommentPublicAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Comments/CommentPublicAppService.cs index a4ce4a2b46..4e390e4ec1 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Comments/CommentPublicAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Comments/CommentPublicAppService.cs @@ -17,7 +17,6 @@ namespace Volo.CmsKit.Public.Comments { public class CommentPublicAppService : ApplicationService, ICommentPublicAppService { - protected CmsKitOptions CmsKitOptions { get; } protected ICommentRepository CommentRepository { get; } protected ICmsUserLookupService CmsUserLookupService { get; } public IDistributedEventBus DistributedEventBus { get; } @@ -27,10 +26,8 @@ namespace Volo.CmsKit.Public.Comments ICommentRepository commentRepository, ICmsUserLookupService cmsUserLookupService, IDistributedEventBus distributedEventBus, - IUnitOfWorkManager unitOfWorkManager, - IOptions cmsKitOptions) + IUnitOfWorkManager unitOfWorkManager) { - CmsKitOptions = cmsKitOptions.Value; CommentRepository = commentRepository; CmsUserLookupService = cmsUserLookupService; DistributedEventBus = distributedEventBus; diff --git a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs index 3dc77fe1fc..2f67a65a50 100644 --- a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs +++ b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs @@ -30,7 +30,7 @@ namespace Volo.CmsKit private readonly IEntityTagManager _entityTagManager; private readonly ITagManager _tagManager; private readonly IPageRepository _pageRepository; - private readonly IOptions _options; + private readonly IOptions _reactionOptions; private readonly IOptions _tagOptions; public CmsKitDataSeedContributor( @@ -45,7 +45,7 @@ namespace Volo.CmsKit ITagManager tagManager, IEntityTagManager entityTagManager, IPageRepository pageRepository, - IOptions options, + IOptions reactiOnptions, IOptions tagOptions) { _guidGenerator = guidGenerator; @@ -59,7 +59,7 @@ namespace Volo.CmsKit _tagManager = tagManager; _entityTagManager = entityTagManager; _pageRepository = pageRepository; - _options = options; + _reactionOptions = reactiOnptions; _tagOptions = tagOptions; }