Browse Source

Merge pull request #1359 from colinin/fix-text-template

fix(text-templating): failed to fix the change template
pull/1361/head
yx lin 3 months ago
committed by GitHub
parent
commit
da32d64ce4
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 64
      aspnet-core/modules/text-templating/LINGYUN.Abp.TextTemplating.Application/LINGYUN/Abp/TextTemplating/TextTemplateContentAppService.cs
  2. 3
      aspnet-core/modules/text-templating/LINGYUN.Abp.TextTemplating.Domain/LINGYUN/Abp/TextTemplating/AbpTextTemplatingDomainModule.cs

64
aspnet-core/modules/text-templating/LINGYUN.Abp.TextTemplating.Application/LINGYUN/Abp/TextTemplating/TextTemplateContentAppService.cs

@ -1,6 +1,8 @@
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Localization;
using Volo.Abp.TextTemplating; using Volo.Abp.TextTemplating;
namespace LINGYUN.Abp.TextTemplating; namespace LINGYUN.Abp.TextTemplating;
@ -11,22 +13,41 @@ public class TextTemplateContentAppService : AbpTextTemplatingAppServiceBase, IT
protected ITextTemplateRepository TextTemplateRepository { get; } protected ITextTemplateRepository TextTemplateRepository { get; }
protected ITemplateContentProvider TemplateContentProvider { get; } protected ITemplateContentProvider TemplateContentProvider { get; }
protected ITemplateDefinitionManager TemplateDefinitionManager { get; } protected ITemplateDefinitionManager TemplateDefinitionManager { get; }
protected ILocalizableStringSerializer LocalizableStringSerializer { get; }
public TextTemplateContentAppService( public TextTemplateContentAppService(
ITextTemplateRepository textTemplateRepository, ITextTemplateRepository textTemplateRepository,
ITemplateContentProvider templateContentProvider, ITemplateContentProvider templateContentProvider,
ITemplateDefinitionManager templateDefinitionManager) ITemplateDefinitionManager templateDefinitionManager,
ILocalizableStringSerializer localizableStringSerializer)
{ {
TextTemplateRepository = textTemplateRepository; TextTemplateRepository = textTemplateRepository;
TemplateContentProvider = templateContentProvider; TemplateContentProvider = templateContentProvider;
TemplateDefinitionManager = templateDefinitionManager; TemplateDefinitionManager = templateDefinitionManager;
LocalizableStringSerializer = localizableStringSerializer;
} }
public async virtual Task<TextTemplateContentDto> GetAsync(TextTemplateContentGetInput input) public async virtual Task<TextTemplateContentDto> GetAsync(TextTemplateContentGetInput input)
{ {
var templateDefinition = await GetTemplateDefinition(input.Name); var templateDefinition = await GetTemplateDefinition(input.Name);
string content = null;
var content = await TemplateContentProvider.GetContentOrNullAsync(templateDefinition.Name, input.Culture); try
{
content = await TemplateContentProvider.GetContentOrNullAsync(templateDefinition.Name, input.Culture);
}
catch
{
// Ignore
// 场景: 模板未在当前宿主服务中注册时, VirtualPath将抛出异常, 应忽略此异常
// See: https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.TextTemplating.Core/Volo/Abp/TextTemplating/VirtualFiles/LocalizedTemplateContentReaderFactory.cs#L66
}
if (content.IsNullOrWhiteSpace())
{
var textTemplate = await TextTemplateRepository.FindByNameAsync(templateDefinition.Name, input.Culture);
content = textTemplate?.Content;
}
return new TextTemplateContentDto return new TextTemplateContentDto
{ {
@ -36,41 +57,6 @@ public class TextTemplateContentAppService : AbpTextTemplatingAppServiceBase, IT
}; };
} }
//public virtual Task<PagedResultDto<TextTemplateDefinitionDto>> GetListAsync(TextTemplateDefinitionGetListInput input)
//{
// var templates = new List<TextTemplateDefinitionDto>();
// var templateDefinitions = TemplateDefinitionManager.GetAll();
// var filterTemplates = templateDefinitions
// .WhereIf(!input.Filter.IsNullOrWhiteSpace(), x =>
// x.Name.Contains(input.Filter) || x.Layout.Contains(input.Filter))
// .Skip(input.SkipCount)
// .Take(input.MaxResultCount);
// foreach (var templateDefinition in filterTemplates)
// {
// var layout = templateDefinition.Layout;
// if (!layout.IsNullOrWhiteSpace())
// {
// var layoutDefinition = GetTemplateDefinition(templateDefinition.Layout);
// layout = layoutDefinition.DisplayName.Localize(StringLocalizerFactory);
// }
// var result = new TextTemplateDefinitionDto
// {
// DefaultCultureName = templateDefinition.DefaultCultureName,
// IsInlineLocalized = templateDefinition.IsInlineLocalized,
// IsLayout = templateDefinition.IsLayout,
// Layout = layout,
// Name = templateDefinition.Name,
// DisplayName = templateDefinition.DisplayName.Localize(StringLocalizerFactory),
// };
// templates.Add(result);
// }
// return Task.FromResult(new PagedResultDto<TextTemplateDefinitionDto>(templateDefinitions.Count, templates));
//}
[Authorize(AbpTextTemplatingPermissions.TextTemplateContent.Delete)] [Authorize(AbpTextTemplatingPermissions.TextTemplateContent.Delete)]
public async virtual Task RestoreToDefaultAsync(string name, TextTemplateRestoreInput input) public async virtual Task RestoreToDefaultAsync(string name, TextTemplateRestoreInput input)
{ {
@ -89,13 +75,13 @@ public class TextTemplateContentAppService : AbpTextTemplatingAppServiceBase, IT
{ {
var templateDefinition = await GetTemplateDefinition(name); var templateDefinition = await GetTemplateDefinition(name);
var template = await TextTemplateRepository.FindByNameAsync(name, input.Culture); var template = await TextTemplateRepository.FindByNameAsync(templateDefinition.Name, input.Culture);
if (template == null) if (template == null)
{ {
template = new TextTemplate( template = new TextTemplate(
GuidGenerator.Create(), GuidGenerator.Create(),
templateDefinition.Name, templateDefinition.Name,
templateDefinition.DisplayName.Localize(StringLocalizerFactory), LocalizableStringSerializer.Serialize(templateDefinition.DisplayName),
input.Content, input.Content,
input.Culture); input.Culture);

3
aspnet-core/modules/text-templating/LINGYUN.Abp.TextTemplating.Domain/LINGYUN/Abp/TextTemplating/AbpTextTemplatingDomainModule.cs

@ -35,7 +35,8 @@ public class AbpTextTemplatingDomainModule : AbpModule
options.EtoMappings.Add<TextTemplate, TextTemplateEto>(); options.EtoMappings.Add<TextTemplate, TextTemplateEto>();
options.EtoMappings.Add<TextTemplateDefinition, TextTemplateDefinitionEto>(); options.EtoMappings.Add<TextTemplateDefinition, TextTemplateDefinitionEto>();
options.AutoEventSelectors.Add<TextTemplate>(); // TODO: CAP组件异常将导致应用无法启动, 临时禁用
// options.AutoEventSelectors.Add<TextTemplate>();
}); });
if (context.Services.IsDataMigrationEnvironment()) if (context.Services.IsDataMigrationEnvironment())

Loading…
Cancel
Save