protected virtual Task LocalizeAsync(IServiceProvider serviceProvider, EmailTemplateProviderContributorContext context) { if (context.Template.Definition.LocalizationResource == null) { return(Task.CompletedTask); } var localizer = serviceProvider .GetRequiredService <IStringLocalizerFactory>() .Create(context.Template.Definition.LocalizationResource); context.Template.SetContent( TemplateLocalizer.Localize(localizer, context.Template.Content) ); return(Task.CompletedTask); }
protected virtual async Task <EmailTemplate> GetInternalAsync(IServiceProvider serviceProvider, string name) { var context = new EmailTemplateProviderContributorContext(name, serviceProvider); foreach (var provider in Options.Providers) { await provider.ProvideAsync(context); } if (context.Template == null) { throw new AbpException($"Could not found the template: {name}"); } await SetLayoutAsync(serviceProvider, context); await LocalizeAsync(serviceProvider, context); return(context.Template); }
protected virtual async Task SetLayoutAsync(IServiceProvider serviceProvider, EmailTemplateProviderContributorContext context) { var layout = context.Template.Definition.Layout; if (layout.IsNullOrEmpty()) { return; } if (layout == EmailTemplateDefinition.DefaultLayoutPlaceHolder) { layout = Options.DefaultLayout; } var layoutTemplate = await GetInternalAsync(serviceProvider, layout); context.Template.SetLayout(layoutTemplate); }