Browse Source

Added PreDefine and PostDefine methods for the ITemplateDefinitionProvider

pull/3792/head
Halil İbrahim Kalkan 7 years ago
parent
commit
1dde0dbe23
  1. 6
      framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/ITemplateDefinitionContext.cs
  2. 4
      framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/ITemplateDefinitionProvider.cs
  3. 5
      framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/TemplateDefinitionContext.cs
  4. 14
      framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/TemplateDefinitionManager.cs
  5. 10
      framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/TemplateDefinitionProvider.cs

6
framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/ITemplateDefinitionContext.cs

@ -1,7 +1,11 @@
namespace Volo.Abp.TextTemplating
using System.Collections.Generic;
namespace Volo.Abp.TextTemplating
{
public interface ITemplateDefinitionContext
{
IReadOnlyList<TemplateDefinition> GetAll(string name);
TemplateDefinition GetOrNull(string name);
void Add(params TemplateDefinition[] definitions);

4
framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/ITemplateDefinitionProvider.cs

@ -2,6 +2,10 @@
{
public interface ITemplateDefinitionProvider
{
void PreDefine(ITemplateDefinitionContext context);
void Define(ITemplateDefinitionContext context);
void PostDefine(ITemplateDefinitionContext context);
}
}

5
framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/TemplateDefinitionContext.cs

@ -12,6 +12,11 @@ namespace Volo.Abp.TextTemplating
TextTemplates = textTemplates;
}
public IReadOnlyList<TemplateDefinition> GetAll(string name)
{
return TextTemplates.Values.ToImmutableList();
}
public virtual TemplateDefinition GetOrNull(string name)
{
return TextTemplates.GetOrDefault(name);

14
framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/TemplateDefinitionManager.cs

@ -62,9 +62,21 @@ namespace Volo.Abp.TextTemplating
.Select(p => scope.ServiceProvider.GetRequiredService(p) as ITemplateDefinitionProvider)
.ToList();
var context = new TemplateDefinitionContext(templates);
foreach (var provider in providers)
{
provider.PreDefine(context);
}
foreach (var provider in providers)
{
provider.Define(context);
}
foreach (var provider in providers)
{
provider.Define(new TemplateDefinitionContext(templates));
provider.PostDefine(context);
}
}

10
framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/TemplateDefinitionProvider.cs

@ -4,6 +4,16 @@ namespace Volo.Abp.TextTemplating
{
public abstract class TemplateDefinitionProvider : ITemplateDefinitionProvider, ITransientDependency
{
public virtual void PreDefine(ITemplateDefinitionContext context)
{
}
public abstract void Define(ITemplateDefinitionContext context);
public virtual void PostDefine(ITemplateDefinitionContext context)
{
}
}
}
Loading…
Cancel
Save