diff --git a/IRaCIS.Core.Application/Helper/InternationalizationHelper.cs b/IRaCIS.Core.Application/Helper/InternationalizationHelper.cs index e12cb271b..33c862f7c 100644 --- a/IRaCIS.Core.Application/Helper/InternationalizationHelper.cs +++ b/IRaCIS.Core.Application/Helper/InternationalizationHelper.cs @@ -1,4 +1,5 @@ -using IRaCIS.Core.Domain.Share; +using IRaCIS.Core.Application.ViewModel; +using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Infrastructure; using Microsoft.Extensions.Configuration; using Newtonsoft.Json; @@ -17,21 +18,66 @@ namespace IRaCIS.Core.Application.Helper { public static string JsonFileFolder = Path.Combine(AppContext.BaseDirectory, StaticData.Folder.Resources); - public static async Task AddOrUpdateJsonKeyValueAsync(string key, string value, string valueCN) + private static void VerifyFolder() { - - - if (!Directory.Exists(JsonFileFolder) || - Directory.GetFiles(JsonFileFolder).Any(filePath => Path.GetExtension(filePath).Equals(".json", StringComparison.OrdinalIgnoreCase))) + Directory.GetFiles(JsonFileFolder).Any(filePath => Path.GetExtension(filePath).Equals(".json", StringComparison.OrdinalIgnoreCase))) { throw new BusinessValidationFailedException("国际化Json文件目录有误"); } + } + + public static async Task BatchAddJsonKeyValueAsync(List batchAddDtos) + { + VerifyFolder(); var usJsonPath = Path.Combine(JsonFileFolder, StaticData.En_US_Json); var cnJsonPath = Path.Combine(JsonFileFolder, StaticData.Zh_CN_Json); - + + //更新json 文件 同时更新内存缓存的数据 + foreach (var filePath in new string[] { usJsonPath, cnJsonPath }) + { + var json = await File.ReadAllTextAsync(filePath); + + JObject jsonObject = JObject.Parse(json, new JsonLoadSettings() { CommentHandling = CommentHandling.Load }); + + // 添加或更新指定的键值对 + + if (filePath.Contains(StaticData.En_US_Json)) + { + foreach (var item in batchAddDtos) + { + jsonObject[item.Code] = item.Value; + + StaticData.En_US_Dic[item.Code] = item.Value; + } + } + else + { + foreach (var item in batchAddDtos) + { + jsonObject[item.Code] = item.Value; + + StaticData.Zh_CN_Dic[item.Code] = item.Value; + } + } + + + await File.WriteAllTextAsync(filePath, jsonObject.ToString()); + + } + } + + public static async Task AddOrUpdateJsonKeyValueAsync(string key, string value, string valueCN) + { + + VerifyFolder(); + + var usJsonPath = Path.Combine(JsonFileFolder, StaticData.En_US_Json); + var cnJsonPath = Path.Combine(JsonFileFolder, StaticData.Zh_CN_Json); + + //更新json 文件 同时更新内存缓存的数据 foreach (var filePath in new string[] { usJsonPath, cnJsonPath }) { diff --git a/IRaCIS.Core.Application/Service/Common/DTO/InternationalizationViewModel.cs b/IRaCIS.Core.Application/Service/Common/DTO/InternationalizationViewModel.cs index a0eec5d13..16ed714b1 100644 --- a/IRaCIS.Core.Application/Service/Common/DTO/InternationalizationViewModel.cs +++ b/IRaCIS.Core.Application/Service/Common/DTO/InternationalizationViewModel.cs @@ -51,13 +51,16 @@ namespace IRaCIS.Core.Application.ViewModel public int State { get; set; } - public List AddList { get; set; } + public List AddList { get; set; } } - public class BatchAddDto: InternationalizationSimpleDto + public class BatchAddInternationalizationDto { public string Description { get; set; } = string.Empty; + public string Code { get; set; } = string.Empty; + public string Value { get; set; } = string.Empty; + public string ValueCN { get; set; } = string.Empty; } public class InternationalizationSimpleDto diff --git a/IRaCIS.Core.Application/Service/Common/InternationalizationService.cs b/IRaCIS.Core.Application/Service/Common/InternationalizationService.cs index 1c7497836..d6168906a 100644 --- a/IRaCIS.Core.Application/Service/Common/InternationalizationService.cs +++ b/IRaCIS.Core.Application/Service/Common/InternationalizationService.cs @@ -87,6 +87,8 @@ namespace IRaCIS.Core.Application.Service await _internationalizationRepository.SaveChangesAsync(); + + return ResponseOutput.Ok(); } diff --git a/IRaCIS.Core.Application/Service/Common/_MapConfig.cs b/IRaCIS.Core.Application/Service/Common/_MapConfig.cs index fe157b9a3..850a6d541 100644 --- a/IRaCIS.Core.Application/Service/Common/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Common/_MapConfig.cs @@ -57,7 +57,7 @@ namespace IRaCIS.Core.Application.Service CreateMap(); CreateMap().ReverseMap(); - CreateMap(); + CreateMap(); CreateMap();