Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }