CmsKit - Refactor Reactions Definitions Configuration

pull/7500/head
enisn 5 years ago
parent fdd6b4234c
commit 2d6c822218

@ -1,4 +1,6 @@
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using System.Collections.Generic;
using Volo.Abp;
using Volo.Abp.Domain; using Volo.Abp.Domain;
using Volo.Abp.GlobalFeatures; using Volo.Abp.GlobalFeatures;
using Volo.Abp.Localization; using Volo.Abp.Localization;
@ -21,20 +23,20 @@ namespace Volo.CmsKit
{ {
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
Configure<CmsKitOptions>(options => Configure<CmsKitReactionOptions>(options =>
{ {
options.Reactions.AddOrReplace(StandardReactions.ThumbsUp); options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.ThumbsUp));
options.Reactions.AddOrReplace(StandardReactions.ThumbsDown); options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.ThumbsDown));
options.Reactions.AddOrReplace(StandardReactions.Smile); options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.Smile));
options.Reactions.AddOrReplace(StandardReactions.Wink); options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.Wink));
options.Reactions.AddOrReplace(StandardReactions.Confused); options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.Confused));
options.Reactions.AddOrReplace(StandardReactions.Victory); options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.Victory));
options.Reactions.AddOrReplace(StandardReactions.Rock); options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.Rock));
options.Reactions.AddOrReplace(StandardReactions.Eyes); options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.Eyes));
options.Reactions.AddOrReplace(StandardReactions.Heart); options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.Heart));
options.Reactions.AddOrReplace(StandardReactions.HeartBroken); options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.HeartBroken));
options.Reactions.AddOrReplace(StandardReactions.Rocket); options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.Rocket));
options.Reactions.AddOrReplace(StandardReactions.Pray); options.Reactions.AddIfNotContains(new ReactionDefinition(StandardReactions.Pray));
}); });

@ -1,10 +1,8 @@
using JetBrains.Annotations; 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] [NotNull]
public ReactionDefinitionDictionary Reactions { get; } = new ReactionDefinitionDictionary(); public ReactionDefinitionDictionary Reactions { get; } = new ReactionDefinitionDictionary();

@ -8,21 +8,21 @@ namespace Volo.CmsKit.Reactions
{ {
public class DefaultReactionDefinitionStore : IReactionDefinitionStore, ITransientDependency public class DefaultReactionDefinitionStore : IReactionDefinitionStore, ITransientDependency
{ {
protected CmsKitOptions Options { get; } protected CmsKitReactionOptions Options { get; }
public DefaultReactionDefinitionStore(IOptions<CmsKitOptions> options) public DefaultReactionDefinitionStore(IOptions<CmsKitReactionOptions> options)
{ {
Options = options.Value; Options = options.Value;
} }
public virtual Task<List<ReactionDefinition>> GetReactionsAsync(string entityType = null) public virtual Task<List<ReactionDefinition>> GetReactionsAsync(string entityType = null)
{ {
return Task.FromResult(Options.Reactions.Values.ToList()); return Task.FromResult(Options.Reactions.ToList());
} }
public virtual Task<ReactionDefinition> GetReactionOrNullAsync(string reactionName, string entityType = null) public virtual Task<ReactionDefinition> GetReactionOrNullAsync(string reactionName, string entityType = null)
{ {
return Task.FromResult(Options.Reactions.GetOrDefault(reactionName)); return Task.FromResult(Options.Reactions.SingleOrDefault(x => x.Name == reactionName));
} }
} }
} }

@ -1,4 +1,5 @@
using JetBrains.Annotations; using JetBrains.Annotations;
using System;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Localization; using Volo.Abp.Localization;

@ -4,11 +4,7 @@ using Volo.Abp.Localization;
namespace Volo.CmsKit.Reactions namespace Volo.CmsKit.Reactions
{ {
public class ReactionDefinitionDictionary : Dictionary<string, ReactionDefinition> public class ReactionDefinitionDictionary : List<ReactionDefinition>
{ {
public void AddOrReplace([NotNull] string name, ILocalizableString displayName = null)
{
this[name] = new ReactionDefinition(name, displayName);
}
} }
} }

@ -17,7 +17,6 @@ namespace Volo.CmsKit.Public.Comments
{ {
public class CommentPublicAppService : ApplicationService, ICommentPublicAppService public class CommentPublicAppService : ApplicationService, ICommentPublicAppService
{ {
protected CmsKitOptions CmsKitOptions { get; }
protected ICommentRepository CommentRepository { get; } protected ICommentRepository CommentRepository { get; }
protected ICmsUserLookupService CmsUserLookupService { get; } protected ICmsUserLookupService CmsUserLookupService { get; }
public IDistributedEventBus DistributedEventBus { get; } public IDistributedEventBus DistributedEventBus { get; }
@ -27,10 +26,8 @@ namespace Volo.CmsKit.Public.Comments
ICommentRepository commentRepository, ICommentRepository commentRepository,
ICmsUserLookupService cmsUserLookupService, ICmsUserLookupService cmsUserLookupService,
IDistributedEventBus distributedEventBus, IDistributedEventBus distributedEventBus,
IUnitOfWorkManager unitOfWorkManager, IUnitOfWorkManager unitOfWorkManager)
IOptions<CmsKitOptions> cmsKitOptions)
{ {
CmsKitOptions = cmsKitOptions.Value;
CommentRepository = commentRepository; CommentRepository = commentRepository;
CmsUserLookupService = cmsUserLookupService; CmsUserLookupService = cmsUserLookupService;
DistributedEventBus = distributedEventBus; DistributedEventBus = distributedEventBus;

@ -30,7 +30,7 @@ namespace Volo.CmsKit
private readonly IEntityTagManager _entityTagManager; private readonly IEntityTagManager _entityTagManager;
private readonly ITagManager _tagManager; private readonly ITagManager _tagManager;
private readonly IPageRepository _pageRepository; private readonly IPageRepository _pageRepository;
private readonly IOptions<CmsKitOptions> _options; private readonly IOptions<CmsKitReactionOptions> _reactionOptions;
private readonly IOptions<CmsKitTagOptions> _tagOptions; private readonly IOptions<CmsKitTagOptions> _tagOptions;
public CmsKitDataSeedContributor( public CmsKitDataSeedContributor(
@ -45,7 +45,7 @@ namespace Volo.CmsKit
ITagManager tagManager, ITagManager tagManager,
IEntityTagManager entityTagManager, IEntityTagManager entityTagManager,
IPageRepository pageRepository, IPageRepository pageRepository,
IOptions<CmsKitOptions> options, IOptions<CmsKitReactionOptions> reactiOnptions,
IOptions<CmsKitTagOptions> tagOptions) IOptions<CmsKitTagOptions> tagOptions)
{ {
_guidGenerator = guidGenerator; _guidGenerator = guidGenerator;
@ -59,7 +59,7 @@ namespace Volo.CmsKit
_tagManager = tagManager; _tagManager = tagManager;
_entityTagManager = entityTagManager; _entityTagManager = entityTagManager;
_pageRepository = pageRepository; _pageRepository = pageRepository;
_options = options; _reactionOptions = reactiOnptions;
_tagOptions = tagOptions; _tagOptions = tagOptions;
} }

Loading…
Cancel
Save