Browse Source

ITemplateContributor GetOrNull converted to Async

pull/3792/head
Ahmet 6 years ago
parent
commit
60e4a8e8c3
  1. 5
      framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/ITemplateContributor.cs
  2. 2
      framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/TemplateContentProvider.cs
  3. 3
      framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/VirtualFiles/VirtualFileTemplateContributor.cs
  4. 22
      framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/VirtualFiles/VirtualFileTemplateContributor_Tests.cs

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

@ -1,4 +1,5 @@
using JetBrains.Annotations;
using System.Threading.Tasks;
using JetBrains.Annotations;
namespace Volo.Abp.TextTemplating
{
@ -6,6 +7,6 @@ namespace Volo.Abp.TextTemplating
{
void Initialize(TemplateContributorInitializationContext context);
string GetOrNull([CanBeNull] string cultureName);
Task<string> GetOrNullAsync([CanBeNull] string cultureName);
}
}

2
framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/TemplateContentProvider.cs

@ -31,7 +31,7 @@ namespace Volo.Abp.TextTemplating
foreach (var contributor in templateDefinition.Contributors)
{
var templateString = contributor.GetOrNull(cultureName); //TODO: GetOrNull should be async!
var templateString = await contributor.GetOrNullAsync(cultureName);
if (templateString != null)
{
return templateString;

3
framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/VirtualFiles/VirtualFileTemplateContributor.cs

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Threading.Tasks;
using JetBrains.Annotations;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.FileProviders;
@ -30,7 +31,7 @@ namespace Volo.Abp.TextTemplating.VirtualFiles
TemplateDefinition = context.TemplateDefinition;
}
public string GetOrNull([CanBeNull] string cultureName = null)
public async Task<string> GetOrNullAsync([CanBeNull] string cultureName = null)
{
//TODO: Refactor: Split implementation based on single file or dictionary of culture-specific contents

22
framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/VirtualFiles/VirtualFileTemplateContributor_Tests.cs

@ -1,4 +1,5 @@
using Shouldly;
using System.Threading.Tasks;
using Shouldly;
using Xunit;
namespace Volo.Abp.TextTemplating.VirtualFiles
@ -6,7 +7,7 @@ namespace Volo.Abp.TextTemplating.VirtualFiles
public class VirtualFileTemplateContributor_Tests : AbpTextTemplatingTestBase
{
[Fact]
public void Should_Get_Localized_Content_By_Culture()
public async Task Should_Get_Localized_Content_By_Culture()
{
var contributor = new VirtualFileTemplateContributor(
"/SampleTemplates/WelcomeEmail"
@ -19,17 +20,15 @@ namespace Volo.Abp.TextTemplating.VirtualFiles
)
);
contributor
.GetOrNull("en")
.ShouldBe("Welcome {{model.name}} to the abp.io!");
(await contributor
.GetOrNullAsync("en")).ShouldBe("Welcome {{model.name}} to the abp.io!");
contributor
.GetOrNull("tr")
.ShouldBe("Merhaba {{model.name}}, abp.io'ya hoşgeldiniz!");
(await contributor
.GetOrNullAsync("tr")).ShouldBe("Merhaba {{model.name}}, abp.io'ya hoşgeldiniz!");
}
[Fact]
public void Should_Get_Non_Localized_Template_Content()
public async Task Should_Get_Non_Localized_Template_Content()
{
var contributor = new VirtualFileTemplateContributor(
"/SampleTemplates/ForgotPasswordEmail.tpl"
@ -42,9 +41,8 @@ namespace Volo.Abp.TextTemplating.VirtualFiles
)
);
contributor
.GetOrNull()
.ShouldBe("{{l \"HelloText\"}}. Please click to the following link to get an email to reset your password!");
(await contributor
.GetOrNullAsync()).ShouldBe("{{l \"HelloText\"}}. Please click to the following link to get an email to reset your password!");
}
}
}

Loading…
Cancel
Save