From a7d1568cc93b8d7bc04c07ab0a8b410c5a814ac4 Mon Sep 17 00:00:00 2001
From: cKey <35512826+colinin@users.noreply.github.com>
Date: Tue, 5 Jul 2022 15:26:13 +0800
Subject: [PATCH 1/3] feat: standard interface to access global localized text
resources
---
aspnet-core/LINGYUN.MicroService.All.sln | 7 +
.../FodyWeavers.xml | 3 +
.../FodyWeavers.xsd | 30 ++++
...YUN.Abp.AspNetCore.Mvc.Localization.csproj | 23 +++
.../AbpAspNetCoreMvcLocalizationModule.cs | 43 ++++++
.../Mvc/Localization/GetTextByKeyInput.cs | 17 +++
.../Mvc/Localization/GetTextsInput.cs | 19 +++
.../Mvc/Localization/ILanguageAppService.cs | 11 ++
.../Mvc/Localization/IResourceAppService.cs | 11 ++
.../Mvc/Localization/ITextAppService.cs | 13 ++
.../Mvc/Localization/LanguageAppService.cs | 33 ++++
.../Mvc/Localization/LanguageController.cs | 27 ++++
.../Mvc/Localization}/LanguageDto.cs | 8 +-
.../Mvc/Localization/ResourceAppService.cs | 34 +++++
.../Mvc/Localization/ResourceController.cs | 27 ++++
.../Mvc/Localization/ResourceDto.cs | 9 ++
.../Mvc/Localization/Resources/en.json | 21 +++
.../Mvc/Localization/Resources/zh-Hans.json | 21 +++
.../Mvc/Localization/TextAppService.cs | 143 ++++++++++++++++++
.../Mvc/Localization/TextController.cs | 34 +++++
.../Mvc/Localization}/TextDifferenceDto.cs | 6 +-
.../AspNetCore/Mvc/Localization}/TextDto.cs | 6 +-
.../CreateOrUpdateLanguageInput.cs | 25 ---
.../CreateOrUpdateResourceInput.cs | 20 ---
.../CreateOrUpdateTextInput.cs | 10 --
.../LocalizationManagement/CreateTextInput.cs | 20 ---
.../GetLanguagesInput.cs | 9 --
.../GetResourcesInput.cs | 9 --
.../LocalizationManagement/GetTextsInput.cs | 24 ---
.../ILanguageAppService.cs | 19 ---
.../IResourceAppService.cs | 18 ---
.../LocalizationManagement/ITextAppService.cs | 13 +-
.../Abp/LocalizationManagement/ResourceDto.cs | 13 --
.../RestoreDefaultTextInput.cs | 19 +++
.../{GetTextByKeyInput.cs => SetTextInput.cs} | 13 +-
.../LocalizationManagement/UpdateTextInput.cs | 6 -
.../LanguageAppService.cs | 73 ---------
.../LocalizationAppServiceBase.cs | 13 ++
...ationManagementApplicationMapperProfile.cs | 6 +-
.../ResourceAppService.cs | 78 ----------
.../LocalizationManagement/TextAppService.cs | 98 +++++-------
.../Localization/Resources/en.json | 24 +--
.../Localization/Resources/zh-Hans.json | 24 +--
.../LocalizationManagement/ITextRepository.cs | 25 +--
.../LocalizationStore.cs | 2 +-
.../EfCoreTextRepository.cs | 44 +++---
....Abp.LocalizationManagement.HttpApi.csproj | 5 +-
.../AbpLocalizationManagementHttpApiModule.cs | 9 +-
.../LanguageController.cs | 62 --------
.../ResourceController.cs | 62 --------
.../LocalizationManagement/TextController.cs | 40 +----
.../BackendAdminHttpApiHostModule.cs | 2 +
...roService.BackendAdmin.HttpApi.Host.csproj | 1 +
...onManagementHttpApiHostModule.Configure.cs | 5 +
...ice.PlatformManagement.HttpApi.Host.csproj | 1 +
.../PlatformManagementHttpApiHostModule.cs | 2 +
...ervice.RealtimeMessage.HttpApi.Host.csproj | 1 +
.../RealtimeMessageHttpApiHostModule.cs | 2 +
...Service.TaskManagement.HttpApi.Host.csproj | 2 +
...skManagementHttpApiHostModule.Configure.cs | 13 ++
.../TaskManagementHttpApiHostModule.cs | 4 +
...ice.WebhooksManagement.HttpApi.Host.csproj | 1 +
.../WebhooksManagementHttpApiHostModule.cs | 2 +
...ice.WorkflowManagement.HttpApi.Host.csproj | 2 +
...owManagementHttpApiHostModule.Configure.cs | 13 ++
.../WorkflowManagementHttpApiHostModule.cs | 6 +-
.../IdentityServerHttpApiHostModule.cs | 2 +
...Service.identityServer.HttpApi.Host.csproj | 1 +
68 files changed, 712 insertions(+), 677 deletions(-)
create mode 100644 aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/FodyWeavers.xml
create mode 100644 aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/FodyWeavers.xsd
create mode 100644 aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN.Abp.AspNetCore.Mvc.Localization.csproj
create mode 100644 aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/AbpAspNetCoreMvcLocalizationModule.cs
create mode 100644 aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetTextByKeyInput.cs
create mode 100644 aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetTextsInput.cs
create mode 100644 aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ILanguageAppService.cs
create mode 100644 aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/IResourceAppService.cs
create mode 100644 aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ITextAppService.cs
create mode 100644 aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageAppService.cs
create mode 100644 aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageController.cs
rename aspnet-core/modules/{lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement => localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization}/LanguageDto.cs (52%)
create mode 100644 aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceAppService.cs
create mode 100644 aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceController.cs
create mode 100644 aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceDto.cs
create mode 100644 aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/Resources/en.json
create mode 100644 aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/Resources/zh-Hans.json
create mode 100644 aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/TextAppService.cs
create mode 100644 aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/TextController.cs
rename aspnet-core/modules/{lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement => localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization}/TextDifferenceDto.cs (68%)
rename aspnet-core/modules/{lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement => localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization}/TextDto.cs (61%)
delete mode 100644 aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/CreateOrUpdateLanguageInput.cs
delete mode 100644 aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/CreateOrUpdateResourceInput.cs
delete mode 100644 aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/CreateOrUpdateTextInput.cs
delete mode 100644 aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/CreateTextInput.cs
delete mode 100644 aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/GetLanguagesInput.cs
delete mode 100644 aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/GetResourcesInput.cs
delete mode 100644 aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/GetTextsInput.cs
delete mode 100644 aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/ILanguageAppService.cs
delete mode 100644 aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/IResourceAppService.cs
delete mode 100644 aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/ResourceDto.cs
create mode 100644 aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/RestoreDefaultTextInput.cs
rename aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/{GetTextByKeyInput.cs => SetTextInput.cs} (79%)
delete mode 100644 aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/UpdateTextInput.cs
delete mode 100644 aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/LanguageAppService.cs
create mode 100644 aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/LocalizationAppServiceBase.cs
delete mode 100644 aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/ResourceAppService.cs
delete mode 100644 aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN/Abp/LocalizationManagement/LanguageController.cs
delete mode 100644 aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN/Abp/LocalizationManagement/ResourceController.cs
diff --git a/aspnet-core/LINGYUN.MicroService.All.sln b/aspnet-core/LINGYUN.MicroService.All.sln
index 886b2f755..d95121a18 100644
--- a/aspnet-core/LINGYUN.MicroService.All.sln
+++ b/aspnet-core/LINGYUN.MicroService.All.sln
@@ -426,6 +426,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TextTemplating.
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.Common", "modules\common\LINGYUN.Abp.Notifications.Common\LINGYUN.Abp.Notifications.Common.csproj", "{0CE035CF-2D8A-4559-93EC-ADBEC4237C61}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.AspNetCore.Mvc.Localization", "modules\localization\LINGYUN.Abp.AspNetCore.Mvc.Localization\LINGYUN.Abp.AspNetCore.Mvc.Localization.csproj", "{995DB1CE-A2FC-4468-A521-4207FD587EC5}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -1104,6 +1106,10 @@ Global
{0CE035CF-2D8A-4559-93EC-ADBEC4237C61}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0CE035CF-2D8A-4559-93EC-ADBEC4237C61}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0CE035CF-2D8A-4559-93EC-ADBEC4237C61}.Release|Any CPU.Build.0 = Release|Any CPU
+ {995DB1CE-A2FC-4468-A521-4207FD587EC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {995DB1CE-A2FC-4468-A521-4207FD587EC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {995DB1CE-A2FC-4468-A521-4207FD587EC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {995DB1CE-A2FC-4468-A521-4207FD587EC5}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1312,6 +1318,7 @@ Global
{130F8ED1-A64F-48DE-BF43-18EAD19CAF63} = {ABD89F39-62D9-439E-8662-BE4F36BFA04F}
{A53FE09E-6B1C-46C0-9422-C313D14AE9E4} = {ABD89F39-62D9-439E-8662-BE4F36BFA04F}
{0CE035CF-2D8A-4559-93EC-ADBEC4237C61} = {8AC72641-30D3-4ACF-89FA-808FADC55C2E}
+ {995DB1CE-A2FC-4468-A521-4207FD587EC5} = {90E88EAC-4291-4406-8D88-EFDF61B11292}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C95FDF91-16F2-4A8B-A4BE-0E62D1B66718}
diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/FodyWeavers.xml b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/FodyWeavers.xml
new file mode 100644
index 000000000..17d32672d
--- /dev/null
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/FodyWeavers.xsd b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/FodyWeavers.xsd
new file mode 100644
index 000000000..11da52550
--- /dev/null
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN.Abp.AspNetCore.Mvc.Localization.csproj b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN.Abp.AspNetCore.Mvc.Localization.csproj
new file mode 100644
index 000000000..b253f4cec
--- /dev/null
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN.Abp.AspNetCore.Mvc.Localization.csproj
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+ net6.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/AbpAspNetCoreMvcLocalizationModule.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/AbpAspNetCoreMvcLocalizationModule.cs
new file mode 100644
index 000000000..29acb159f
--- /dev/null
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/AbpAspNetCoreMvcLocalizationModule.cs
@@ -0,0 +1,43 @@
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp.AspNetCore.Mvc;
+using Volo.Abp.AspNetCore.Mvc.Localization;
+using Volo.Abp.Localization;
+using Volo.Abp.Localization.Resources.AbpLocalization;
+using Volo.Abp.Modularity;
+using Volo.Abp.VirtualFileSystem;
+
+namespace LINGYUN.Abp.AspNetCore.Mvc.Localization;
+
+[DependsOn(typeof(AbpAspNetCoreMvcModule))]
+public class AbpAspNetCoreMvcLocalizationModule : AbpModule
+{
+ public override void PreConfigureServices(ServiceConfigurationContext context)
+ {
+ PreConfigure(options =>
+ {
+ options.AddAssemblyResource(
+ typeof(AbpLocalizationResource),
+ typeof(AbpAspNetCoreMvcLocalizationModule).Assembly);
+ });
+
+ PreConfigure(mvcBuilder =>
+ {
+ mvcBuilder.AddApplicationPartIfNotExists(typeof(AbpAspNetCoreMvcLocalizationModule).Assembly);
+ });
+ }
+
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ Configure(options =>
+ {
+ options.FileSets.AddEmbedded();
+ });
+
+ Configure(options =>
+ {
+ options.Resources
+ .Get()
+ .AddVirtualJson("/LINGYUN/Abp/AspNetCore/Mvc/Localization/Resources");
+ });
+ }
+}
\ No newline at end of file
diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetTextByKeyInput.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetTextByKeyInput.cs
new file mode 100644
index 000000000..0029e1567
--- /dev/null
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetTextByKeyInput.cs
@@ -0,0 +1,17 @@
+using System.ComponentModel.DataAnnotations;
+using Volo.Abp.Validation;
+
+namespace LINGYUN.Abp.AspNetCore.Mvc.Localization
+{
+ public class GetTextByKeyInput
+ {
+ [Required]
+ public string Key { get; set; }
+
+ [Required]
+ public string CultureName { get; set; }
+
+ [Required]
+ public string ResourceName { get; set; }
+ }
+}
diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetTextsInput.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetTextsInput.cs
new file mode 100644
index 000000000..87e0c3711
--- /dev/null
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetTextsInput.cs
@@ -0,0 +1,19 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace LINGYUN.Abp.AspNetCore.Mvc.Localization
+{
+ public class GetTextsInput
+ {
+ [Required]
+ public string CultureName { get; set; }
+
+ [Required]
+ public string TargetCultureName { get; set; }
+
+ public string ResourceName { get; set; }
+
+ public bool? OnlyNull { get; set; }
+
+ public string Filter { get; set; }
+ }
+}
diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ILanguageAppService.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ILanguageAppService.cs
new file mode 100644
index 000000000..e120cc3ac
--- /dev/null
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ILanguageAppService.cs
@@ -0,0 +1,11 @@
+using System.Threading.Tasks;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Application.Services;
+
+namespace LINGYUN.Abp.AspNetCore.Mvc.Localization
+{
+ public interface ILanguageAppService : IApplicationService
+ {
+ Task> GetListAsync();
+ }
+}
diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/IResourceAppService.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/IResourceAppService.cs
new file mode 100644
index 000000000..bcfc40d46
--- /dev/null
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/IResourceAppService.cs
@@ -0,0 +1,11 @@
+using System.Threading.Tasks;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Application.Services;
+
+namespace LINGYUN.Abp.AspNetCore.Mvc.Localization
+{
+ public interface IResourceAppService : IApplicationService
+ {
+ Task> GetListAsync();
+ }
+}
diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ITextAppService.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ITextAppService.cs
new file mode 100644
index 000000000..2526952f6
--- /dev/null
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ITextAppService.cs
@@ -0,0 +1,13 @@
+using System.Threading.Tasks;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Application.Services;
+
+namespace LINGYUN.Abp.AspNetCore.Mvc.Localization
+{
+ public interface ITextAppService : IApplicationService
+ {
+ Task GetByCultureKeyAsync(GetTextByKeyInput input);
+
+ Task> GetListAsync(GetTextsInput input);
+ }
+}
diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageAppService.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageAppService.cs
new file mode 100644
index 000000000..77b191e10
--- /dev/null
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageAppService.cs
@@ -0,0 +1,33 @@
+using Microsoft.AspNetCore.Authorization;
+using System.Linq;
+using System.Threading.Tasks;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Application.Services;
+using Volo.Abp.Localization;
+
+namespace LINGYUN.Abp.AspNetCore.Mvc.Localization
+{
+ [Authorize]
+ public class LanguageAppService : ApplicationService, ILanguageAppService
+ {
+ private readonly ILanguageProvider _languageProvider;
+ public LanguageAppService(ILanguageProvider languageProvider)
+ {
+ _languageProvider = languageProvider;
+ }
+
+ public virtual async Task> GetListAsync()
+ {
+ var languages = await _languageProvider.GetLanguagesAsync();
+
+ return new ListResultDto(
+ languages.Select(l => new LanguageDto
+ {
+ CultureName = l.CultureName,
+ UiCultureName = l.UiCultureName,
+ DisplayName = l.DisplayName,
+ FlagIcon = l.FlagIcon
+ }).ToList());
+ }
+ }
+}
diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageController.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageController.cs
new file mode 100644
index 000000000..6d02e8577
--- /dev/null
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageController.cs
@@ -0,0 +1,27 @@
+using Microsoft.AspNetCore.Mvc;
+using System.Threading.Tasks;
+using Volo.Abp;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.AspNetCore.Mvc;
+
+namespace LINGYUN.Abp.AspNetCore.Mvc.Localization
+{
+ [Area("abp")]
+ [RemoteService(Name = "abp")]
+ [Route("api/abp/localization/languages")]
+ public class LanguageController : AbpController, ILanguageAppService
+ {
+ private readonly ILanguageAppService _service;
+
+ public LanguageController(ILanguageAppService service)
+ {
+ _service = service;
+ }
+
+ [HttpGet]
+ public virtual Task> GetListAsync()
+ {
+ return _service.GetListAsync();
+ }
+ }
+}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/LanguageDto.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageDto.cs
similarity index 52%
rename from aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/LanguageDto.cs
rename to aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageDto.cs
index 1afaf3679..e0e38627c 100644
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/LanguageDto.cs
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageDto.cs
@@ -1,11 +1,7 @@
-using System;
-using Volo.Abp.Application.Dtos;
-
-namespace LINGYUN.Abp.LocalizationManagement
+namespace LINGYUN.Abp.AspNetCore.Mvc.Localization
{
- public class LanguageDto : AuditedEntityDto
+ public class LanguageDto
{
- public bool Enable { get; set; }
public string CultureName { get; set; }
public string UiCultureName { get; set; }
public string DisplayName { get; set; }
diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceAppService.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceAppService.cs
new file mode 100644
index 000000000..fb87bcafa
--- /dev/null
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceAppService.cs
@@ -0,0 +1,34 @@
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.Extensions.Options;
+using System.Linq;
+using System.Threading.Tasks;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Application.Services;
+using Volo.Abp.Localization;
+
+namespace LINGYUN.Abp.AspNetCore.Mvc.Localization
+{
+ [Authorize]
+ public class ResourceAppService : ApplicationService, IResourceAppService
+ {
+ private readonly AbpLocalizationOptions _localizationOptions;
+
+ public ResourceAppService(
+ IOptions localizationOptions)
+ {
+ _localizationOptions = localizationOptions.Value;
+ }
+
+ public virtual Task> GetListAsync()
+ {
+ var resources = _localizationOptions.Resources.Select(x => new ResourceDto
+ {
+ Name = x.Value.ResourceName,
+ DisplayName = x.Value.ResourceName,
+ Description = x.Value.ResourceName,
+ });
+
+ return Task.FromResult(new ListResultDto(resources.ToList()));
+ }
+ }
+}
diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceController.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceController.cs
new file mode 100644
index 000000000..d2cada1c3
--- /dev/null
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceController.cs
@@ -0,0 +1,27 @@
+using Microsoft.AspNetCore.Mvc;
+using System.Threading.Tasks;
+using Volo.Abp;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.AspNetCore.Mvc;
+
+namespace LINGYUN.Abp.AspNetCore.Mvc.Localization
+{
+ [Area("abp")]
+ [RemoteService(Name = "abp")]
+ [Route("api/abp/localization/resources")]
+ public class ResourceController : AbpController, IResourceAppService
+ {
+ private readonly IResourceAppService _service;
+
+ public ResourceController(IResourceAppService service)
+ {
+ _service = service;
+ }
+
+ [HttpGet]
+ public virtual Task> GetListAsync()
+ {
+ return _service.GetListAsync();
+ }
+ }
+}
diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceDto.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceDto.cs
new file mode 100644
index 000000000..d47887849
--- /dev/null
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceDto.cs
@@ -0,0 +1,9 @@
+namespace LINGYUN.Abp.AspNetCore.Mvc.Localization
+{
+ public class ResourceDto
+ {
+ public string Name { get; set; }
+ public string DisplayName { get; set; }
+ public string Description { get; set; }
+ }
+}
diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/Resources/en.json b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/Resources/en.json
new file mode 100644
index 000000000..f3e7111d4
--- /dev/null
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/Resources/en.json
@@ -0,0 +1,21 @@
+{
+ "culture": "en",
+ "texts": {
+ "Languages": "Languages",
+ "Resources": "Resources",
+ "Texts": "Texts",
+ "DisplayName:Key": "Key",
+ "DisplayName:Value": "Value",
+ "Description:Name": "Name",
+ "Description:CultureName": "Culture Name",
+ "Description:ResourceName": "Resource Name",
+ "Description:TargetCultureName": "Target Culture",
+ "Description:TargetValue": "Target Value",
+ "Description:OnlyNull": "Only Null",
+ "Description:Filter": "Filter",
+ "Description:UiCultureName": "Ui Culture Name",
+ "Description:DisplayName": "Display Name",
+ "Description:FlagIcon": "Flag Icon",
+ "Description:Description": "Description"
+ }
+}
\ No newline at end of file
diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/Resources/zh-Hans.json b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/Resources/zh-Hans.json
new file mode 100644
index 000000000..394983e66
--- /dev/null
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/Resources/zh-Hans.json
@@ -0,0 +1,21 @@
+{
+ "culture": "zh-Hans",
+ "texts": {
+ "Languages": "语言",
+ "Resources": "资源",
+ "Texts": "文档",
+ "DisplayName:Key": "键名",
+ "DisplayName:Value": "键值",
+ "Description:Name": "名称",
+ "Description:CultureName": "文化名称",
+ "Description:ResourceName": "资源名称",
+ "Description:TargetCultureName": "目标文化",
+ "Description:TargetValue": "目标值",
+ "Description:OnlyNull": "仅限空值",
+ "Description:Filter": "筛选",
+ "Description:UiCultureName": "Ui文件名称",
+ "Description:DisplayName": "显示名称",
+ "Description:FlagIcon": "旗帜图标",
+ "Description:Description": "描述"
+ }
+}
\ No newline at end of file
diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/TextAppService.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/TextAppService.cs
new file mode 100644
index 000000000..3df08c82e
--- /dev/null
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/TextAppService.cs
@@ -0,0 +1,143 @@
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.Extensions.Localization;
+using Microsoft.Extensions.Options;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Application.Services;
+using Volo.Abp.Localization;
+
+namespace LINGYUN.Abp.AspNetCore.Mvc.Localization
+{
+ [Authorize]
+ public class TextAppService : ApplicationService, ITextAppService
+ {
+ private readonly AbpLocalizationOptions _localizationOptions;
+ private readonly IStringLocalizerFactory _localizerFactory;
+ public TextAppService(
+ IStringLocalizerFactory stringLocalizerFactory,
+ IOptions localizationOptions)
+ {
+ _localizerFactory = stringLocalizerFactory;
+ _localizationOptions = localizationOptions.Value;
+ }
+
+ public virtual Task GetByCultureKeyAsync(GetTextByKeyInput input)
+ {
+ var resource = _localizationOptions.Resources
+ .Where(l => l.Value.ResourceName.Equals(input.ResourceName))
+ .Select(l => l.Value)
+ .FirstOrDefault();
+
+ IEnumerable localizedStrings = new List();
+ var localizer = _localizerFactory.Create(resource.ResourceType);
+
+ using (CultureHelper.Use(input.CultureName))
+ {
+ localizedStrings = localizer.GetAllStrings(true);
+
+ var result = new TextDto
+ {
+ Key = input.Key,
+ CultureName = input.CultureName,
+ ResourceName = input.ResourceName,
+ Value = localizer[input.Key]?.Value
+ };
+
+ return Task.FromResult(result);
+ }
+ }
+
+ public virtual Task> GetListAsync(GetTextsInput input)
+ {
+ var result = new List();
+
+ if (input.ResourceName.IsNullOrWhiteSpace())
+ {
+ foreach (var resource in _localizationOptions.Resources)
+ {
+ result.AddRange(GetTextDifferences(resource.Value, input.CultureName, input.TargetCultureName, input.OnlyNull));
+ }
+ }
+ else
+ {
+ var resource = _localizationOptions.Resources
+ .Where(l => l.Value.ResourceName.Equals(input.ResourceName))
+ .Select(l => l.Value)
+ .FirstOrDefault();
+ if (resource != null)
+ {
+ result.AddRange(GetTextDifferences(resource, input.CultureName, input.TargetCultureName, input.OnlyNull));
+ }
+ }
+
+ return Task.FromResult(new ListResultDto(result));
+ }
+
+ protected virtual IEnumerable GetTextDifferences(
+ LocalizationResource resource,
+ string cultureName,
+ string targetCultureName,
+ bool? onlyNull = null)
+ {
+ var result = new List();
+
+ IEnumerable localizedStrings = new List();
+ IEnumerable targetLocalizedStrings = new List();
+ var localizer = _localizerFactory.Create(resource.ResourceType);
+
+ using (CultureHelper.Use(cultureName))
+ {
+ localizedStrings = localizer.GetAllStrings(true);
+ }
+
+ if (Equals(cultureName, targetCultureName))
+ {
+ targetLocalizedStrings = localizedStrings;
+ }
+ else
+ {
+ using (CultureHelper.Use(targetCultureName))
+ {
+ targetLocalizedStrings = localizer.GetAllStrings(true);
+ }
+ }
+
+ foreach (var localizedString in localizedStrings)
+ {
+ var targetLocalizedString = targetLocalizedStrings.FirstOrDefault(l => l.Name.Equals(localizedString.Name));
+ if (onlyNull == true)
+ {
+ if (targetLocalizedString == null || targetLocalizedString.Value.IsNullOrWhiteSpace())
+ {
+ result.Add(new TextDifferenceDto
+ {
+ CultureName = cultureName,
+ TargetCultureName = targetCultureName,
+ Key = localizedString.Name,
+ Value = localizedString.Value,
+ TargetValue = null,
+ ResourceName = resource.ResourceName
+ });
+ }
+ }
+ else
+ {
+ result.Add(new TextDifferenceDto
+ {
+ CultureName = cultureName,
+ TargetCultureName = targetCultureName,
+ Key = localizedString.Name,
+ Value = localizedString.Value,
+ TargetValue = targetLocalizedString?.Value,
+ ResourceName = resource.ResourceName
+ });
+ }
+ }
+
+ return result;
+ }
+ }
+}
diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/TextController.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/TextController.cs
new file mode 100644
index 000000000..7eda7c0f6
--- /dev/null
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/TextController.cs
@@ -0,0 +1,34 @@
+using Microsoft.AspNetCore.Mvc;
+using System.Threading.Tasks;
+using Volo.Abp;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.AspNetCore.Mvc;
+
+namespace LINGYUN.Abp.AspNetCore.Mvc.Localization
+{
+ [Area("abp")]
+ [RemoteService(Name = "abp")]
+ [Route("api/abp/localization/texts")]
+ public class TextController : AbpController, ITextAppService
+ {
+ private readonly ITextAppService _service;
+
+ public TextController(ITextAppService service)
+ {
+ _service = service;
+ }
+
+ [HttpGet]
+ [Route("by-culture-key")]
+ public virtual Task GetByCultureKeyAsync(GetTextByKeyInput input)
+ {
+ return _service.GetByCultureKeyAsync(input);
+ }
+
+ [HttpGet]
+ public virtual Task> GetListAsync(GetTextsInput input)
+ {
+ return _service.GetListAsync(input);
+ }
+ }
+}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/TextDifferenceDto.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/TextDifferenceDto.cs
similarity index 68%
rename from aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/TextDifferenceDto.cs
rename to aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/TextDifferenceDto.cs
index 28a4a5a9b..9675e7581 100644
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/TextDifferenceDto.cs
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/TextDifferenceDto.cs
@@ -1,8 +1,6 @@
-using Volo.Abp.Application.Dtos;
-
-namespace LINGYUN.Abp.LocalizationManagement
+namespace LINGYUN.Abp.AspNetCore.Mvc.Localization
{
- public class TextDifferenceDto : EntityDto
+ public class TextDifferenceDto
{
public string CultureName { get; set; }
public string Key { get; set; }
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/TextDto.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/TextDto.cs
similarity index 61%
rename from aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/TextDto.cs
rename to aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/TextDto.cs
index 44bd7863b..9b4e77322 100644
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/TextDto.cs
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/TextDto.cs
@@ -1,8 +1,6 @@
-using Volo.Abp.Application.Dtos;
-
-namespace LINGYUN.Abp.LocalizationManagement
+namespace LINGYUN.Abp.AspNetCore.Mvc.Localization
{
- public class TextDto : EntityDto
+ public class TextDto
{
public string Key { get; set; }
public string Value { get; set; }
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/CreateOrUpdateLanguageInput.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/CreateOrUpdateLanguageInput.cs
deleted file mode 100644
index 131ad2098..000000000
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/CreateOrUpdateLanguageInput.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System.ComponentModel.DataAnnotations;
-using Volo.Abp.Validation;
-
-namespace LINGYUN.Abp.LocalizationManagement
-{
- public class CreateOrUpdateLanguageInput
- {
- public virtual bool Enable { get; set; }
-
- [Required]
- [DynamicStringLength(typeof(LanguageConsts), nameof(LanguageConsts.MaxCultureNameLength))]
- public string CultureName { get; set; }
-
- [Required]
- [DynamicStringLength(typeof(LanguageConsts), nameof(LanguageConsts.MaxUiCultureNameLength))]
- public string UiCultureName { get; set; }
-
- [Required]
- [DynamicStringLength(typeof(LanguageConsts), nameof(LanguageConsts.MaxDisplayNameLength))]
- public string DisplayName { get; set; }
-
- [DynamicStringLength(typeof(LanguageConsts), nameof(LanguageConsts.MaxFlagIconLength))]
- public string FlagIcon { get; set; }
- }
-}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/CreateOrUpdateResourceInput.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/CreateOrUpdateResourceInput.cs
deleted file mode 100644
index cc2a07ef8..000000000
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/CreateOrUpdateResourceInput.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System.ComponentModel.DataAnnotations;
-using Volo.Abp.Validation;
-
-namespace LINGYUN.Abp.LocalizationManagement
-{
- public class CreateOrUpdateResourceInput
- {
- public bool Enable { get; set; }
-
- [Required]
- [DynamicStringLength(typeof(ResourceConsts), nameof(ResourceConsts.MaxNameLength))]
- public string Name { get; set; }
-
- [DynamicStringLength(typeof(ResourceConsts), nameof(ResourceConsts.MaxDisplayNameLength))]
- public string DisplayName { get; set; }
-
- [DynamicStringLength(typeof(ResourceConsts), nameof(ResourceConsts.MaxDescriptionLength))]
- public string Description { get; set; }
- }
-}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/CreateOrUpdateTextInput.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/CreateOrUpdateTextInput.cs
deleted file mode 100644
index f35d659b3..000000000
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/CreateOrUpdateTextInput.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using Volo.Abp.Validation;
-
-namespace LINGYUN.Abp.LocalizationManagement
-{
- public class CreateOrUpdateTextInput
- {
- [DynamicStringLength(typeof(TextConsts), nameof(TextConsts.MaxValueLength))]
- public string Value { get; set; }
- }
-}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/CreateTextInput.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/CreateTextInput.cs
deleted file mode 100644
index cfa8dcd50..000000000
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/CreateTextInput.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System.ComponentModel.DataAnnotations;
-using Volo.Abp.Validation;
-
-namespace LINGYUN.Abp.LocalizationManagement
-{
- public class CreateTextInput : CreateOrUpdateTextInput
- {
- [Required]
- [DynamicStringLength(typeof(ResourceConsts), nameof(ResourceConsts.MaxNameLength))]
- public string ResourceName { get; set; }
-
- [Required]
- [DynamicStringLength(typeof(TextConsts), nameof(TextConsts.MaxKeyLength))]
- public string Key { get; set; }
-
- [Required]
- [DynamicStringLength(typeof(LanguageConsts), nameof(LanguageConsts.MaxCultureNameLength))]
- public string CultureName { get; set; }
- }
-}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/GetLanguagesInput.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/GetLanguagesInput.cs
deleted file mode 100644
index a74174c47..000000000
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/GetLanguagesInput.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using Volo.Abp.Application.Dtos;
-
-namespace LINGYUN.Abp.LocalizationManagement
-{
- public class GetLanguagesInput : PagedAndSortedResultRequestDto
- {
- public string Filter { get; set; }
- }
-}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/GetResourcesInput.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/GetResourcesInput.cs
deleted file mode 100644
index d6ec662ac..000000000
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/GetResourcesInput.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using Volo.Abp.Application.Dtos;
-
-namespace LINGYUN.Abp.LocalizationManagement
-{
- public class GetResourcesInput : PagedAndSortedResultRequestDto
- {
- public string Filter { get; set; }
- }
-}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/GetTextsInput.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/GetTextsInput.cs
deleted file mode 100644
index f6516c1c0..000000000
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/GetTextsInput.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System.ComponentModel.DataAnnotations;
-using Volo.Abp.Application.Dtos;
-using Volo.Abp.Validation;
-
-namespace LINGYUN.Abp.LocalizationManagement
-{
- public class GetTextsInput : PagedAndSortedResultRequestDto
- {
- [Required]
- [DynamicStringLength(typeof(LanguageConsts), nameof(LanguageConsts.MaxCultureNameLength))]
- public string CultureName { get; set; }
-
- [Required]
- [DynamicStringLength(typeof(LanguageConsts), nameof(LanguageConsts.MaxCultureNameLength))]
- public string TargetCultureName { get; set; }
-
- [DynamicStringLength(typeof(ResourceConsts), nameof(ResourceConsts.MaxNameLength))]
- public string ResourceName { get; set; }
-
- public bool? OnlyNull { get; set; }
-
- public string Filter { get; set; }
- }
-}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/ILanguageAppService.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/ILanguageAppService.cs
deleted file mode 100644
index 6b037d4cf..000000000
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/ILanguageAppService.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using System;
-using System.Threading.Tasks;
-using Volo.Abp.Application.Dtos;
-using Volo.Abp.Application.Services;
-
-namespace LINGYUN.Abp.LocalizationManagement
-{
- public interface ILanguageAppService :
- ICrudAppService<
- LanguageDto,
- Guid,
- GetLanguagesInput,
- CreateOrUpdateLanguageInput,
- CreateOrUpdateLanguageInput
- >
- {
- Task> GetAllAsync();
- }
-}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/IResourceAppService.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/IResourceAppService.cs
deleted file mode 100644
index b8756ccbc..000000000
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/IResourceAppService.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using System;
-using System.Threading.Tasks;
-using Volo.Abp.Application.Dtos;
-using Volo.Abp.Application.Services;
-
-namespace LINGYUN.Abp.LocalizationManagement
-{
- public interface IResourceAppService :
- ICrudAppService<
- ResourceDto,
- Guid,
- GetResourcesInput,
- CreateOrUpdateResourceInput,
- CreateOrUpdateResourceInput>
- {
- Task> GetAllAsync();
- }
-}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/ITextAppService.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/ITextAppService.cs
index 5a002da47..cf788ae11 100644
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/ITextAppService.cs
+++ b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/ITextAppService.cs
@@ -3,15 +3,10 @@ using Volo.Abp.Application.Services;
namespace LINGYUN.Abp.LocalizationManagement
{
- public interface ITextAppService :
- ICrudAppService<
- TextDto,
- TextDifferenceDto,
- int,
- GetTextsInput,
- CreateTextInput,
- UpdateTextInput>
+ public interface ITextAppService : IApplicationService
{
- Task GetByCultureKeyAsync(GetTextByKeyInput input);
+ Task SetTextAsync(SetTextInput input);
+
+ Task RestoreToDefaultAsync(RestoreDefaultTextInput input);
}
}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/ResourceDto.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/ResourceDto.cs
deleted file mode 100644
index b6f986621..000000000
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/ResourceDto.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using System;
-using Volo.Abp.Application.Dtos;
-
-namespace LINGYUN.Abp.LocalizationManagement
-{
- public class ResourceDto : AuditedEntityDto
- {
- public bool Enable { get; set; }
- public string Name { get; set; }
- public string DisplayName { get; set; }
- public string Description { get; set; }
- }
-}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/RestoreDefaultTextInput.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/RestoreDefaultTextInput.cs
new file mode 100644
index 000000000..7eb68931b
--- /dev/null
+++ b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/RestoreDefaultTextInput.cs
@@ -0,0 +1,19 @@
+using System.ComponentModel.DataAnnotations;
+using Volo.Abp.Validation;
+
+namespace LINGYUN.Abp.LocalizationManagement;
+
+public class RestoreDefaultTextInput
+{
+ [Required]
+ [DynamicStringLength(typeof(ResourceConsts), nameof(ResourceConsts.MaxNameLength))]
+ public string ResourceName { get; set; }
+
+ [Required]
+ [DynamicStringLength(typeof(TextConsts), nameof(TextConsts.MaxKeyLength))]
+ public string Key { get; set; }
+
+ [Required]
+ [DynamicStringLength(typeof(LanguageConsts), nameof(LanguageConsts.MaxCultureNameLength))]
+ public string CultureName { get; set; }
+}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/GetTextByKeyInput.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/SetTextInput.cs
similarity index 79%
rename from aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/GetTextByKeyInput.cs
rename to aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/SetTextInput.cs
index f1ff271de..411a774ea 100644
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/GetTextByKeyInput.cs
+++ b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/SetTextInput.cs
@@ -1,10 +1,14 @@
-using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations;
using Volo.Abp.Validation;
namespace LINGYUN.Abp.LocalizationManagement
{
- public class GetTextByKeyInput
+ public class SetTextInput
{
+ [Required]
+ [DynamicStringLength(typeof(ResourceConsts), nameof(ResourceConsts.MaxNameLength))]
+ public string ResourceName { get; set; }
+
[Required]
[DynamicStringLength(typeof(TextConsts), nameof(TextConsts.MaxKeyLength))]
public string Key { get; set; }
@@ -13,8 +17,7 @@ namespace LINGYUN.Abp.LocalizationManagement
[DynamicStringLength(typeof(LanguageConsts), nameof(LanguageConsts.MaxCultureNameLength))]
public string CultureName { get; set; }
- [Required]
- [DynamicStringLength(typeof(ResourceConsts), nameof(ResourceConsts.MaxNameLength))]
- public string ResourceName { get; set; }
+ [DynamicStringLength(typeof(TextConsts), nameof(TextConsts.MaxValueLength))]
+ public string Value { get; set; }
}
}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/UpdateTextInput.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/UpdateTextInput.cs
deleted file mode 100644
index f448b0079..000000000
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/UpdateTextInput.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-namespace LINGYUN.Abp.LocalizationManagement
-{
- public class UpdateTextInput : CreateOrUpdateTextInput
- {
- }
-}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/LanguageAppService.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/LanguageAppService.cs
deleted file mode 100644
index c97ae46d7..000000000
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/LanguageAppService.cs
+++ /dev/null
@@ -1,73 +0,0 @@
-using LINGYUN.Abp.LocalizationManagement.Permissions;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using Volo.Abp.Application.Dtos;
-using Volo.Abp.Application.Services;
-
-namespace LINGYUN.Abp.LocalizationManagement
-{
- public class LanguageAppService :
- CrudAppService<
- Language,
- LanguageDto,
- Guid,
- GetLanguagesInput,
- CreateOrUpdateLanguageInput,
- CreateOrUpdateLanguageInput>,
- ILanguageAppService
- {
- public LanguageAppService(ILanguageRepository repository) : base(repository)
- {
- GetPolicyName = LocalizationManagementPermissions.Language.Default;
- GetListPolicyName = LocalizationManagementPermissions.Language.Default;
- CreatePolicyName = LocalizationManagementPermissions.Language.Create;
- UpdatePolicyName = LocalizationManagementPermissions.Language.Update;
- DeletePolicyName = LocalizationManagementPermissions.Language.Delete;
- }
-
- public virtual async Task> GetAllAsync()
- {
- await CheckGetListPolicyAsync();
-
- var languages = await Repository.GetListAsync();
-
- return new ListResultDto(
- ObjectMapper.Map, List>(languages));
- }
-
- protected override Language MapToEntity(CreateOrUpdateLanguageInput createInput)
- {
- return new Language(
- createInput.CultureName,
- createInput.UiCultureName,
- createInput.DisplayName,
- createInput.FlagIcon)
- {
- Enable = createInput.Enable
- };
- }
-
- protected override void MapToEntity(CreateOrUpdateLanguageInput updateInput, Language entity)
- {
- if (!string.Equals(entity.FlagIcon, updateInput.FlagIcon, StringComparison.InvariantCultureIgnoreCase))
- {
- entity.FlagIcon = updateInput.FlagIcon;
- }
- entity.ChangeCulture(updateInput.CultureName, updateInput.UiCultureName, updateInput.DisplayName);
- entity.Enable = updateInput.Enable;
- }
-
- protected override async Task> CreateFilteredQueryAsync(GetLanguagesInput input)
- {
- var query = await base.CreateFilteredQueryAsync(input);
-
- query = query.WhereIf(!input.Filter.IsNullOrWhiteSpace(),
- x => x.CultureName.Contains(input.Filter) || x.UiCultureName.Contains(input.Filter) ||
- x.DisplayName.Contains(input.Filter));
-
- return query;
- }
- }
-}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/LocalizationAppServiceBase.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/LocalizationAppServiceBase.cs
new file mode 100644
index 000000000..16973c2a9
--- /dev/null
+++ b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/LocalizationAppServiceBase.cs
@@ -0,0 +1,13 @@
+using LINGYUN.Abp.LocalizationManagement.Localization;
+using Volo.Abp.Application.Services;
+
+namespace LINGYUN.Abp.LocalizationManagement;
+
+public abstract class LocalizationAppServiceBase : ApplicationService
+{
+ protected LocalizationAppServiceBase()
+ {
+ LocalizationResource = typeof(LocalizationManagementResource);
+ ObjectMapperContext = typeof(AbpLocalizationManagementApplicationModule);
+ }
+}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/LocalizationManagementApplicationMapperProfile.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/LocalizationManagementApplicationMapperProfile.cs
index 5b8a4b1f9..6a85076fe 100644
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/LocalizationManagementApplicationMapperProfile.cs
+++ b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/LocalizationManagementApplicationMapperProfile.cs
@@ -1,15 +1,11 @@
using AutoMapper;
-
+
namespace LINGYUN.Abp.LocalizationManagement
{
public class LocalizationManagementApplicationMapperProfile : Profile
{
public LocalizationManagementApplicationMapperProfile()
{
- CreateMap();
- CreateMap();
- CreateMap();
- CreateMap();
}
}
}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/ResourceAppService.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/ResourceAppService.cs
deleted file mode 100644
index 6affc5c1e..000000000
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/ResourceAppService.cs
+++ /dev/null
@@ -1,78 +0,0 @@
-using LINGYUN.Abp.LocalizationManagement.Permissions;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using Volo.Abp.Application.Dtos;
-using Volo.Abp.Application.Services;
-
-namespace LINGYUN.Abp.LocalizationManagement
-{
- public class ResourceAppService :
- CrudAppService<
- Resource,
- ResourceDto,
- Guid,
- GetResourcesInput,
- CreateOrUpdateResourceInput,
- CreateOrUpdateResourceInput>,
- IResourceAppService
- {
- public ResourceAppService(IResourceRepository repository) : base(repository)
- {
- GetPolicyName = LocalizationManagementPermissions.Resource.Default;
- GetListPolicyName = LocalizationManagementPermissions.Resource.Default;
- CreatePolicyName = LocalizationManagementPermissions.Resource.Create;
- UpdatePolicyName = LocalizationManagementPermissions.Resource.Update;
- DeletePolicyName = LocalizationManagementPermissions.Resource.Delete;
- }
-
- public virtual async Task> GetAllAsync()
- {
- await CheckGetListPolicyAsync();
-
- var resources = await Repository.GetListAsync();
-
- return new ListResultDto(
- ObjectMapper.Map, List>(resources));
- }
-
- protected override Resource MapToEntity(CreateOrUpdateResourceInput createInput)
- {
- return new Resource(
- createInput.Name,
- createInput.DisplayName,
- createInput.Description)
- {
- Enable = createInput.Enable
- };
- }
-
- protected override void MapToEntity(CreateOrUpdateResourceInput updateInput, Resource entity)
- {
- if (!string.Equals(entity.Name, updateInput.Name, StringComparison.InvariantCultureIgnoreCase))
- {
- entity.Name = updateInput.Name;
- }
- if (!string.Equals(entity.DisplayName, updateInput.DisplayName, StringComparison.InvariantCultureIgnoreCase))
- {
- entity.DisplayName = updateInput.DisplayName;
- }
- if (!string.Equals(entity.Description, updateInput.Description, StringComparison.InvariantCultureIgnoreCase))
- {
- entity.Description = updateInput.Description;
- }
- entity.Enable = updateInput.Enable;
- }
-
- protected override async Task> CreateFilteredQueryAsync(GetResourcesInput input)
- {
- var query = await base.CreateFilteredQueryAsync(input);
-
- query = query.WhereIf(!input.Filter.IsNullOrWhiteSpace(),
- x => x.Name.Contains(input.Filter) || x.DisplayName.Contains(input.Filter));
-
- return query;
- }
- }
-}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/TextAppService.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/TextAppService.cs
index 0759be05a..eb69435d6 100644
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/TextAppService.cs
+++ b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/TextAppService.cs
@@ -1,73 +1,55 @@
using LINGYUN.Abp.LocalizationManagement.Permissions;
-using System.Collections.Generic;
+using Microsoft.AspNetCore.Authorization;
using System.Threading.Tasks;
-using Volo.Abp.Application.Dtos;
-using Volo.Abp.Application.Services;
-
+
namespace LINGYUN.Abp.LocalizationManagement
{
- public class TextAppService :
- CrudAppService<
- Text,
- TextDto,
- TextDifferenceDto,
- int,
- GetTextsInput,
- CreateTextInput,
- UpdateTextInput>,
- ITextAppService
+ [Authorize(LocalizationManagementPermissions.Text.Default)]
+ public class TextAppService : LocalizationAppServiceBase, ITextAppService
{
private readonly ITextRepository _textRepository;
- public TextAppService(ITextRepository repository) : base(repository)
+ public TextAppService(ITextRepository repository)
{
_textRepository = repository;
-
- GetPolicyName = LocalizationManagementPermissions.Text.Default;
- GetListPolicyName = LocalizationManagementPermissions.Text.Default;
- CreatePolicyName = LocalizationManagementPermissions.Text.Create;
- UpdatePolicyName = LocalizationManagementPermissions.Text.Update;
- DeletePolicyName = LocalizationManagementPermissions.Text.Delete;
}
- public virtual async Task GetByCultureKeyAsync(GetTextByKeyInput input)
- {
- await CheckGetPolicyAsync();
-
- var text = await _textRepository.GetByCultureKeyAsync(
- input.ResourceName, input.CultureName, input.Key);
-
- return await MapToGetOutputDtoAsync(text);
+ public async virtual Task SetTextAsync(SetTextInput input)
+ {
+ var text = await _textRepository.GetByCultureKeyAsync(input.ResourceName, input.CultureName, input.Key);
+ if (text == null)
+ {
+ await AuthorizationService.CheckAsync(LocalizationManagementPermissions.Text.Create);
+
+ text = new Text(
+ input.ResourceName,
+ input.CultureName,
+ input.Key,
+ input.Value);
+
+ await _textRepository.InsertAsync(text);
+ }
+ else
+ {
+ await AuthorizationService.CheckAsync(LocalizationManagementPermissions.Text.Update);
+
+ text.SetValue(input.Value);
+
+ await _textRepository.UpdateAsync(text);
+ }
+
+ await CurrentUnitOfWork.SaveChangesAsync();
}
- public override async Task> GetListAsync(GetTextsInput input)
- {
- await CheckGetListPolicyAsync();
-
- var count = await _textRepository.GetDifferenceCountAsync(
- input.CultureName, input.TargetCultureName,
- input.ResourceName, input.OnlyNull, input.Filter);
-
- var texts = await _textRepository.GetDifferencePagedListAsync(
- input.CultureName, input.TargetCultureName,
- input.ResourceName, input.OnlyNull, input.Filter,
- input.Sorting, input.SkipCount, input.MaxResultCount);
-
- return new PagedResultDto(count,
- ObjectMapper.Map, List>(texts));
- }
-
- protected override Text MapToEntity(CreateTextInput createInput)
- {
- return new Text(
- createInput.ResourceName,
- createInput.CultureName,
- createInput.Key,
- createInput.Value);
- }
-
- protected override void MapToEntity(UpdateTextInput updateInput, Text entity)
- {
- entity.SetValue(updateInput.Value);
+ [Authorize(LocalizationManagementPermissions.Text.Delete)]
+ public async virtual Task RestoreToDefaultAsync(RestoreDefaultTextInput input)
+ {
+ var text = await _textRepository.GetByCultureKeyAsync(input.ResourceName, input.CultureName, input.Key);
+ if (text != null)
+ {
+ await _textRepository.DeleteAsync(text);
+
+ await CurrentUnitOfWork.SaveChangesAsync();
+ }
}
}
}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Domain.Shared/LINGYUN/Abp/LocalizationManagement/Localization/Resources/en.json b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Domain.Shared/LINGYUN/Abp/LocalizationManagement/Localization/Resources/en.json
index abf0296f0..b4c4d6ef8 100644
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Domain.Shared/LINGYUN/Abp/LocalizationManagement/Localization/Resources/en.json
+++ b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Domain.Shared/LINGYUN/Abp/LocalizationManagement/Localization/Resources/en.json
@@ -1,28 +1,11 @@
{
"culture": "en",
"texts": {
- "Languages": "Languages",
- "Resources": "Resources",
- "Texts": "Texts",
-
"Delete": "Delete",
"DisplayName:Any": "Any",
"DisplayName:CreationTime": "Creation Time",
- "DisplayName:CultureName": "Culture",
- "DisplayName:Description": "Description",
- "DisplayName:DisplayName": "Display Name",
- "DisplayName:Enable": "Enable",
- "DisplayName:FlagIcon": "Flag Icon",
- "DisplayName:Key": "Key",
"DisplayName:LastModificationTime": "Modification Time",
- "DisplayName:Name": "Name",
- "DisplayName:OnlyNull": "Only Null",
- "DisplayName:ResourceName": "Resource",
"DisplayName:SaveAndNext": "Save & Next",
- "DisplayName:TargetCultureName": "Target Culture",
- "DisplayName:TargetValue": "Target Value",
- "DisplayName:UiCultureName": "Ui Culture",
- "DisplayName:Value": "Value",
"Permissions:LocalizationManagement": "Localization",
"Permissions:Language": "Language",
"Permissions:Resource": "Resource",
@@ -33,13 +16,8 @@
"Edit": "Edit",
"EditByName": "Edit - {0}",
"Filter": "Filter",
- "Language:AddNew": "Add New Language",
- "Resource:AddNew": "Add New Resource",
"SaveAndNext": "Save & Next",
"SearchFilter": "Search",
- "Text:AddNew": "Add New Text",
- "WillDeleteLanguage": "Language to be deleted {0}",
- "WillDeleteResource": "Resource to be deleted {0}",
- "WillDeleteText": "Document to be deleted {0}"
+ "Text:AddNew": "Add New Text"
}
}
\ No newline at end of file
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Domain.Shared/LINGYUN/Abp/LocalizationManagement/Localization/Resources/zh-Hans.json b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Domain.Shared/LINGYUN/Abp/LocalizationManagement/Localization/Resources/zh-Hans.json
index 8bfb0cb98..03c3846ee 100644
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Domain.Shared/LINGYUN/Abp/LocalizationManagement/Localization/Resources/zh-Hans.json
+++ b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Domain.Shared/LINGYUN/Abp/LocalizationManagement/Localization/Resources/zh-Hans.json
@@ -1,28 +1,11 @@
{
"culture": "zh-Hans",
"texts": {
- "Languages": "语言",
- "Resources": "资源",
- "Texts": "文档",
-
"Delete": "删除",
"DisplayName:Any": "所有",
"DisplayName:CreationTime": "创建时间",
- "DisplayName:CultureName": "文化名称",
- "DisplayName:Description": "描述",
- "DisplayName:DisplayName": "显示名称",
- "DisplayName:Enable": "启用",
- "DisplayName:FlagIcon": "旗帜图标",
- "DisplayName:Key": "键",
"DisplayName:LastModificationTime": "变更时间",
- "DisplayName:Name": "名称",
- "DisplayName:OnlyNull": "仅空值",
- "DisplayName:ResourceName": "资源名称",
"DisplayName:SaveAndNext": "保存并下一步",
- "DisplayName:TargetCultureName": "目标文化",
- "DisplayName:TargetValue": "目标值",
- "DisplayName:UiCultureName": "界面文化",
- "DisplayName:Value": "值",
"Permissions:LocalizationManagement": "本地化管理",
"Permissions:Language": "语言管理",
"Permissions:Resource": "资源管理",
@@ -33,13 +16,8 @@
"Edit": "编辑",
"EditByName": "编辑 - {0}",
"Filter": "过滤字符",
- "Language:AddNew": "添加新语言",
- "Resource:AddNew": "添加新资源",
"SaveAndNext": "保存并下一步",
"SearchFilter": "请输入过滤字符",
- "Text:AddNew": "添加新文档",
- "WillDeleteLanguage": "将要删除语言 {0}",
- "WillDeleteResource": "将要删除资源 {0}",
- "WillDeleteText": "将要删除文档 {0}"
+ "Text:AddNew": "添加新文档"
}
}
\ No newline at end of file
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Domain/LINGYUN/Abp/LocalizationManagement/ITextRepository.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Domain/LINGYUN/Abp/LocalizationManagement/ITextRepository.cs
index e8ca1fd97..64613f44b 100644
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Domain/LINGYUN/Abp/LocalizationManagement/ITextRepository.cs
+++ b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Domain/LINGYUN/Abp/LocalizationManagement/ITextRepository.cs
@@ -16,30 +16,7 @@ namespace LINGYUN.Abp.LocalizationManagement
Task> GetListAsync(
string resourceName = null,
- CancellationToken cancellationToken = default);
-
- Task> GetListAsync(
- string resourceName,
- string cultureName,
- CancellationToken cancellationToken = default);
-
- Task GetDifferenceCountAsync(
- string cultureName,
- string targetCultureName,
- string resourceName = null,
- bool? onlyNull = null,
- string filter = null,
- CancellationToken cancellationToken = default);
-
- Task> GetDifferencePagedListAsync(
- string cultureName,
- string targetCultureName,
- string resourceName = null,
- bool? onlyNull = null,
- string filter = null,
- string sorting = nameof(Text.Key),
- int skipCount = 1,
- int maxResultCount = 10,
+ string cultureName = null,
CancellationToken cancellationToken = default);
}
}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Domain/LINGYUN/Abp/LocalizationManagement/LocalizationStore.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Domain/LINGYUN/Abp/LocalizationManagement/LocalizationStore.cs
index 8f7e0dce6..874dad3ea 100644
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Domain/LINGYUN/Abp/LocalizationManagement/LocalizationStore.cs
+++ b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.Domain/LINGYUN/Abp/LocalizationManagement/LocalizationStore.cs
@@ -54,7 +54,7 @@ namespace LINGYUN.Abp.LocalizationManagement
return dictionaries;
}
- var texts = await TextRepository.GetListAsync(resourceName, cancellationToken);
+ var texts = await TextRepository.GetListAsync(resourceName, null, cancellationToken);
foreach (var textGroup in texts.GroupBy(x => x.CultureName))
{
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore/LINGYUN/Abp/LocalizationManagement/EntityFrameworkCore/EfCoreTextRepository.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore/LINGYUN/Abp/LocalizationManagement/EntityFrameworkCore/EfCoreTextRepository.cs
index 3e98be8bc..638de25cc 100644
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore/LINGYUN/Abp/LocalizationManagement/EntityFrameworkCore/EfCoreTextRepository.cs
+++ b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore/LINGYUN/Abp/LocalizationManagement/EntityFrameworkCore/EfCoreTextRepository.cs
@@ -48,36 +48,32 @@ namespace LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore
}
public virtual async Task> GetListAsync(
- string resourceName = null,
+ string resourceName = null,
+ string cultureName = null,
CancellationToken cancellationToken = default)
{
- var languages = (await GetDbContextAsync()).Set();
- var resources = (IQueryable)(await GetDbContextAsync()).Set();
- if (!resourceName.IsNullOrWhiteSpace())
- {
- resources = resources.Where(x => x.Name.Equals(resourceName));
- }
+ //var languages = (await GetDbContextAsync()).Set();
+ //var resources = (IQueryable)(await GetDbContextAsync()).Set();
+ //if (!resourceName.IsNullOrWhiteSpace())
+ //{
+ // resources = resources.Where(x => x.Name.Equals(resourceName));
+ //}
- var texts = await GetDbSetAsync();
+ //var texts = await GetDbSetAsync();
- return await (from txts in texts
- join r in resources
- on txts.ResourceName equals r.Name
- join lg in languages
- on txts.CultureName equals lg.CultureName
- where r.Enable && lg.Enable
- select txts)
- .ToListAsync(GetCancellationToken(cancellationToken));
- }
+ //return await (from txts in texts
+ // join r in resources
+ // on txts.ResourceName equals r.Name
+ // join lg in languages
+ // on txts.CultureName equals lg.CultureName
+ // where r.Enable && lg.Enable
+ // select txts)
+ // .ToListAsync(GetCancellationToken(cancellationToken));
- public virtual async Task> GetListAsync(
- string resourceName,
- string cultureName,
- CancellationToken cancellationToken = default)
- {
return await (await GetDbSetAsync())
- .Where(x => x.ResourceName.Equals(resourceName) && x.CultureName.Equals(cultureName))
- .ToListAsync(GetCancellationToken(cancellationToken));
+ .WhereIf(!resourceName.IsNullOrWhiteSpace(), x => x.ResourceName.Equals(resourceName))
+ .WhereIf(!cultureName.IsNullOrWhiteSpace(), x => x.CultureName.Equals(cultureName))
+ .ToListAsync(GetCancellationToken(cancellationToken));
}
public virtual async Task> GetDifferencePagedListAsync(
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN.Abp.LocalizationManagement.HttpApi.csproj b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN.Abp.LocalizationManagement.HttpApi.csproj
index 30dbe15f8..2c5a6ee68 100644
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN.Abp.LocalizationManagement.HttpApi.csproj
+++ b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN.Abp.LocalizationManagement.HttpApi.csproj
@@ -9,10 +9,7 @@
-
-
-
-
+
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN/Abp/LocalizationManagement/AbpLocalizationManagementHttpApiModule.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN/Abp/LocalizationManagement/AbpLocalizationManagementHttpApiModule.cs
index d5e37ab0e..db11979bb 100644
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN/Abp/LocalizationManagement/AbpLocalizationManagementHttpApiModule.cs
+++ b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN/Abp/LocalizationManagement/AbpLocalizationManagementHttpApiModule.cs
@@ -1,15 +1,16 @@
-using LINGYUN.Abp.LocalizationManagement.Localization;
+using LINGYUN.Abp.AspNetCore.Mvc.Localization;
+using LINGYUN.Abp.LocalizationManagement.Localization;
using Microsoft.Extensions.DependencyInjection;
-using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc.Localization;
using Volo.Abp.Localization;
+using Volo.Abp.Localization.Resources.AbpLocalization;
using Volo.Abp.Modularity;
using Volo.Abp.Validation.Localization;
namespace LINGYUN.Abp.LocalizationManagement
{
[DependsOn(
- typeof(AbpAspNetCoreMvcModule),
+ typeof(AbpAspNetCoreMvcLocalizationModule),
typeof(AbpLocalizationManagementApplicationContractsModule))]
public class AbpLocalizationManagementHttpApiModule : AbpModule
{
@@ -35,7 +36,7 @@ namespace LINGYUN.Abp.LocalizationManagement
{
options.Resources
.Get()
- .AddBaseTypes(typeof(AbpValidationResource));
+ .AddBaseTypes(typeof(AbpValidationResource), typeof(AbpLocalizationResource));
});
}
}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN/Abp/LocalizationManagement/LanguageController.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN/Abp/LocalizationManagement/LanguageController.cs
deleted file mode 100644
index 54f491257..000000000
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN/Abp/LocalizationManagement/LanguageController.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-using Microsoft.AspNetCore.Mvc;
-using System;
-using System.Threading.Tasks;
-using Volo.Abp;
-using Volo.Abp.Application.Dtos;
-using Volo.Abp.AspNetCore.Mvc;
-
-namespace LINGYUN.Abp.LocalizationManagement
-{
- [RemoteService(Name = LocalizationRemoteServiceConsts.RemoteServiceName)]
- [Area("localization")]
- [Route("api/localization/languages")]
- public class LanguageController : AbpController, ILanguageAppService
- {
- private readonly ILanguageAppService _service;
-
- public LanguageController(ILanguageAppService service)
- {
- _service = service;
- }
-
- [HttpPost]
- public virtual async Task CreateAsync(CreateOrUpdateLanguageInput input)
- {
- return await _service.CreateAsync(input);
- }
-
- [HttpDelete]
- [Route("{id}")]
- public virtual async Task DeleteAsync(Guid id)
- {
- await _service.DeleteAsync(id);
- }
-
- [HttpGet]
- [Route("all")]
- public virtual async Task> GetAllAsync()
- {
- return await _service.GetAllAsync();
- }
-
- [HttpGet]
- [Route("{id}")]
- public virtual async Task GetAsync(Guid id)
- {
- return await _service.GetAsync(id);
- }
-
- [HttpGet]
- public virtual async Task> GetListAsync(GetLanguagesInput input)
- {
- return await _service.GetListAsync(input);
- }
-
- [HttpPut]
- [Route("{id}")]
- public virtual async Task UpdateAsync(Guid id, CreateOrUpdateLanguageInput input)
- {
- return await _service.UpdateAsync(id, input);
- }
- }
-}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN/Abp/LocalizationManagement/ResourceController.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN/Abp/LocalizationManagement/ResourceController.cs
deleted file mode 100644
index 36e837472..000000000
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN/Abp/LocalizationManagement/ResourceController.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-using Microsoft.AspNetCore.Mvc;
-using System;
-using System.Threading.Tasks;
-using Volo.Abp;
-using Volo.Abp.Application.Dtos;
-using Volo.Abp.AspNetCore.Mvc;
-
-namespace LINGYUN.Abp.LocalizationManagement
-{
- [RemoteService(Name = LocalizationRemoteServiceConsts.RemoteServiceName)]
- [Area("localization")]
- [Route("api/localization/resources")]
- public class ResourceController : AbpController, IResourceAppService
- {
- private readonly IResourceAppService _service;
-
- public ResourceController(IResourceAppService service)
- {
- _service = service;
- }
-
- [HttpPost]
- public virtual async Task CreateAsync(CreateOrUpdateResourceInput input)
- {
- return await _service.CreateAsync(input);
- }
-
- [HttpDelete]
- [Route("{id}")]
- public virtual async Task DeleteAsync(Guid id)
- {
- await _service.DeleteAsync(id);
- }
-
- [HttpGet]
- [Route("all")]
- public virtual async Task> GetAllAsync()
- {
- return await _service.GetAllAsync();
- }
-
- [HttpGet]
- [Route("{id}")]
- public virtual async Task GetAsync(Guid id)
- {
- return await _service.GetAsync(id);
- }
-
- [HttpGet]
- public virtual async Task> GetListAsync(GetResourcesInput input)
- {
- return await _service.GetListAsync(input);
- }
-
- [HttpPut]
- [Route("{id}")]
- public virtual async Task UpdateAsync(Guid id, CreateOrUpdateResourceInput input)
- {
- return await _service.UpdateAsync(id, input);
- }
- }
-}
diff --git a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN/Abp/LocalizationManagement/TextController.cs b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN/Abp/LocalizationManagement/TextController.cs
index 18b7d2b8f..2008abc32 100644
--- a/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN/Abp/LocalizationManagement/TextController.cs
+++ b/aspnet-core/modules/lt/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN/Abp/LocalizationManagement/TextController.cs
@@ -1,7 +1,6 @@
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
using Volo.Abp;
-using Volo.Abp.Application.Dtos;
using Volo.Abp.AspNetCore.Mvc;
namespace LINGYUN.Abp.LocalizationManagement
@@ -18,44 +17,17 @@ namespace LINGYUN.Abp.LocalizationManagement
_service = service;
}
- [HttpPost]
- public virtual async Task CreateAsync(CreateTextInput input)
+ [HttpPut]
+ public virtual Task SetTextAsync(SetTextInput input)
{
- return await _service.CreateAsync(input);
+ return _service.SetTextAsync(input);
}
[HttpDelete]
- [Route("{id}")]
- public virtual async Task DeleteAsync(int id)
- {
- await _service.DeleteAsync(id);
- }
-
- [HttpGet]
- [Route("{id}")]
- public virtual async Task GetAsync(int id)
- {
- return await _service.GetAsync(id);
- }
-
- [HttpGet]
- [Route("by-culture-key")]
- public virtual async Task GetByCultureKeyAsync(GetTextByKeyInput input)
- {
- return await _service.GetByCultureKeyAsync(input);
- }
-
- [HttpGet]
- public virtual async Task> GetListAsync(GetTextsInput input)
- {
- return await _service.GetListAsync(input);
- }
-
- [HttpPut]
- [Route("{id}")]
- public virtual async Task UpdateAsync(int id, UpdateTextInput input)
+ [Route("restore-to-default")]
+ public virtual Task RestoreToDefaultAsync(RestoreDefaultTextInput input)
{
- return await _service.UpdateAsync(id, input);
+ return _service.RestoreToDefaultAsync(input);
}
}
}
diff --git a/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.cs b/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.cs
index b77eccd57..82022a179 100644
--- a/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.cs
+++ b/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.cs
@@ -1,5 +1,6 @@
using DotNetCore.CAP;
using LINGYUN.Abp.AspNetCore.HttpOverrides;
+using LINGYUN.Abp.AspNetCore.Mvc.Localization;
using LINGYUN.Abp.Auditing;
using LINGYUN.Abp.AuditLogging.Elasticsearch;
using LINGYUN.Abp.Data.DbMigrator;
@@ -50,6 +51,7 @@ namespace LY.MicroService.BackendAdmin;
typeof(AbpLoggingSerilogElasticsearchModule),
typeof(AbpAuditLoggingElasticsearchModule),
typeof(AbpAspNetCoreMvcUiMultiTenancyModule),
+ typeof(AbpAspNetCoreMvcLocalizationModule),
typeof(AbpSettingManagementApplicationModule),
typeof(AbpSettingManagementHttpApiModule),
typeof(AbpPermissionManagementApplicationModule),
diff --git a/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/LY.MicroService.BackendAdmin.HttpApi.Host.csproj b/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/LY.MicroService.BackendAdmin.HttpApi.Host.csproj
index ccdedc8f6..b81fc267a 100644
--- a/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/LY.MicroService.BackendAdmin.HttpApi.Host.csproj
+++ b/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/LY.MicroService.BackendAdmin.HttpApi.Host.csproj
@@ -57,6 +57,7 @@
+
diff --git a/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.Configure.cs
index 869e2ea22..0d7b28077 100644
--- a/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.Configure.cs
+++ b/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.Configure.cs
@@ -264,6 +264,11 @@ public partial class LocalizationManagementHttpApiHostModule
options.Audience = configuration["AuthServer:ApiName"];
});
+ if (isDevelopment)
+ {
+ // services.AddAlwaysAllowAuthorization();
+ }
+
if (!isDevelopment)
{
var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]);
diff --git a/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/LY.MicroService.PlatformManagement.HttpApi.Host.csproj b/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/LY.MicroService.PlatformManagement.HttpApi.Host.csproj
index b60c27e38..dc48a705d 100644
--- a/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/LY.MicroService.PlatformManagement.HttpApi.Host.csproj
+++ b/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/LY.MicroService.PlatformManagement.HttpApi.Host.csproj
@@ -48,6 +48,7 @@
+
diff --git a/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.cs b/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.cs
index bb39a3492..61c538e8f 100644
--- a/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.cs
+++ b/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.cs
@@ -1,5 +1,6 @@
using DotNetCore.CAP;
using LINGYUN.Abp.AspNetCore.HttpOverrides;
+using LINGYUN.Abp.AspNetCore.Mvc.Localization;
using LINGYUN.Abp.AuditLogging.Elasticsearch;
using LINGYUN.Abp.Authorization.OrganizationUnits;
using LINGYUN.Abp.Data.DbMigrator;
@@ -47,6 +48,7 @@ namespace LY.MicroService.PlatformManagement;
typeof(AbpAspNetCoreSerilogModule),
typeof(AbpAuditLoggingElasticsearchModule),
typeof(AbpAspNetCoreMultiTenancyModule),
+ typeof(AbpAspNetCoreMvcLocalizationModule),
typeof(AbpUINavigationVueVbenAdminModule),
typeof(PlatformThemeVueVbenAdminModule),
// typeof(AbpOssManagementAliyunModule),
diff --git a/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/LY.MicroService.RealtimeMessage.HttpApi.Host.csproj b/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/LY.MicroService.RealtimeMessage.HttpApi.Host.csproj
index dffadccd6..2f27951f0 100644
--- a/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/LY.MicroService.RealtimeMessage.HttpApi.Host.csproj
+++ b/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/LY.MicroService.RealtimeMessage.HttpApi.Host.csproj
@@ -53,6 +53,7 @@
+
diff --git a/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.cs b/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.cs
index 14272dbe2..2f3b30acd 100644
--- a/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.cs
+++ b/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.cs
@@ -1,5 +1,6 @@
using DotNetCore.CAP;
using LINGYUN.Abp.AspNetCore.HttpOverrides;
+using LINGYUN.Abp.AspNetCore.Mvc.Localization;
using LINGYUN.Abp.AuditLogging.Elasticsearch;
using LINGYUN.Abp.Authorization.OrganizationUnits;
using LINGYUN.Abp.BackgroundTasks.ExceptionHandling;
@@ -48,6 +49,7 @@ namespace LY.MicroService.RealtimeMessage;
typeof(AbpAspNetCoreSerilogModule),
typeof(AbpAuditLoggingElasticsearchModule),
typeof(AbpAspNetCoreMultiTenancyModule),
+ typeof(AbpAspNetCoreMvcLocalizationModule),
typeof(AbpMessageServiceApplicationModule),
typeof(AbpMessageServiceHttpApiModule),
typeof(AbpIdentityWeChatModule),
diff --git a/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/LY.MicroService.TaskManagement.HttpApi.Host.csproj b/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/LY.MicroService.TaskManagement.HttpApi.Host.csproj
index 16ad96963..802d1fea5 100644
--- a/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/LY.MicroService.TaskManagement.HttpApi.Host.csproj
+++ b/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/LY.MicroService.TaskManagement.HttpApi.Host.csproj
@@ -64,6 +64,8 @@
+
+
diff --git a/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/TaskManagementHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/TaskManagementHttpApiHostModule.Configure.cs
index 9c3f4aad6..5472f2cb3 100644
--- a/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/TaskManagementHttpApiHostModule.Configure.cs
+++ b/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/TaskManagementHttpApiHostModule.Configure.cs
@@ -1,6 +1,7 @@
using DotNetCore.CAP;
using LINGYUN.Abp.ExceptionHandling;
using LINGYUN.Abp.ExceptionHandling.Emailing;
+using LINGYUN.Abp.Localization.CultureMap;
using LINGYUN.Abp.Serilog.Enrichers.Application;
using LINGYUN.Abp.Serilog.Enrichers.UniqueId;
using Medallion.Threading;
@@ -262,6 +263,18 @@ public partial class TaskManagementHttpApiHostModule
// 动态语言支持
options.Resources.AddDynamic();
});
+
+ Configure(options =>
+ {
+ var zhHansCultureMapInfo = new CultureMapInfo
+ {
+ TargetCulture = "zh-Hans",
+ SourceCultures = new string[] { "zh", "zh_CN", "zh-CN" }
+ };
+
+ options.CulturesMaps.Add(zhHansCultureMapInfo);
+ options.UiCulturesMaps.Add(zhHansCultureMapInfo);
+ });
}
private void ConfigureSecurity(IServiceCollection services, IConfiguration configuration, bool isDevelopment = false)
diff --git a/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/TaskManagementHttpApiHostModule.cs b/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/TaskManagementHttpApiHostModule.cs
index 832d13e55..a54b1cc4f 100644
--- a/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/TaskManagementHttpApiHostModule.cs
+++ b/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/TaskManagementHttpApiHostModule.cs
@@ -1,4 +1,5 @@
using DotNetCore.CAP;
+using LINGYUN.Abp.AspNetCore.Mvc.Localization;
using LINGYUN.Abp.AuditLogging.Elasticsearch;
using LINGYUN.Abp.Authorization.OrganizationUnits;
using LINGYUN.Abp.BackgroundTasks.ExceptionHandling;
@@ -7,6 +8,7 @@ using LINGYUN.Abp.BackgroundTasks.Quartz;
using LINGYUN.Abp.Data.DbMigrator;
using LINGYUN.Abp.EventBus.CAP;
using LINGYUN.Abp.ExceptionHandling.Emailing;
+using LINGYUN.Abp.Localization.CultureMap;
using LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore;
using LINGYUN.Abp.Saas.EntityFrameworkCore;
using LINGYUN.Abp.Serilog.Enrichers.Application;
@@ -47,6 +49,7 @@ namespace LY.MicroService.TaskManagement;
typeof(AbpEmailingExceptionHandlingModule),
typeof(AbpHttpClientIdentityModelWebModule),
typeof(AbpAspNetCoreMultiTenancyModule),
+ typeof(AbpAspNetCoreMvcLocalizationModule),
typeof(AbpBackgroundTasksJobsModule),
typeof(AbpBackgroundTasksQuartzModule),
typeof(AbpBackgroundTasksExceptionHandlingModule),
@@ -63,6 +66,7 @@ namespace LY.MicroService.TaskManagement;
typeof(AbpCachingStackExchangeRedisModule),
typeof(AbpAspNetCoreMvcModule),
typeof(AbpSwashbuckleModule),
+ typeof(AbpLocalizationCultureMapModule),
typeof(AbpAutofacModule)
)]
public partial class TaskManagementHttpApiHostModule : AbpModule
diff --git a/aspnet-core/services/LY.MicroService.WebhooksManagement.HttpApi.Host/LY.MicroService.WebhooksManagement.HttpApi.Host.csproj b/aspnet-core/services/LY.MicroService.WebhooksManagement.HttpApi.Host/LY.MicroService.WebhooksManagement.HttpApi.Host.csproj
index 50c7fb7f7..8e6d24aa6 100644
--- a/aspnet-core/services/LY.MicroService.WebhooksManagement.HttpApi.Host/LY.MicroService.WebhooksManagement.HttpApi.Host.csproj
+++ b/aspnet-core/services/LY.MicroService.WebhooksManagement.HttpApi.Host/LY.MicroService.WebhooksManagement.HttpApi.Host.csproj
@@ -66,6 +66,7 @@
+
diff --git a/aspnet-core/services/LY.MicroService.WebhooksManagement.HttpApi.Host/WebhooksManagementHttpApiHostModule.cs b/aspnet-core/services/LY.MicroService.WebhooksManagement.HttpApi.Host/WebhooksManagementHttpApiHostModule.cs
index 6e4e7b44b..b71f54be1 100644
--- a/aspnet-core/services/LY.MicroService.WebhooksManagement.HttpApi.Host/WebhooksManagementHttpApiHostModule.cs
+++ b/aspnet-core/services/LY.MicroService.WebhooksManagement.HttpApi.Host/WebhooksManagementHttpApiHostModule.cs
@@ -1,4 +1,5 @@
using DotNetCore.CAP;
+using LINGYUN.Abp.AspNetCore.Mvc.Localization;
using LINGYUN.Abp.AspNetCore.Mvc.Wrapper;
using LINGYUN.Abp.AuditLogging.Elasticsearch;
using LINGYUN.Abp.Authorization.OrganizationUnits;
@@ -56,6 +57,7 @@ namespace LY.MicroService.WebhooksManagement;
typeof(AbpCAPEventBusModule),
typeof(AbpHttpClientIdentityModelWebModule),
typeof(AbpAspNetCoreMultiTenancyModule),
+ typeof(AbpAspNetCoreMvcLocalizationModule),
typeof(AbpSaasEntityFrameworkCoreModule),
typeof(AbpFeatureManagementEntityFrameworkCoreModule),
typeof(AbpPermissionManagementEntityFrameworkCoreModule),
diff --git a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/LY.MicroService.WorkflowManagement.HttpApi.Host.csproj b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/LY.MicroService.WorkflowManagement.HttpApi.Host.csproj
index 5248cd744..eeeeb4fcc 100644
--- a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/LY.MicroService.WorkflowManagement.HttpApi.Host.csproj
+++ b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/LY.MicroService.WorkflowManagement.HttpApi.Host.csproj
@@ -45,6 +45,8 @@
+
+
diff --git a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.Configure.cs
index 4b1d99b6b..a09337a80 100644
--- a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.Configure.cs
+++ b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.Configure.cs
@@ -5,6 +5,7 @@ using Elsa.Persistence.EntityFramework.MySql;
using LINGYUN.Abp.BlobStoring.OssManagement;
using LINGYUN.Abp.ExceptionHandling;
using LINGYUN.Abp.ExceptionHandling.Emailing;
+using LINGYUN.Abp.Localization.CultureMap;
using LINGYUN.Abp.Serilog.Enrichers.Application;
using Medallion.Threading;
using Medallion.Threading.Redis;
@@ -247,6 +248,18 @@ public partial class WorkflowManagementHttpApiHostModule
// 动态语言支持
options.Resources.AddDynamic();
});
+
+ Configure(options =>
+ {
+ var zhHansCultureMapInfo = new CultureMapInfo
+ {
+ TargetCulture = "zh-Hans",
+ SourceCultures = new string[] { "zh", "zh_CN", "zh-CN" }
+ };
+
+ options.CulturesMaps.Add(zhHansCultureMapInfo);
+ options.UiCulturesMaps.Add(zhHansCultureMapInfo);
+ });
}
private void ConfigureSecurity(IServiceCollection services, IConfiguration configuration, bool isDevelopment = false)
diff --git a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.cs b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.cs
index 44f41790f..1a1f792ed 100644
--- a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.cs
+++ b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.cs
@@ -1,7 +1,9 @@
-using LINGYUN.Abp.AuditLogging.Elasticsearch;
+using LINGYUN.Abp.AspNetCore.Mvc.Localization;
+using LINGYUN.Abp.AuditLogging.Elasticsearch;
using LINGYUN.Abp.BlobStoring.OssManagement;
using LINGYUN.Abp.Data.DbMigrator;
using LINGYUN.Abp.ExceptionHandling.Emailing;
+using LINGYUN.Abp.Localization.CultureMap;
using LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore;
using LINGYUN.Abp.Saas.EntityFrameworkCore;
using LINGYUN.Abp.Serilog.Enrichers.Application;
@@ -49,6 +51,7 @@ namespace LY.MicroService.WorkflowManagement;
typeof(AbpEmailingExceptionHandlingModule),
typeof(AbpHttpClientIdentityModelWebModule),
typeof(AbpAspNetCoreMultiTenancyModule),
+ typeof(AbpAspNetCoreMvcLocalizationModule),
typeof(AbpFeatureManagementEntityFrameworkCoreModule),
typeof(AbpPermissionManagementEntityFrameworkCoreModule),
typeof(AbpSettingManagementEntityFrameworkCoreModule),
@@ -58,6 +61,7 @@ namespace LY.MicroService.WorkflowManagement;
typeof(AbpCachingStackExchangeRedisModule),
typeof(AbpAspNetCoreMvcModule),
typeof(AbpSwashbuckleModule),
+ typeof(AbpLocalizationCultureMapModule),
typeof(AbpAutofacModule)
)]
public partial class WorkflowManagementHttpApiHostModule : AbpModule
diff --git a/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/IdentityServerHttpApiHostModule.cs b/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/IdentityServerHttpApiHostModule.cs
index 8ae20e3ff..10e4c096f 100644
--- a/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/IdentityServerHttpApiHostModule.cs
+++ b/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/IdentityServerHttpApiHostModule.cs
@@ -1,5 +1,6 @@
using DotNetCore.CAP;
using LINGYUN.Abp.AspNetCore.HttpOverrides;
+using LINGYUN.Abp.AspNetCore.Mvc.Localization;
using LINGYUN.Abp.AuditLogging.Elasticsearch;
using LINGYUN.Abp.Authorization.OrganizationUnits;
using LINGYUN.Abp.EventBus.CAP;
@@ -32,6 +33,7 @@ namespace LY.MicroService.IdentityServer;
typeof(AbpSerilogEnrichersUniqueIdModule),
typeof(AbpAspNetCoreSerilogModule),
typeof(AbpAspNetCoreMultiTenancyModule),
+ typeof(AbpAspNetCoreMvcLocalizationModule),
typeof(LINGYUN.Abp.Account.AbpAccountApplicationModule),
typeof(LINGYUN.Abp.Account.AbpAccountHttpApiModule),
typeof(LINGYUN.Abp.Identity.AbpIdentityApplicationModule),
diff --git a/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/LY.MicroService.identityServer.HttpApi.Host.csproj b/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/LY.MicroService.identityServer.HttpApi.Host.csproj
index 47d3f1560..715b5fbf8 100644
--- a/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/LY.MicroService.identityServer.HttpApi.Host.csproj
+++ b/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/LY.MicroService.identityServer.HttpApi.Host.csproj
@@ -66,6 +66,7 @@
+
From 9b682071dc444120e9304fe8adddadcc0ad31ce9 Mon Sep 17 00:00:00 2001
From: cKey <35512826+colinin@users.noreply.github.com>
Date: Tue, 5 Jul 2022 15:43:59 +0800
Subject: [PATCH 2/3] feat: update ocelot routes.
---
.../Properties/launchSettings.json | 2 +-
.../ocelot.Development.json | 36 +++++++++++++++++--
2 files changed, 35 insertions(+), 3 deletions(-)
diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Properties/launchSettings.json b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Properties/launchSettings.json
index 20aace6df..6037e2ac6 100644
--- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Properties/launchSettings.json
+++ b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Properties/launchSettings.json
@@ -12,7 +12,7 @@
"commandName": "Project",
"launchBrowser": false,
"environmentVariables": {
- "ASPNETCORE_ENVIRONMENT": "Production"
+ "ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "https://127.0.0.1:30443;http://127.0.0.1:30000"
}
diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.Development.json b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.Development.json
index 173b8d1e4..f2d556ab1 100644
--- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.Development.json
+++ b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.Development.json
@@ -707,7 +707,7 @@
"Port": 30030
}
],
- "UpstreamPathTemplate": "/api/abp/localization/application-configuration",
+ "UpstreamPathTemplate": "/api/abp/localization-management/application-configuration",
"UpstreamHttpMethod": [
"GET"
],
@@ -734,7 +734,7 @@
"Port": 30030
}
],
- "UpstreamPathTemplate": "/api/abp/localization/api-definition",
+ "UpstreamPathTemplate": "/api/abp/localization-management/api-definition",
"UpstreamHttpMethod": [
"GET"
],
@@ -752,6 +752,38 @@
},
"Key": "localization-api-definition"
},
+ {
+ "DownstreamPathTemplate": "/api/abp/localization/{everything}",
+ "DownstreamScheme": "http",
+ "DownstreamHostAndPorts": [
+ {
+ "Host": "127.0.0.1",
+ "Port": 30010
+ }
+ ],
+ "UpstreamPathTemplate": "/api/abp/localization/{everything}",
+ "UpstreamHttpMethod": [
+ "GET"
+ ],
+ "LoadBalancerOptions": {
+ "Type": "RoundRobin"
+ },
+ "RateLimitOptions": {
+ "ClientWhitelist": [],
+ "EnableRateLimiting": true,
+ "Period": "1s",
+ "PeriodTimespan": 1,
+ "Limit": 5
+ },
+ "QoSOptions": {
+ "ExceptionsAllowedBeforeBreaking": 10,
+ "DurationOfBreak": 1000,
+ "TimeoutValue": 10000
+ },
+ "HttpHandlerOptions": {
+ "UseTracing": true
+ }
+ },
{
"DownstreamPathTemplate": "/api/localization/{everything}",
"DownstreamScheme": "http",
From 2eefa08232dcffbfeb85ec3eb848caeb3ec4370a Mon Sep 17 00:00:00 2001
From: cKey <35512826+colinin@users.noreply.github.com>
Date: Tue, 5 Jul 2022 16:07:50 +0800
Subject: [PATCH 3/3] fix: enable filter filtering
---
.../Mvc/Localization/TextAppService.cs | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/TextAppService.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/TextAppService.cs
index 3df08c82e..5bdcc0dfe 100644
--- a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/TextAppService.cs
+++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/TextAppService.cs
@@ -56,20 +56,24 @@ namespace LINGYUN.Abp.AspNetCore.Mvc.Localization
if (input.ResourceName.IsNullOrWhiteSpace())
{
- foreach (var resource in _localizationOptions.Resources)
+ var filterResources = _localizationOptions.Resources
+ .WhereIf(!input.Filter.IsNullOrWhiteSpace(), x => x.Value.ResourceName.Contains(input.Filter));
+
+ foreach (var resource in filterResources)
{
- result.AddRange(GetTextDifferences(resource.Value, input.CultureName, input.TargetCultureName, input.OnlyNull));
+ result.AddRange(GetTextDifferences(resource.Value, input.CultureName, input.TargetCultureName, input.Filter, input.OnlyNull));
}
}
else
{
var resource = _localizationOptions.Resources
.Where(l => l.Value.ResourceName.Equals(input.ResourceName))
+ .WhereIf(!input.Filter.IsNullOrWhiteSpace(), x => x.Value.ResourceName.Contains(input.Filter))
.Select(l => l.Value)
.FirstOrDefault();
if (resource != null)
{
- result.AddRange(GetTextDifferences(resource, input.CultureName, input.TargetCultureName, input.OnlyNull));
+ result.AddRange(GetTextDifferences(resource, input.CultureName, input.TargetCultureName, input.Filter, input.OnlyNull));
}
}
@@ -80,6 +84,7 @@ namespace LINGYUN.Abp.AspNetCore.Mvc.Localization
LocalizationResource resource,
string cultureName,
string targetCultureName,
+ string filter = null,
bool? onlyNull = null)
{
var result = new List();
@@ -90,7 +95,8 @@ namespace LINGYUN.Abp.AspNetCore.Mvc.Localization
using (CultureHelper.Use(cultureName))
{
- localizedStrings = localizer.GetAllStrings(true);
+ localizedStrings = localizer.GetAllStrings(true)
+ .WhereIf(!filter.IsNullOrWhiteSpace(), x => x.Name.Contains(filter));
}
if (Equals(cultureName, targetCultureName))
@@ -101,7 +107,8 @@ namespace LINGYUN.Abp.AspNetCore.Mvc.Localization
{
using (CultureHelper.Use(targetCultureName))
{
- targetLocalizedStrings = localizer.GetAllStrings(true);
+ targetLocalizedStrings = localizer.GetAllStrings(true)
+ .WhereIf(!filter.IsNullOrWhiteSpace(), x => x.Name.Contains(filter));
}
}