diff --git a/text-template-management/src/Volo.Abp.TextTemplateManagement.Domain/Volo/Abp/TextTemplateManagement/StaticTemplateDefinitionChangedEventHandler.cs b/text-template-management/src/Volo.Abp.TextTemplateManagement.Domain/Volo/Abp/TextTemplateManagement/StaticTemplateDefinitionChangedEventHandler.cs new file mode 100644 index 0000000000..86b498ed90 --- /dev/null +++ b/text-template-management/src/Volo.Abp.TextTemplateManagement.Domain/Volo/Abp/TextTemplateManagement/StaticTemplateDefinitionChangedEventHandler.cs @@ -0,0 +1,32 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; +using Volo.Abp.EventBus; +using Volo.Abp.StaticDefinitions; +using Volo.Abp.TextTemplating; +using Volo.Abp.Threading; + +namespace Volo.Abp.TextTemplateManagement; + +public class StaticTemplateDefinitionChangedEventHandler : ILocalEventHandler, ITransientDependency +{ + protected IStaticDefinitionCache> DefinitionCache { get; } + protected TextTemplateDynamicInitializer TextTemplateDynamicInitializer { get; } + protected ICancellationTokenProvider CancellationTokenProvider { get; } + + public StaticTemplateDefinitionChangedEventHandler( + IStaticDefinitionCache> definitionCache, + TextTemplateDynamicInitializer textTemplateDynamicInitializer, + ICancellationTokenProvider cancellationTokenProvider) + { + DefinitionCache = definitionCache; + TextTemplateDynamicInitializer = textTemplateDynamicInitializer; + CancellationTokenProvider = cancellationTokenProvider; + } + + public virtual async Task HandleEventAsync(StaticTemplateDefinitionChangedEvent eventData) + { + await DefinitionCache.ClearAsync(); + await TextTemplateDynamicInitializer.InitializeAsync(false, CancellationTokenProvider.Token); + } +}