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 public interface ITemplateDefinitionContext
{ {
IReadOnlyList<TemplateDefinition> GetAll(string name);
TemplateDefinition GetOrNull(string name); TemplateDefinition GetOrNull(string name);
void Add(params TemplateDefinition[] definitions); void Add(params TemplateDefinition[] definitions);

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

@ -2,6 +2,10 @@
{ {
public interface ITemplateDefinitionProvider public interface ITemplateDefinitionProvider
{ {
void PreDefine(ITemplateDefinitionContext context);
void Define(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; TextTemplates = textTemplates;
} }
public IReadOnlyList<TemplateDefinition> GetAll(string name)
{
return TextTemplates.Values.ToImmutableList();
}
public virtual TemplateDefinition GetOrNull(string name) public virtual TemplateDefinition GetOrNull(string name)
{ {
return TextTemplates.GetOrDefault(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) .Select(p => scope.ServiceProvider.GetRequiredService(p) as ITemplateDefinitionProvider)
.ToList(); .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) 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 abstract class TemplateDefinitionProvider : ITemplateDefinitionProvider, ITransientDependency
{ {
public virtual void PreDefine(ITemplateDefinitionContext context)
{
}
public abstract void Define(ITemplateDefinitionContext context); public abstract void Define(ITemplateDefinitionContext context);
public virtual void PostDefine(ITemplateDefinitionContext context)
{
}
} }
} }
Loading…
Cancel
Save