Seeder düzenlemesi ve interpolate

This commit is contained in:
Sedat Öztürk 2026-05-02 22:48:48 +03:00
parent 444261ba39
commit ea3e847490
4 changed files with 21 additions and 11 deletions

View file

@ -18,6 +18,7 @@ using Microsoft.Extensions.Hosting;
using Sozsoft.Languages; using Sozsoft.Languages;
using Sozsoft.Platform.DynamicData; using Sozsoft.Platform.DynamicData;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.Extensions.Logging;
namespace Sozsoft.Platform.ListForms; namespace Sozsoft.Platform.ListForms;
@ -34,7 +35,8 @@ public class ListFormWizardAppService(
IPermissionGrantRepository permissionGrantRepository, IPermissionGrantRepository permissionGrantRepository,
IHostEnvironment hostEnvironment, IHostEnvironment hostEnvironment,
LanguageTextAppService languageTextAppService, LanguageTextAppService languageTextAppService,
IDynamicDataManager dynamicDataManager IDynamicDataManager dynamicDataManager,
ILogger<ListFormWizardAppService> logger
) : PlatformAppService(), IListFormWizardAppService ) : PlatformAppService(), IListFormWizardAppService
{ {
private readonly IRepository<ListForm, Guid> repoListForm = repoListForm; private readonly IRepository<ListForm, Guid> repoListForm = repoListForm;
@ -49,6 +51,7 @@ public class ListFormWizardAppService(
private readonly IHostEnvironment _hostEnvironment = hostEnvironment; private readonly IHostEnvironment _hostEnvironment = hostEnvironment;
private readonly LanguageTextAppService _languageTextAppService = languageTextAppService; private readonly LanguageTextAppService _languageTextAppService = languageTextAppService;
private readonly IDynamicDataManager _dynamicDataManager = dynamicDataManager; private readonly IDynamicDataManager _dynamicDataManager = dynamicDataManager;
private readonly ILogger<ListFormWizardAppService> logger = logger;
private readonly string cultureNameDefault = PlatformConsts.DefaultLanguage; private readonly string cultureNameDefault = PlatformConsts.DefaultLanguage;
[UnitOfWork] [UnitOfWork]
@ -346,12 +349,12 @@ public class ListFormWizardAppService(
var filePath = Path.Combine(outputPath, $"{timestamp}_{safeWizardName}.json"); var filePath = Path.Combine(outputPath, $"{timestamp}_{safeWizardName}.json");
await File.WriteAllTextAsync(filePath, json); await File.WriteAllTextAsync(filePath, json);
Console.WriteLine($"[WizardSeed] Seed dosyası kaydedildi: {filePath}"); logger.LogInformation($"Seed dosyası kaydedildi: {filePath}");
} }
catch (Exception ex) catch (Exception ex)
{ {
// Dosya kaydetme hatası wizard işlemini engellemez // Dosya kaydetme hatası wizard işlemini engellemez
Console.WriteLine($"[WizardSeed] Seed dosyası kaydedilemedi: {ex.Message}"); logger.LogError(ex, $"Seed dosyası kaydedilemedi: {ex.Message}");
} }
} }

View file

@ -47,8 +47,15 @@ const interpolate = (text: string, params: Record<string, string | number>) => {
if (!params || typeof params !== 'object') return text if (!params || typeof params !== 'object') return text
return Object.entries(params).reduce((acc, [key, value]) => { return Object.entries(params).reduce((acc, [key, value]) => {
if (/^\d+$/.test(key)) {
// Positional ABP-style: {0}, {1}, etc.
const pattern = new RegExp(`\\{${key}\\}`, 'g')
return acc.replace(pattern, String(value))
} else {
// Named: {{ key }}
const pattern = new RegExp(`{{\\s*${key}\\s*}}`, 'g') const pattern = new RegExp(`{{\\s*${key}\\s*}}`, 'g')
return acc.replace(pattern, String(value)) return acc.replace(pattern, String(value))
}
}, text) }, text)
} }

View file

@ -42,14 +42,14 @@ interface LogEntry {
function buildLogSteps( function buildLogSteps(
values: ListFormWizardDto, values: ListFormWizardDto,
groups: WizardGroup[], groups: WizardGroup[],
translate: (key: string) => string, translate: (key: string, params?: Record<string, string | number>) => string,
): Omit<LogEntry, 'status'>[] { ): Omit<LogEntry, 'status'>[] {
const totalFields = groups.reduce((acc, g) => acc + g.items.length, 0) const totalFields = groups.reduce((acc, g) => acc + g.items.length, 0)
return [ return [
{ id: 1, label: translate('::ListForms.Wizard.Step4.Log.ValidatingConfig') }, { id: 1, label: translate('::ListForms.Wizard.Step4.Log.ValidatingConfig') },
{ {
id: 2, id: 2,
label: `${translate('::ListForms.Wizard.Step4.Log.CreatingMenu')}: ${values.menuCode}`, label: translate('::ListForms.Wizard.Step4.Log.CreatingMenu', { 0: values.menuCode }),
detail: `Parent: ${values.menuParentCode}`, detail: `Parent: ${values.menuParentCode}`,
}, },
{ {
@ -57,14 +57,14 @@ function buildLogSteps(
label: translate('::ListForms.Wizard.Step4.Log.SavingLanguageTexts'), label: translate('::ListForms.Wizard.Step4.Log.SavingLanguageTexts'),
detail: `EN: ${values.languageTextMenuEn} / TR: ${values.languageTextMenuTr}`, detail: `EN: ${values.languageTextMenuEn} / TR: ${values.languageTextMenuTr}`,
}, },
{ id: 4, label: `${translate('::ListForms.Wizard.Step4.Log.ConfiguringPermission')}: ${values.permissionGroupName}` }, { id: 4, label: translate('::ListForms.Wizard.Step4.Log.ConfiguringPermission', { 0: values.permissionGroupName }) },
{ id: 5, label: `${translate('::ListForms.Wizard.Step4.Log.ConnectingDataSource')}: ${values.dataSourceCode}` }, { id: 5, label: translate('::ListForms.Wizard.Step4.Log.ConnectingDataSource', { 0: values.dataSourceCode }) },
{ {
id: 6, id: 6,
label: `${translate('::ListForms.Wizard.Step4.Log.CreatingListForm')}: ${values.listFormCode}`, label: translate('::ListForms.Wizard.Step4.Log.CreatingListForm', { 0: values.listFormCode }),
detail: `Key: ${values.keyFieldName}`, detail: `Key: ${values.keyFieldName}`,
}, },
{ id: 7, label: `${translate('::ListForms.Wizard.Step4.Log.SavingFormGroups')} (${groups.length} ${translate('::ListForms.Wizard.Step4.StatGroup')}, ${totalFields} ${translate('::ListForms.Wizard.Step4.StatField')})` }, { id: 7, label: translate('::ListForms.Wizard.Step4.Log.SavingFormGroups', { 0: groups.length, 1: totalFields }) },
{ id: 8, label: translate('::ListForms.Wizard.Step4.Log.Deploying') }, { id: 8, label: translate('::ListForms.Wizard.Step4.Log.Deploying') },
{ id: 9, label: translate('::ListForms.Wizard.Step4.Log.Completed') }, { id: 9, label: translate('::ListForms.Wizard.Step4.Log.Completed') },
] ]