DynamicAppService güncellemesi

This commit is contained in:
Sedat ÖZTÜRK 2025-11-05 09:37:04 +03:00
parent ff088fd9d7
commit 5df821f513
13 changed files with 356 additions and 573 deletions

View file

@ -0,0 +1,18 @@
using System;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
namespace Kurs.Platform.DeveloperKit;
public interface IDynamicServiceAppService : IApplicationService
{
Task<CompileResultDto> TestCompileAsync(TestCompileRequestDto request);
Task<PublishResultDto> PublishAsync(PublishAppServiceRequestDto request);
Task<PagedResultDto<DynamicServiceDto>> GetListAsync(PagedAndSortedResultRequestDto input);
Task<DynamicServiceDto> GetAsync(Guid id);
Task DeleteAsync(Guid id);
Task SetActiveAsync(Guid id, bool isActive);
Task ReloadAllActiveServicesAsync();
Task<CompileResultDto> RecompileAsync(Guid id);
}

View file

@ -1,65 +0,0 @@
using System;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
namespace Kurs.Platform.DeveloperKit;
/// <summary>
/// Dynamic AppService yönetimi için application service interface
/// </summary>
public interface IDynamicServiceManager : IApplicationService
{
/// <summary>
/// C# kodunu test compile eder (herhangi bir assembly yüklemez)
/// </summary>
/// <param name="request">Test edilecek kod</param>
/// <returns>Derleme sonucu</returns>
Task<CompileResultDto> TestCompileAsync(TestCompileRequestDto request);
/// <summary>
/// AppService'i yayınlar (compile eder, veritabanına kaydeder ve runtime'da yükler)
/// </summary>
/// <param name="request">Yayınlanacak AppService bilgileri</param>
/// <returns>Yayınlama sonucu</returns>
Task<PublishResultDto> PublishAsync(PublishAppServiceRequestDto request);
/// <summary>
/// Mevcut tenant'ın AppService tanımlarını listeler
/// </summary>
/// <param name="input">Sayfalama parametreleri</param>
/// <returns>AppService listesi</returns>
Task<PagedResultDto<DynamicServiceDto>> GetListAsync(PagedAndSortedResultRequestDto input);
/// <summary>
/// Belirli bir AppService tanımını getirir
/// </summary>
/// <param name="id">AppService ID</param>
/// <returns>AppService tanımı</returns>
Task<DynamicServiceDto> GetAsync(Guid id);
/// <summary>
/// AppService tanımını siler ve runtime'dan kaldırır
/// </summary>
/// <param name="id">AppService ID</param>
Task DeleteAsync(Guid id);
/// <summary>
/// AppService'i aktif/pasif yapar
/// </summary>
/// <param name="id">AppService ID</param>
/// <param name="isActive">Aktif durumu</param>
Task SetActiveAsync(Guid id, bool isActive);
/// <summary>
/// Tüm aktif AppService'leri yeniden yükler (uygulama restart'tan sonra)
/// </summary>
Task ReloadAllActiveServicesAsync();
/// <summary>
/// Belirli bir AppService'i yeniden derler ve yükler
/// </summary>
/// <param name="id">AppService ID</param>
/// <returns>Yeniden derleme sonucu</returns>
Task<CompileResultDto> RecompileAsync(Guid id);
}

View file

@ -2,74 +2,62 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Kurs.Platform.DynamicServices;
using Kurs.Platform.Entities;
using Microsoft.AspNetCore.Authorization;
using Microsoft.Extensions.Logging;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.MultiTenancy;
using Microsoft.AspNetCore.Authorization;
using Kurs.Platform.Entities;
using Kurs.Platform.DeveloperKit;
using static Kurs.Platform.PlatformConsts;
namespace Kurs.Platform.DynamicServices;
namespace Kurs.Platform.DeveloperKit;
/// <summary>
/// Dynamic AppService yönetimi için ApplicationService implementasyonu
/// </summary>
[Authorize] // Sadece giriş yapmış kullanıcılar erişebilir
public class DynamicServiceManager : ApplicationService, IDynamicServiceManager
[Authorize]
public class DynamicAppServiceAppService : PlatformAppService, IDynamicServiceAppService
{
private readonly IRepository<DynamicService, Guid> _dynamicAppServiceRepository;
private readonly DynamicServiceCompiler _compiler;
private readonly ICurrentTenant _currentTenant;
public DynamicServiceManager(
public DynamicAppServiceAppService(
IRepository<DynamicService, Guid> dynamicAppServiceRepository,
DynamicServiceCompiler compiler,
ICurrentTenant currentTenant)
DynamicServiceCompiler compiler
)
{
_dynamicAppServiceRepository = dynamicAppServiceRepository;
_compiler = compiler;
_currentTenant = currentTenant;
}
/// <summary>
/// C# kodunu test compile eder
/// </summary>
[Authorize(PlatformConsts.DynamicServices.TestCompile)]
public async Task<CompileResultDto> TestCompileAsync(TestCompileRequestDto request)
[Authorize(AppCodes.DeveloperKits.DynamicServices.TestCompile)]
public virtual async Task<CompileResultDto> TestCompileAsync(TestCompileRequestDto request)
{
Logger.LogInformation("Test compile başlatıldı. Tenant: {TenantId}", _currentTenant.Id);
Logger.LogInformation("Test compile başlatıldı. Tenant: {TenantId}", CurrentTenant.Id);
try
{
var result = await _compiler.CompileAndValidateAsync(request.Code, _currentTenant.Id);
var result = await _compiler.CompileAndValidateAsync(request.Code, CurrentTenant.Id);
Logger.LogInformation("Test compile tamamlandı. Başarılı: {Success}, Tenant: {TenantId}",
result.Success, _currentTenant.Id);
result.Success, CurrentTenant.Id);
return result;
}
catch (Exception ex)
{
Logger.LogError(ex, "Test compile sırasında hata. Tenant: {TenantId}", _currentTenant.Id);
Logger.LogError(ex, "Test compile sırasında hata. Tenant: {TenantId}", CurrentTenant.Id);
throw;
}
}
/// <summary>
/// AppService'i yayınlar
/// </summary>
[Authorize(PlatformConsts.DynamicServices.Publish)]
public async Task<PublishResultDto> PublishAsync(PublishAppServiceRequestDto request)
[Authorize(AppCodes.DeveloperKits.DynamicServices.Publish)]
public virtual async Task<PublishResultDto> PublishAsync(PublishAppServiceRequestDto request)
{
Logger.LogInformation("AppService yayınlama başlatıldı. Ad: {Name}, Tenant: {TenantId}",
request.Name, _currentTenant.Id);
request.Name, CurrentTenant.Id);
try
{
// Önce kodu test compile et
var compileResult = await _compiler.CompileAndValidateAsync(request.Code, _currentTenant.Id);
var compileResult = await _compiler.CompileAndValidateAsync(request.Code, CurrentTenant.Id);
if (!compileResult.Success)
{
return new PublishResultDto
@ -81,7 +69,7 @@ public class DynamicServiceManager : ApplicationService, IDynamicServiceManager
// Aynı isimde AppService var mı kontrol et
var existingService = await _dynamicAppServiceRepository
.FirstOrDefaultAsync(x => x.Name == request.Name && x.TenantId == _currentTenant.Id);
.FirstOrDefaultAsync(x => x.Name == request.Name && x.TenantId == CurrentTenant.Id);
DynamicService appService;
@ -103,7 +91,7 @@ public class DynamicServiceManager : ApplicationService, IDynamicServiceManager
GuidGenerator.Create(),
request.Name,
request.Code,
_currentTenant.Id)
CurrentTenant.Id)
{
DisplayName = request.DisplayName,
Description = request.Description,
@ -118,7 +106,7 @@ public class DynamicServiceManager : ApplicationService, IDynamicServiceManager
// Runtime'da derle ve yükle
var assemblyName = $"DynamicAppService_{appService.Id}_{appService.Version}";
var loadResult = await _compiler.CompileAndRegisterForTenantAsync(
_currentTenant.Id ?? Guid.Empty,
CurrentTenant.Id ?? Guid.Empty,
request.Code,
assemblyName);
@ -159,7 +147,7 @@ public class DynamicServiceManager : ApplicationService, IDynamicServiceManager
catch (Exception ex)
{
Logger.LogError(ex, "AppService yayınlama sırasında hata. Ad: {Name}, Tenant: {TenantId}",
request.Name, _currentTenant.Id);
request.Name, CurrentTenant.Id);
return new PublishResultDto
{
@ -169,13 +157,10 @@ public class DynamicServiceManager : ApplicationService, IDynamicServiceManager
}
}
/// <summary>
/// AppService listesini getirir
/// </summary>
[Authorize(PlatformConsts.DynamicServices.DynamicAppServices)]
public async Task<PagedResultDto<DynamicServiceDto>> GetListAsync(PagedAndSortedResultRequestDto input)
[Authorize(AppCodes.DeveloperKits.DynamicServices.DynamicService)]
public virtual async Task<PagedResultDto<DynamicServiceDto>> GetListAsync(PagedAndSortedResultRequestDto input)
{
Logger.LogDebug("AppService listesi istendi. Tenant: {TenantId}", _currentTenant.Id);
Logger.LogDebug("AppService listesi istendi. Tenant: {TenantId}", CurrentTenant.Id);
var queryable = await _dynamicAppServiceRepository.GetQueryableAsync();
@ -199,13 +184,10 @@ public class DynamicServiceManager : ApplicationService, IDynamicServiceManager
return new PagedResultDto<DynamicServiceDto>(totalCount, dtos);
}
/// <summary>
/// Belirli bir AppService'i getirir
/// </summary>
[Authorize(PlatformConsts.DynamicServices.ViewCode)]
public async Task<DynamicServiceDto> GetAsync(Guid id)
[Authorize(AppCodes.DeveloperKits.DynamicServices.ViewCode)]
public virtual async Task<DynamicServiceDto> GetAsync(Guid id)
{
Logger.LogDebug("AppService detayı istendi. ID: {Id}, Tenant: {TenantId}", id, _currentTenant.Id);
Logger.LogDebug("AppService detayı istendi. ID: {Id}, Tenant: {TenantId}", id, CurrentTenant.Id);
var appService = await _dynamicAppServiceRepository.GetAsync(id);
var dto = ObjectMapper.Map<DynamicService, DynamicServiceDto>(appService);
@ -213,14 +195,11 @@ public class DynamicServiceManager : ApplicationService, IDynamicServiceManager
return dto;
}
/// <summary>
/// AppService'i siler
/// </summary>
[Authorize(PlatformConsts.DynamicServices.Delete)]
public async Task DeleteAsync(Guid id)
[Authorize(AppCodes.DeveloperKits.DynamicServices.Delete)]
public virtual async Task DeleteAsync(Guid id)
{
Logger.LogInformation("AppService silme işlemi başlatıldı. ID: {Id}, Tenant: {TenantId}",
id, _currentTenant.Id);
id, CurrentTenant.Id);
var appService = await _dynamicAppServiceRepository.GetAsync(id);
@ -232,11 +211,8 @@ public class DynamicServiceManager : ApplicationService, IDynamicServiceManager
Logger.LogInformation("AppService silindi. ID: {Id}", id);
}
/// <summary>
/// AppService'i aktif/pasif yapar
/// </summary>
[Authorize(PlatformConsts.DynamicServices.Manage)]
public async Task SetActiveAsync(Guid id, bool isActive)
[Authorize(AppCodes.DeveloperKits.DynamicServices.Manage)]
public virtual async Task SetActiveAsync(Guid id, bool isActive)
{
Logger.LogInformation("AppService aktiflik durumu değiştiriliyor. ID: {Id}, Aktif: {Active}",
id, isActive);
@ -250,14 +226,11 @@ public class DynamicServiceManager : ApplicationService, IDynamicServiceManager
id, isActive);
}
/// <summary>
/// Tüm aktif AppService'leri yeniden yükler
/// </summary>
[Authorize(PlatformConsts.DynamicServices.Manage)]
public async Task ReloadAllActiveServicesAsync()
[Authorize(AppCodes.DeveloperKits.DynamicServices.Manage)]
public virtual async Task ReloadAllActiveServicesAsync()
{
Logger.LogInformation("Tüm aktif AppService'ler yeniden yükleniyor. Tenant: {TenantId}",
_currentTenant.Id);
CurrentTenant.Id);
var activeServices = await _dynamicAppServiceRepository
.GetListAsync(x => x.IsActive && x.CompilationStatus == CompilationStatus.Success);
@ -271,7 +244,7 @@ public class DynamicServiceManager : ApplicationService, IDynamicServiceManager
{
var assemblyName = $"DynamicAppService_{service.Id}_{service.Version}";
var result = await _compiler.CompileAndRegisterForTenantAsync(
_currentTenant.Id ?? Guid.Empty,
CurrentTenant.Id ?? Guid.Empty,
service.Code,
assemblyName);
@ -305,11 +278,8 @@ public class DynamicServiceManager : ApplicationService, IDynamicServiceManager
successCount, errorCount, activeServices.Count);
}
/// <summary>
/// Belirli bir AppService'i yeniden derler
/// </summary>
[Authorize(PlatformConsts.DynamicServices.Manage)]
public async Task<CompileResultDto> RecompileAsync(Guid id)
[Authorize(AppCodes.DeveloperKits.DynamicServices.Manage)]
public virtual async Task<CompileResultDto> RecompileAsync(Guid id)
{
Logger.LogInformation("AppService yeniden derleniyor. ID: {Id}", id);
@ -317,7 +287,7 @@ public class DynamicServiceManager : ApplicationService, IDynamicServiceManager
var assemblyName = $"DynamicAppService_{appService.Id}_{appService.Version + 1}";
var result = await _compiler.CompileAndRegisterForTenantAsync(
_currentTenant.Id ?? Guid.Empty,
CurrentTenant.Id ?? Guid.Empty,
appService.Code,
assemblyName);
@ -339,9 +309,6 @@ public class DynamicServiceManager : ApplicationService, IDynamicServiceManager
return result;
}
/// <summary>
/// Controller adını oluşturur
/// </summary>
private string GenerateControllerName(string serviceName)
{
// DynamicCustomerAppService -> DynamicCustomer
@ -358,18 +325,15 @@ public class DynamicServiceManager : ApplicationService, IDynamicServiceManager
return controllerName;
}
/// <summary>
/// Örnek endpoint listesi oluşturur
/// </summary>
private List<string> GenerateEndpointList(string serviceName)
{
var controllerName = GenerateControllerName(serviceName);
return new List<string>
{
return
[
$"/api/app/{controllerName.ToLowerInvariant()}",
$"/api/app/{controllerName.ToLowerInvariant()}/{{id}}",
$"/api/app/{controllerName.ToLowerInvariant()}/list"
};
];
}
}

View file

@ -6469,12 +6469,6 @@
"tr": "Dijital Pazarlama",
"en": "Digital Marketing"
},
{
"resourceName": "Platform",
"key": "App.Parameters",
"tr": "Ana Tanımlar",
"en": "Master Definitions"
},
{
"resourceName": "Platform",
"key": "App.Definitions",
@ -6501,43 +6495,43 @@
},
{
"resourceName": "Platform",
"key": "App.Parameters.ContactTag",
"key": "App.Definitions.ContactTag",
"tr": "İletişim Etiketi",
"en": "Contact Tag"
},
{
"resourceName": "Platform",
"key": "App.Parameters.ContactTitle",
"key": "App.Definitions.ContactTitle",
"tr": "İletişim Başlığı",
"en": "Contact Title"
},
{
"resourceName": "Platform",
"key": "App.Parameters.Currency",
"key": "App.Definitions.Currency",
"tr": "Para Birimleri",
"en": "Currencies"
},
{
"resourceName": "Platform",
"key": "App.Parameters.CountryGroup",
"key": "App.Definitions.CountryGroup",
"tr": "Ülke Grupları",
"en": "Country Groups"
},
{
"resourceName": "Platform",
"key": "App.Parameters.Country",
"key": "App.Definitions.Country",
"tr": "Ülkeler",
"en": "Countries"
},
{
"resourceName": "Platform",
"key": "App.Parameters.City",
"key": "App.Definitions.City",
"tr": "Şehirler",
"en": "Cities"
},
{
"resourceName": "Platform",
"key": "App.Parameters.District",
"key": "App.Definitions.District",
"tr": "İlçeler",
"en": "Districts"
},
@ -10273,12 +10267,6 @@
"en": "Development Workflow",
"tr": "Geliştirme Akışı"
},
{
"resourceName": "Platform",
"key": "App.DeveloperKit.Dashboard.Flow.CreateEntity",
"en": "Create Entity",
"tr": "Varlık Oluştur"
},
{
"resourceName": "Platform",
"key": "App.DeveloperKit.Dashboard.Flow.CreateEntity.Desc",
@ -10471,12 +10459,6 @@
"en": "Edit Entity",
"tr": "Varlığı Düzenle"
},
{
"resourceName": "Platform",
"key": "App.DeveloperKit.EntityEditor.Title.Create",
"en": "Create Entity",
"tr": "Varlık Oluştur"
},
{
"resourceName": "Platform",
"key": "App.DeveloperKit.EntityEditor.Tooltip.Title",

View file

@ -4363,13 +4363,13 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
LayoutJson = DefaultLayoutJson,
CultureName = LanguageCodes.En,
ListFormCode = ListFormCodes.Lists.ContactTag,
Name = AppCodes.Parameters.ContactTag,
Title = AppCodes.Parameters.ContactTag,
Name = AppCodes.Definitions.ContactTag,
Title = AppCodes.Definitions.ContactTag,
DataSourceCode = SeedConsts.DataSources.DefaultCode,
IsTenant = false,
IsBranch = false,
IsOrganizationUnit = false,
Description = AppCodes.Parameters.ContactTag,
Description = AppCodes.Definitions.ContactTag,
SelectCommandType = SelectCommandTypeEnum.Table,
SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.ContactTag)),
KeyFieldName = "Id",
@ -4382,7 +4382,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
GroupPanelJson = JsonSerializer.Serialize(new { Visible = false }),
SelectionJson = DefaultSelectionSingleJson,
ColumnOptionJson = DefaultColumnOptionJson,
PermissionJson = DefaultPermissionJson(AppCodes.Parameters.ContactTag),
PermissionJson = DefaultPermissionJson(AppCodes.Definitions.ContactTag),
DeleteCommand = $"UPDATE \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.ContactTag))}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id",
DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[]
{
@ -4392,7 +4392,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
PagerOptionJson = DefaultPagerOptionJson,
EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto
{
Popup = new GridEditingPopupDto { Title = AppCodes.Parameters.ContactTag, Width = 400, Height = 200 },
Popup = new GridEditingPopupDto { Title = AppCodes.Definitions.ContactTag, Width = 400, Height = 200 },
AllowDeleting = true,
AllowAdding = true,
AllowUpdating = true,
@ -4459,7 +4459,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
IsActive = true,
IsDeleted = false,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.ContactTag),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.ContactTag),
PivotSettingsJson = DefaultPivotSettingsJson
},
new()
@ -4478,7 +4478,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.ContactTag),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.ContactTag),
PivotSettingsJson = DefaultPivotSettingsJson
},
new()
@ -4495,7 +4495,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.ContactTag),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.ContactTag),
PivotSettingsJson = DefaultPivotSettingsJson
}
]);
@ -4514,13 +4514,13 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
LayoutJson = DefaultLayoutJson,
CultureName = LanguageCodes.En,
ListFormCode = ListFormCodes.Lists.ContactTitle,
Name = AppCodes.Parameters.ContactTitle,
Title = AppCodes.Parameters.ContactTitle,
Name = AppCodes.Definitions.ContactTitle,
Title = AppCodes.Definitions.ContactTitle,
DataSourceCode = SeedConsts.DataSources.DefaultCode,
IsTenant = false,
IsBranch = false,
IsOrganizationUnit = false,
Description = AppCodes.Parameters.ContactTitle,
Description = AppCodes.Definitions.ContactTitle,
SelectCommandType = SelectCommandTypeEnum.Table,
SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.ContactTitle)),
KeyFieldName = "Id",
@ -4533,7 +4533,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
GroupPanelJson = JsonSerializer.Serialize(new { Visible = false }),
SelectionJson = DefaultSelectionSingleJson,
ColumnOptionJson = DefaultColumnOptionJson,
PermissionJson = DefaultPermissionJson(AppCodes.Parameters.ContactTitle),
PermissionJson = DefaultPermissionJson(AppCodes.Definitions.ContactTitle),
DeleteCommand = $"UPDATE \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.ContactTitle))}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id",
DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[]
{
@ -4543,7 +4543,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
PagerOptionJson = DefaultPagerOptionJson,
EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto
{
Popup = new GridEditingPopupDto { Title = AppCodes.Parameters.ContactTitle, Width = 400, Height = 200 },
Popup = new GridEditingPopupDto { Title = AppCodes.Definitions.ContactTitle, Width = 400, Height = 200 },
AllowDeleting = true,
AllowAdding = true,
AllowUpdating = true,
@ -4584,7 +4584,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
IsActive = true,
IsDeleted = false,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.ContactTitle),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.ContactTitle),
PivotSettingsJson = DefaultPivotSettingsJson
},
new()
@ -4603,7 +4603,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.ContactTitle),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.ContactTitle),
PivotSettingsJson = DefaultPivotSettingsJson
},
new()
@ -4620,7 +4620,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.ContactTitle),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.ContactTitle),
PivotSettingsJson = DefaultPivotSettingsJson
}
]);
@ -4639,13 +4639,13 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
LayoutJson = DefaultLayoutJson,
CultureName = LanguageCodes.En,
ListFormCode = ListFormCodes.Lists.Currency,
Name = AppCodes.Parameters.Currency,
Title = AppCodes.Parameters.Currency,
Name = AppCodes.Definitions.Currency,
Title = AppCodes.Definitions.Currency,
DataSourceCode = SeedConsts.DataSources.DefaultCode,
IsTenant = false,
IsBranch = false,
IsOrganizationUnit = false,
Description = AppCodes.Parameters.Currency,
Description = AppCodes.Definitions.Currency,
SelectCommandType = SelectCommandTypeEnum.Table,
SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Currency)),
KeyFieldName = "Id",
@ -4658,7 +4658,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
GroupPanelJson = JsonSerializer.Serialize(new { Visible = false }),
SelectionJson = DefaultSelectionSingleJson,
ColumnOptionJson = DefaultColumnOptionJson,
PermissionJson = DefaultPermissionJson(AppCodes.Parameters.Currency),
PermissionJson = DefaultPermissionJson(AppCodes.Definitions.Currency),
DeleteCommand = $"UPDATE \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Currency))}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id",
DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new[]
{
@ -4668,7 +4668,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
PagerOptionJson = DefaultPagerOptionJson,
EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto
{
Popup = new GridEditingPopupDto { Title = AppCodes.Parameters.Currency, Width = 500, Height = 350 },
Popup = new GridEditingPopupDto { Title = AppCodes.Definitions.Currency, Width = 500, Height = 350 },
AllowDeleting = true,
AllowAdding = true,
AllowUpdating = true,
@ -4713,7 +4713,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
IsActive = true,
IsDeleted = false,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.Currency),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.Currency),
},
new()
{
@ -4729,7 +4729,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.Currency),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.Currency),
},
new()
{
@ -4745,7 +4745,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
AllowSearch = false,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.Currency),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.Currency),
},
new()
{
@ -4761,7 +4761,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.Currency),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.Currency),
},
new()
{
@ -4779,7 +4779,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
AllowSearch = false,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.Currency),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.Currency),
},
new()
{
@ -4794,7 +4794,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
IsDeleted = false,
AllowSearch = false,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.Currency),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.Currency),
}
]);
#endregion
@ -4812,13 +4812,13 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
LayoutJson = DefaultLayoutJson,
CultureName = LanguageCodes.En,
ListFormCode = ListFormCodes.Lists.CountryGroup,
Name = AppCodes.Parameters.CountryGroup,
Title = AppCodes.Parameters.CountryGroup,
Name = AppCodes.Definitions.CountryGroup,
Title = AppCodes.Definitions.CountryGroup,
DataSourceCode = SeedConsts.DataSources.DefaultCode,
IsTenant = false,
IsBranch = false,
IsOrganizationUnit = false,
Description = AppCodes.Parameters.CountryGroup,
Description = AppCodes.Definitions.CountryGroup,
SelectCommandType = SelectCommandTypeEnum.Table,
SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.CountryGroup)),
KeyFieldName = "Id",
@ -4831,7 +4831,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
GroupPanelJson = JsonSerializer.Serialize(new { Visible = false }),
SelectionJson = DefaultSelectionSingleJson,
ColumnOptionJson = DefaultColumnOptionJson,
PermissionJson = DefaultPermissionJson(AppCodes.Parameters.CountryGroup),
PermissionJson = DefaultPermissionJson(AppCodes.Definitions.CountryGroup),
DeleteCommand = $"UPDATE \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.CountryGroup))}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id",
DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new[]
{
@ -4841,7 +4841,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
PagerOptionJson = DefaultPagerOptionJson,
EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto
{
Popup = new GridEditingPopupDto { Title = AppCodes.Parameters.CountryGroup, Width = 400, Height = 200 },
Popup = new GridEditingPopupDto { Title = AppCodes.Definitions.CountryGroup, Width = 400, Height = 200 },
AllowDeleting = true,
AllowAdding = true,
AllowUpdating = true,
@ -4888,7 +4888,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
IsActive = true,
IsDeleted = false,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.CountryGroup),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.CountryGroup),
},
new()
{
@ -4904,7 +4904,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.CountryGroup),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.CountryGroup),
}
]);
#endregion
@ -4922,13 +4922,13 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
LayoutJson = DefaultLayoutJson,
CultureName = LanguageCodes.En,
ListFormCode = ListFormCodes.Lists.Country,
Name = AppCodes.Parameters.Country,
Title = AppCodes.Parameters.Country,
Name = AppCodes.Definitions.Country,
Title = AppCodes.Definitions.Country,
DataSourceCode = SeedConsts.DataSources.DefaultCode,
IsTenant = false,
IsBranch = false,
IsOrganizationUnit = false,
Description = AppCodes.Parameters.Country,
Description = AppCodes.Definitions.Country,
SelectCommandType = SelectCommandTypeEnum.Table,
SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Country)),
KeyFieldName = "Id",
@ -4941,7 +4941,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
GroupPanelJson = JsonSerializer.Serialize(new { Visible = false }),
SelectionJson = DefaultSelectionSingleJson,
ColumnOptionJson = DefaultColumnOptionJson,
PermissionJson = DefaultPermissionJson(AppCodes.Parameters.Country),
PermissionJson = DefaultPermissionJson(AppCodes.Definitions.Country),
DeleteCommand = $"UPDATE \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Country))}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id",
DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new[]
{
@ -4951,7 +4951,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
PagerOptionJson = DefaultPagerOptionJson,
EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto
{
Popup = new GridEditingPopupDto { Title = AppCodes.Parameters.Country, Width = 600, Height = 500 },
Popup = new GridEditingPopupDto { Title = AppCodes.Definitions.Country, Width = 600, Height = 500 },
AllowDeleting = true,
AllowAdding = true,
AllowUpdating = true,
@ -4998,7 +4998,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
IsActive = true,
IsDeleted = false,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.Country),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.Country),
},
new()
{
@ -5014,7 +5014,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.Country),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.Country),
},
new()
{
@ -5030,7 +5030,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.Country),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.Country),
},
new()
{
@ -5052,7 +5052,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
LookupQuery = LookupQueryValues.CountryGroupValues,
}),
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.Country),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.Country),
},
new()
{
@ -5074,7 +5074,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
LookupQuery = LookupQueryValues.CurrencyValues,
}),
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.Country),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.Country),
},
new()
{
@ -5089,7 +5089,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
IsDeleted = false,
AllowSearch = false,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.Country),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.Country),
},
new()
{
@ -5104,7 +5104,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
IsDeleted = false,
AllowSearch = false,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.Country),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.Country),
},
new()
{
@ -5118,7 +5118,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
IsActive = true,
IsDeleted = false,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.Country),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.Country),
},
new()
{
@ -5132,7 +5132,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
IsActive = true,
IsDeleted = false,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.Country),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.Country),
}
]);
#endregion
@ -5151,13 +5151,13 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
LayoutJson = DefaultLayoutJson,
CultureName = LanguageCodes.En,
ListFormCode = ListFormCodes.Lists.City,
Name = AppCodes.Parameters.City,
Title = AppCodes.Parameters.City,
Name = AppCodes.Definitions.City,
Title = AppCodes.Definitions.City,
DataSourceCode = SeedConsts.DataSources.DefaultCode,
IsTenant = false,
IsBranch = false,
IsOrganizationUnit = false,
Description = AppCodes.Parameters.City,
Description = AppCodes.Definitions.City,
SelectCommandType = SelectCommandTypeEnum.Table,
SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.City)),
KeyFieldName = "Id",
@ -5170,7 +5170,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
GroupPanelJson = JsonSerializer.Serialize(new { Visible = false }),
SelectionJson = DefaultSelectionSingleJson,
ColumnOptionJson = DefaultColumnOptionJson,
PermissionJson = DefaultPermissionJson(AppCodes.Parameters.City),
PermissionJson = DefaultPermissionJson(AppCodes.Definitions.City),
DeleteCommand = $"UPDATE \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.City))}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id",
DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new[]
{
@ -5180,7 +5180,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
PagerOptionJson = DefaultPagerOptionJson,
EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto
{
Popup = new GridEditingPopupDto { Title = AppCodes.Parameters.City, Width = 500, Height = 300 },
Popup = new GridEditingPopupDto { Title = AppCodes.Definitions.City, Width = 500, Height = 300 },
AllowDeleting = true,
AllowAdding = true,
AllowUpdating = true,
@ -5226,7 +5226,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
IsActive = true,
IsDeleted = false,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.City),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.City),
},
new()
{
@ -5249,7 +5249,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.City),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.City),
},
new()
{
@ -5265,7 +5265,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.City),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.City),
},
new()
{
@ -5281,7 +5281,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.City),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.City),
},
new()
{
@ -5297,7 +5297,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
AllowSearch = false,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.City),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.City),
},
]);
#endregion
@ -5315,13 +5315,13 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
LayoutJson = DefaultLayoutJson,
CultureName = LanguageCodes.En,
ListFormCode = ListFormCodes.Lists.District,
Name = AppCodes.Parameters.District,
Title = AppCodes.Parameters.District,
Name = AppCodes.Definitions.District,
Title = AppCodes.Definitions.District,
DataSourceCode = SeedConsts.DataSources.DefaultCode,
IsTenant = false,
IsBranch = false,
IsOrganizationUnit = false,
Description = AppCodes.Parameters.District,
Description = AppCodes.Definitions.District,
SelectCommandType = SelectCommandTypeEnum.Table,
SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.District)),
KeyFieldName = "Id",
@ -5334,7 +5334,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
GroupPanelJson = JsonSerializer.Serialize(new { Visible = false }),
SelectionJson = DefaultSelectionSingleJson,
ColumnOptionJson = DefaultColumnOptionJson,
PermissionJson = DefaultPermissionJson(AppCodes.Parameters.District),
PermissionJson = DefaultPermissionJson(AppCodes.Definitions.District),
DeleteCommand = $"UPDATE \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.District))}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id",
DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new[]
{
@ -5344,7 +5344,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
PagerOptionJson = DefaultPagerOptionJson,
EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto
{
Popup = new GridEditingPopupDto { Title = AppCodes.Parameters.District, Width = 500, Height = 300 },
Popup = new GridEditingPopupDto { Title = AppCodes.Definitions.District, Width = 500, Height = 300 },
AllowDeleting = true,
AllowAdding = true,
AllowUpdating = true,
@ -5392,7 +5392,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
IsActive = true,
IsDeleted = false,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.District),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.District),
},
new()
{
@ -5416,7 +5416,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.District),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.District),
},
new()
{
@ -5442,7 +5442,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.District),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.District),
},
new()
{
@ -5458,7 +5458,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.District),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.District),
},
new()
{
@ -5474,7 +5474,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
AllowSearch = false,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.District),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.District),
},
new()
{
@ -5490,7 +5490,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
AllowSearch = false,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.District),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.District),
},
new()
{
@ -5506,7 +5506,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
AllowSearch = false,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(AppCodes.Parameters.District),
PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.District),
},
]);
#endregion

View file

@ -1395,86 +1395,6 @@
"RequiredPermissionName": "App.ForumManagement",
"IsDisabled": false
},
{
"ParentCode": "App.Saas",
"Code": "App.Parameters",
"DisplayName": "App.Parameters",
"Order": 11,
"Url": null,
"Icon": "FcFilingCabinet",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Parameters",
"Code": "App.Parameters.ContactTag",
"DisplayName": "App.Parameters.ContactTag",
"Order": 1,
"Url": "/admin/list/list-contactTag",
"Icon": "FcButtingIn",
"RequiredPermissionName": "App.Parameters.ContactTag",
"IsDisabled": false
},
{
"ParentCode": "App.Parameters",
"Code": "App.Parameters.ContactTitle",
"DisplayName": "App.Parameters.ContactTitle",
"Order": 2,
"Url": "/admin/list/list-contactTitle",
"Icon": "FcNeutralDecision",
"RequiredPermissionName": "App.Parameters.ContactTitle",
"IsDisabled": false
},
{
"ParentCode": "App.Parameters",
"Code": "App.Parameters.Currency",
"DisplayName": "App.Parameters.Currency",
"Order": 3,
"Url": "/admin/list/list-currency",
"Icon": "FcCurrencyExchange",
"RequiredPermissionName": "App.Parameters.Currency",
"IsDisabled": false
},
{
"ParentCode": "App.Parameters",
"Code": "App.Parameters.CountryGroup",
"DisplayName": "App.Parameters.CountryGroup",
"Order": 4,
"Url": "/admin/list/list-countryGroup",
"Icon": "FaFlag",
"RequiredPermissionName": "App.Parameters.CountryGroup",
"IsDisabled": false
},
{
"ParentCode": "App.Parameters",
"Code": "App.Parameters.Country",
"DisplayName": "App.Parameters.Country",
"Order": 5,
"Url": "/admin/list/list-country",
"Icon": "FaFlagCheckered",
"RequiredPermissionName": "App.Parameters.Country",
"IsDisabled": false
},
{
"ParentCode": "App.Parameters",
"Code": "App.Parameters.City",
"DisplayName": "App.Parameters.City",
"Order": 6,
"Url": "/admin/list/list-city",
"Icon": "FaFontAwesomeFlag",
"RequiredPermissionName": "App.Parameters.City",
"IsDisabled": false
},
{
"ParentCode": "App.Parameters",
"Code": "App.Parameters.District",
"DisplayName": "App.Parameters.District",
"Order": 7,
"Url": "/admin/list/list-district",
"Icon": "FaFontAwesome",
"RequiredPermissionName": "App.Parameters.District",
"IsDisabled": false
},
{
"ParentCode": null,
"Code": "App.Administration",
@ -1835,11 +1755,82 @@
"RequiredPermissionName": "App.Files",
"IsDisabled": false
},
{
"ParentCode": "App.Definitions",
"Code": "App.Definitions.ContactTag",
"DisplayName": "App.Definitions.ContactTag",
"Order": 1,
"Url": "/admin/list/list-contactTag",
"Icon": "FcButtingIn",
"RequiredPermissionName": "App.Definitions.ContactTag",
"IsDisabled": false
},
{
"ParentCode": "App.Definitions",
"Code": "App.Definitions.ContactTitle",
"DisplayName": "App.Definitions.ContactTitle",
"Order": 2,
"Url": "/admin/list/list-contactTitle",
"Icon": "FcNeutralDecision",
"RequiredPermissionName": "App.Definitions.ContactTitle",
"IsDisabled": false
},
{
"ParentCode": "App.Definitions",
"Code": "App.Definitions.Currency",
"DisplayName": "App.Definitions.Currency",
"Order": 3,
"Url": "/admin/list/list-currency",
"Icon": "FcCurrencyExchange",
"RequiredPermissionName": "App.Definitions.Currency",
"IsDisabled": false
},
{
"ParentCode": "App.Definitions",
"Code": "App.Definitions.CountryGroup",
"DisplayName": "App.Definitions.CountryGroup",
"Order": 4,
"Url": "/admin/list/list-countryGroup",
"Icon": "FaFlag",
"RequiredPermissionName": "App.Definitions.CountryGroup",
"IsDisabled": false
},
{
"ParentCode": "App.Definitions",
"Code": "App.Definitions.Country",
"DisplayName": "App.Definitions.Country",
"Order": 5,
"Url": "/admin/list/list-country",
"Icon": "FaFlagCheckered",
"RequiredPermissionName": "App.Definitions.Country",
"IsDisabled": false
},
{
"ParentCode": "App.Definitions",
"Code": "App.Definitions.City",
"DisplayName": "App.Definitions.City",
"Order": 6,
"Url": "/admin/list/list-city",
"Icon": "FaFontAwesomeFlag",
"RequiredPermissionName": "App.Definitions.City",
"IsDisabled": false
},
{
"ParentCode": "App.Definitions",
"Code": "App.Definitions.District",
"DisplayName": "App.Definitions.District",
"Order": 7,
"Url": "/admin/list/list-district",
"Icon": "FaFontAwesome",
"RequiredPermissionName": "App.Definitions.District",
"IsDisabled": false
},
{
"ParentCode": "App.Definitions",
"Code": "App.Definitions.WorkHour",
"DisplayName": "App.Definitions.WorkHour",
"Order": 1,
"Order": 8,
"Url": "/admin/list/list-workhour",
"Icon": "FcClock",
"RequiredPermissionName": "App.Definitions.WorkHour",
@ -1849,7 +1840,7 @@
"ParentCode": "App.Definitions",
"Code": "App.Definitions.Sector",
"DisplayName": "App.Definitions.Sector",
"Order": 2,
"Order": 9,
"Url": "/admin/list/list-sector",
"Icon": "FcBiomass",
"RequiredPermissionName": "App.Definitions.Sector",
@ -1859,7 +1850,7 @@
"ParentCode": "App.Definitions",
"Code": "App.Definitions.SkillType",
"DisplayName": "App.Definitions.SkillType",
"Order": 3,
"Order": 10,
"Url": "/admin/list/list-skillType",
"Icon": "FcMindMap",
"RequiredPermissionName": "App.Definitions.SkillType",
@ -1869,7 +1860,7 @@
"ParentCode": "App.Definitions",
"Code": "App.Definitions.UomCategory",
"DisplayName": "App.Definitions.UomCategory",
"Order": 4,
"Order": 11,
"Url": "/admin/list/list-uomCategory",
"Icon": "FcWorkflow",
"RequiredPermissionName": "App.Definitions.UomCategory",
@ -1879,7 +1870,7 @@
"ParentCode": "App.Definitions",
"Code": "App.Definitions.Behavior",
"DisplayName": "App.Definitions.Behavior",
"Order": 5,
"Order": 12,
"Url": "/admin/list/list-behavior",
"Icon": "FcPuzzle",
"RequiredPermissionName": "App.Definitions.Behavior",
@ -1889,7 +1880,7 @@
"ParentCode": "App.Definitions",
"Code": "App.Definitions.Disease",
"DisplayName": "App.Definitions.Disease",
"Order": 6,
"Order": 13,
"Url": "/admin/list/list-disease",
"Icon": "FcBiohazard",
"RequiredPermissionName": "App.Definitions.Disease",
@ -1899,7 +1890,7 @@
"ParentCode": "App.Definitions",
"Code": "App.Definitions.Document",
"DisplayName": "App.Definitions.Document",
"Order": 7,
"Order": 14,
"Url": "/admin/list/list-document",
"Icon": "FcDocument",
"RequiredPermissionName": "App.Definitions.Document",
@ -1909,7 +1900,7 @@
"ParentCode": "App.Definitions",
"Code": "App.Definitions.EducationStatus",
"DisplayName": "App.Definitions.EducationStatus",
"Order": 8,
"Order": 15,
"Url": "/admin/list/list-educationstatus",
"Icon": "FcGraduationCap",
"RequiredPermissionName": "App.Definitions.EducationStatus",
@ -1919,7 +1910,7 @@
"ParentCode": "App.Definitions",
"Code": "App.Definitions.Vaccine",
"DisplayName": "App.Definitions.Vaccine",
"Order": 12,
"Order": 16,
"Url": "/admin/list/list-vaccine",
"Icon": "FcBiotech",
"RequiredPermissionName": "App.Definitions.Vaccine",
@ -1929,7 +1920,7 @@
"ParentCode": "App.Definitions",
"Code": "App.Definitions.Vehicle",
"DisplayName": "App.Definitions.Vehicle",
"Order": 13,
"Order": 17,
"Url": "/admin/list/list-vehicle",
"Icon": "FcAutomotive",
"RequiredPermissionName": "App.Definitions.Vehicle",
@ -1939,7 +1930,7 @@
"ParentCode": "App.Definitions",
"Code": "App.Definitions.Psychologist",
"DisplayName": "App.Definitions.Psychologist",
"Order": 14,
"Order": 18,
"Url": "/admin/list/list-psychologist",
"Icon": "FcMindMap",
"RequiredPermissionName": "App.Definitions.Psychologist",
@ -1949,7 +1940,7 @@
"ParentCode": "App.Definitions",
"Code": "App.Definitions.Lawyer",
"DisplayName": "App.Definitions.Lawyer",
"Order": 15,
"Order": 19,
"Url": "/admin/list/list-lawyer",
"Icon": "FcBusinessman",
"RequiredPermissionName": "App.Definitions.Lawyer",

View file

@ -1059,17 +1059,17 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.ContactTag",
"Name": "App.Definitions.ContactTag",
"ParentName": null,
"DisplayName": "App.Parameters.ContactTag",
"DisplayName": "App.Definitions.ContactTag",
"IsEnabled": true,
"MultiTenancySide": 2,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.ContactTag.Create",
"ParentName": "App.Parameters.ContactTag",
"Name": "App.Definitions.ContactTag.Create",
"ParentName": "App.Definitions.ContactTag",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1077,8 +1077,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.ContactTag.Update",
"ParentName": "App.Parameters.ContactTag",
"Name": "App.Definitions.ContactTag.Update",
"ParentName": "App.Definitions.ContactTag",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1086,8 +1086,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.ContactTag.Delete",
"ParentName": "App.Parameters.ContactTag",
"Name": "App.Definitions.ContactTag.Delete",
"ParentName": "App.Definitions.ContactTag",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1095,8 +1095,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.ContactTag.Export",
"ParentName": "App.Parameters.ContactTag",
"Name": "App.Definitions.ContactTag.Export",
"ParentName": "App.Definitions.ContactTag",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1104,8 +1104,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.ContactTag.Import",
"ParentName": "App.Parameters.ContactTag",
"Name": "App.Definitions.ContactTag.Import",
"ParentName": "App.Definitions.ContactTag",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1113,8 +1113,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.ContactTag.Activity",
"ParentName": "App.Parameters.ContactTag",
"Name": "App.Definitions.ContactTag.Activity",
"ParentName": "App.Definitions.ContactTag",
"DisplayName": "Activity",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1122,17 +1122,17 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.ContactTitle",
"Name": "App.Definitions.ContactTitle",
"ParentName": null,
"DisplayName": "App.Parameters.ContactTitle",
"DisplayName": "App.Definitions.ContactTitle",
"IsEnabled": true,
"MultiTenancySide": 2,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.ContactTitle.Create",
"ParentName": "App.Parameters.ContactTitle",
"Name": "App.Definitions.ContactTitle.Create",
"ParentName": "App.Definitions.ContactTitle",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1140,8 +1140,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.ContactTitle.Update",
"ParentName": "App.Parameters.ContactTitle",
"Name": "App.Definitions.ContactTitle.Update",
"ParentName": "App.Definitions.ContactTitle",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1149,8 +1149,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.ContactTitle.Delete",
"ParentName": "App.Parameters.ContactTitle",
"Name": "App.Definitions.ContactTitle.Delete",
"ParentName": "App.Definitions.ContactTitle",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1158,8 +1158,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.ContactTitle.Export",
"ParentName": "App.Parameters.ContactTitle",
"Name": "App.Definitions.ContactTitle.Export",
"ParentName": "App.Definitions.ContactTitle",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1167,8 +1167,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.ContactTitle.Import",
"ParentName": "App.Parameters.ContactTitle",
"Name": "App.Definitions.ContactTitle.Import",
"ParentName": "App.Definitions.ContactTitle",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1176,8 +1176,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.ContactTitle.Activity",
"ParentName": "App.Parameters.ContactTitle",
"Name": "App.Definitions.ContactTitle.Activity",
"ParentName": "App.Definitions.ContactTitle",
"DisplayName": "Activity",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1185,17 +1185,17 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.Currency",
"Name": "App.Definitions.Currency",
"ParentName": null,
"DisplayName": "App.Parameters.Currency",
"DisplayName": "App.Definitions.Currency",
"IsEnabled": true,
"MultiTenancySide": 2,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.Currency.Create",
"ParentName": "App.Parameters.Currency",
"Name": "App.Definitions.Currency.Create",
"ParentName": "App.Definitions.Currency",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1203,8 +1203,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.Currency.Update",
"ParentName": "App.Parameters.Currency",
"Name": "App.Definitions.Currency.Update",
"ParentName": "App.Definitions.Currency",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1212,8 +1212,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.Currency.Delete",
"ParentName": "App.Parameters.Currency",
"Name": "App.Definitions.Currency.Delete",
"ParentName": "App.Definitions.Currency",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1221,8 +1221,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.Currency.Export",
"ParentName": "App.Parameters.Currency",
"Name": "App.Definitions.Currency.Export",
"ParentName": "App.Definitions.Currency",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1230,8 +1230,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.Currency.Import",
"ParentName": "App.Parameters.Currency",
"Name": "App.Definitions.Currency.Import",
"ParentName": "App.Definitions.Currency",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1239,8 +1239,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.Currency.Activity",
"ParentName": "App.Parameters.Currency",
"Name": "App.Definitions.Currency.Activity",
"ParentName": "App.Definitions.Currency",
"DisplayName": "Activity",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1248,17 +1248,17 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.CountryGroup",
"Name": "App.Definitions.CountryGroup",
"ParentName": null,
"DisplayName": "App.Parameters.CountryGroup",
"DisplayName": "App.Definitions.CountryGroup",
"IsEnabled": true,
"MultiTenancySide": 2,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.CountryGroup.Create",
"ParentName": "App.Parameters.CountryGroup",
"Name": "App.Definitions.CountryGroup.Create",
"ParentName": "App.Definitions.CountryGroup",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1266,8 +1266,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.CountryGroup.Update",
"ParentName": "App.Parameters.CountryGroup",
"Name": "App.Definitions.CountryGroup.Update",
"ParentName": "App.Definitions.CountryGroup",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1275,8 +1275,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.CountryGroup.Delete",
"ParentName": "App.Parameters.CountryGroup",
"Name": "App.Definitions.CountryGroup.Delete",
"ParentName": "App.Definitions.CountryGroup",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1284,8 +1284,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.CountryGroup.Export",
"ParentName": "App.Parameters.CountryGroup",
"Name": "App.Definitions.CountryGroup.Export",
"ParentName": "App.Definitions.CountryGroup",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1293,8 +1293,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.CountryGroup.Import",
"ParentName": "App.Parameters.CountryGroup",
"Name": "App.Definitions.CountryGroup.Import",
"ParentName": "App.Definitions.CountryGroup",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1302,8 +1302,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.CountryGroup.Activity",
"ParentName": "App.Parameters.CountryGroup",
"Name": "App.Definitions.CountryGroup.Activity",
"ParentName": "App.Definitions.CountryGroup",
"DisplayName": "Activity",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1311,17 +1311,17 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.Country",
"Name": "App.Definitions.Country",
"ParentName": null,
"DisplayName": "App.Parameters.Country",
"DisplayName": "App.Definitions.Country",
"IsEnabled": true,
"MultiTenancySide": 2,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.Country.Create",
"ParentName": "App.Parameters.Country",
"Name": "App.Definitions.Country.Create",
"ParentName": "App.Definitions.Country",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1329,8 +1329,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.Country.Update",
"ParentName": "App.Parameters.Country",
"Name": "App.Definitions.Country.Update",
"ParentName": "App.Definitions.Country",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1338,8 +1338,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.Country.Delete",
"ParentName": "App.Parameters.Country",
"Name": "App.Definitions.Country.Delete",
"ParentName": "App.Definitions.Country",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1347,8 +1347,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.Country.Export",
"ParentName": "App.Parameters.Country",
"Name": "App.Definitions.Country.Export",
"ParentName": "App.Definitions.Country",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1356,8 +1356,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.Country.Import",
"ParentName": "App.Parameters.Country",
"Name": "App.Definitions.Country.Import",
"ParentName": "App.Definitions.Country",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1365,8 +1365,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.Country.Activity",
"ParentName": "App.Parameters.Country",
"Name": "App.Definitions.Country.Activity",
"ParentName": "App.Definitions.Country",
"DisplayName": "Activity",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1374,17 +1374,17 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.City",
"Name": "App.Definitions.City",
"ParentName": null,
"DisplayName": "App.Parameters.City",
"DisplayName": "App.Definitions.City",
"IsEnabled": true,
"MultiTenancySide": 2,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.City.Create",
"ParentName": "App.Parameters.City",
"Name": "App.Definitions.City.Create",
"ParentName": "App.Definitions.City",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1392,8 +1392,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.City.Update",
"ParentName": "App.Parameters.City",
"Name": "App.Definitions.City.Update",
"ParentName": "App.Definitions.City",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1401,8 +1401,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.City.Delete",
"ParentName": "App.Parameters.City",
"Name": "App.Definitions.City.Delete",
"ParentName": "App.Definitions.City",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1410,8 +1410,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.City.Export",
"ParentName": "App.Parameters.City",
"Name": "App.Definitions.City.Export",
"ParentName": "App.Definitions.City",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1419,8 +1419,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.City.Import",
"ParentName": "App.Parameters.City",
"Name": "App.Definitions.City.Import",
"ParentName": "App.Definitions.City",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1428,8 +1428,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.City.Activity",
"ParentName": "App.Parameters.City",
"Name": "App.Definitions.City.Activity",
"ParentName": "App.Definitions.City",
"DisplayName": "Activity",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1437,17 +1437,17 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.District",
"Name": "App.Definitions.District",
"ParentName": null,
"DisplayName": "App.Parameters.District",
"DisplayName": "App.Definitions.District",
"IsEnabled": true,
"MultiTenancySide": 2,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.District.Create",
"ParentName": "App.Parameters.District",
"Name": "App.Definitions.District.Create",
"ParentName": "App.Definitions.District",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1455,8 +1455,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.District.Update",
"ParentName": "App.Parameters.District",
"Name": "App.Definitions.District.Update",
"ParentName": "App.Definitions.District",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1464,8 +1464,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.District.Delete",
"ParentName": "App.Parameters.District",
"Name": "App.Definitions.District.Delete",
"ParentName": "App.Definitions.District",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1473,8 +1473,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.District.Export",
"ParentName": "App.Parameters.District",
"Name": "App.Definitions.District.Export",
"ParentName": "App.Definitions.District",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1482,8 +1482,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.District.Import",
"ParentName": "App.Parameters.District",
"Name": "App.Definitions.District.Import",
"ParentName": "App.Definitions.District",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 2,
@ -1491,8 +1491,8 @@
},
{
"GroupName": "App.Saas",
"Name": "App.Parameters.District.Activity",
"ParentName": "App.Parameters.District",
"Name": "App.Definitions.District.Activity",
"ParentName": "App.Definitions.District",
"DisplayName": "Activity",
"IsEnabled": true,
"MultiTenancySide": 2,

View file

@ -71,20 +71,6 @@ public static class PlatformConsts
public const string MenuGroup = "MenuGroup";
}
public static class DynamicServices
{
public const string GroupName = "DynamicServices";
public const string DynamicAppServices = GroupName + ".DynamicAppServices";
public const string Create = DynamicAppServices + ".Create";
public const string Edit = DynamicAppServices + ".Edit";
public const string Delete = DynamicAppServices + ".Delete";
public const string Manage = DynamicAppServices + ".Manage";
public const string TestCompile = DynamicAppServices + ".TestCompile";
public const string Publish = DynamicAppServices + ".Publish";
public const string ViewCode = DynamicAppServices + ".ViewCode";
}
public static class AbpIdentity
{
public const string GroupName = $"{Prefix.Abp}.Identity";
@ -338,21 +324,23 @@ public static class PlatformConsts
public const string Get = CustomEndpoints + ".Get";
public const string Post = CustomEndpoints + ".Post";
public static class DynamicServices
{
public const string DynamicService = Default + ".DynamicServices";
public const string Create = DynamicService + ".Create";
public const string Edit = DynamicService + ".Edit";
public const string Delete = DynamicService + ".Delete";
public const string Manage = DynamicService + ".Manage";
public const string TestCompile = DynamicService + ".TestCompile";
public const string Publish = DynamicService + ".Publish";
public const string ViewCode = DynamicService + ".ViewCode";
}
}
public const string Blog = Prefix.App + ".Blog";
public const string Forum = Prefix.App + ".Forum";
public static class Parameters
{
public const string Default = Prefix.App + ".Parameters";
public const string ContactTag = Default + ".ContactTag";
public const string ContactTitle = Default + ".ContactTitle";
public const string Currency = Default + ".Currency";
public const string CountryGroup = Default + ".CountryGroup";
public const string Country = Default + ".Country";
public const string City = Default + ".City";
public const string District = Default + ".District";
}
//Administration
public const string Administration = Prefix.App + ".Administration";
@ -366,6 +354,13 @@ public static class PlatformConsts
public const string AuditLogs = Prefix.App + ".AuditLogs";
public static class Definitions
{
public const string ContactTag = Default + ".ContactTag";
public const string ContactTitle = Default + ".ContactTitle";
public const string Currency = Default + ".Currency";
public const string CountryGroup = Default + ".CountryGroup";
public const string Country = Default + ".Country";
public const string City = Default + ".City";
public const string District = Default + ".District";
public const string Default = Prefix.App + ".Definitions";
public const string Sector = Default + ".Sector";
public const string SkillType = Default + ".SkillType";

View file

@ -385,17 +385,6 @@ public static class SeedConsts
}
public const string Demos = Prefix.App + ".Demos";
public const string Contact = Prefix.App + ".Contact";
public static class Parameters
{
public const string Default = Prefix.App + ".Parameters";
public const string ContactTag = Default + ".ContactTag";
public const string ContactTitle = Default + ".ContactTitle";
public const string Currency = Default + ".Currency";
public const string CountryGroup = Default + ".CountryGroup";
public const string Country = Default + ".Country";
public const string City = Default + ".City";
public const string District = Default + ".District";
}
//Administration
public const string Administration = Prefix.App + ".Administration";
@ -409,6 +398,15 @@ public static class SeedConsts
public static class Definitions
{
public const string Default = Prefix.App + ".Definitions";
public const string ContactTag = Default + ".ContactTag";
public const string ContactTitle = Default + ".ContactTitle";
public const string Currency = Default + ".Currency";
public const string CountryGroup = Default + ".CountryGroup";
public const string Country = Default + ".Country";
public const string City = Default + ".City";
public const string District = Default + ".District";
public const string Sector = Default + ".Sector";
public const string SkillType = Default + ".SkillType";
public const string SkillLevel = Default + ".SkillLevel";

View file

@ -1,97 +0,0 @@
using System;
using System.Threading.Tasks;
using Kurs.Platform.DeveloperKit;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.Application.Dtos;
using Volo.Abp.AspNetCore.Mvc;
namespace Kurs.Platform.DynamicServices
{
/// <summary>
/// Dynamic AppService yönetimi HTTP API Controller
/// </summary>
[Area("app")]
[Route("api/app/dynamic-app-service")]
public class DynamicAppServiceController : AbpController
{
private readonly IDynamicServiceManager _dynamicAppServiceManager;
public DynamicAppServiceController(IDynamicServiceManager dynamicAppServiceManager)
{
_dynamicAppServiceManager = dynamicAppServiceManager;
}
/// <summary>
/// Kod test derlemesi
/// </summary>
[HttpPost("test-compile")]
public async Task<CompileResultDto> TestCompileAsync(TestCompileRequestDto request)
{
return await _dynamicAppServiceManager.TestCompileAsync(request);
}
/// <summary>
/// AppService yayınlama
/// </summary>
[HttpPost("publish")]
public async Task<PublishResultDto> PublishAsync(PublishAppServiceRequestDto request)
{
return await _dynamicAppServiceManager.PublishAsync(request);
}
/// <summary>
/// AppService listesi
/// </summary>
[HttpGet]
public async Task<PagedResultDto<DynamicServiceDto>> GetListAsync(
[FromQuery] PagedAndSortedResultRequestDto input)
{
return await _dynamicAppServiceManager.GetListAsync(input);
}
/// <summary>
/// AppService detayı
/// </summary>
[HttpGet("{id}")]
public async Task<DynamicServiceDto> GetAsync(Guid id)
{
return await _dynamicAppServiceManager.GetAsync(id);
}
/// <summary>
/// AppService silme
/// </summary>
[HttpDelete("{id}")]
public async Task DeleteAsync(Guid id)
{
await _dynamicAppServiceManager.DeleteAsync(id);
}
/// <summary>
/// AppService aktiflik durumu
/// </summary>
[HttpPut("{id}/active")]
public async Task SetActiveAsync(Guid id, [FromBody] bool isActive)
{
await _dynamicAppServiceManager.SetActiveAsync(id, isActive);
}
/// <summary>
/// Tüm aktif servisleri yeniden yükle
/// </summary>
[HttpPost("reload-all")]
public async Task ReloadAllActiveServicesAsync()
{
await _dynamicAppServiceManager.ReloadAllActiveServicesAsync();
}
/// <summary>
/// AppService yeniden derleme
/// </summary>
[HttpPost("{id}/recompile")]
public async Task<CompileResultDto> RecompileAsync(Guid id)
{
return await _dynamicAppServiceManager.RecompileAsync(id);
}
}
}

View file

@ -68,7 +68,7 @@ const Dashboard: React.FC = () => {
const developmentFlow = [
{
step: 1,
title: translate('::App.DeveloperKit.Dashboard.Flow.CreateEntity'),
title: translate('::App.DeveloperKit.Entity.CreateEntity'),
description: translate('::App.DeveloperKit.Dashboard.Flow.CreateEntity.Desc'),
icon: FaDatabase,
color: 'bg-blue-600',

View file

@ -193,7 +193,7 @@ const EntityEditor: React.FC = () => {
<h1 className="text-xl font-bold text-slate-900">
{isEditing
? `${translate('::App.DeveloperKit.EntityEditor.Title.Edit')} - ${values.name || initialValues.name || 'Entity'}`
: translate('::App.DeveloperKit.EntityEditor.Title.Create')}
: translate('::App.DeveloperKit.Entity.CreateEntity')}
</h1>
<p className="text-sm text-slate-600">
{isEditing ? 'Modify your entity' : 'Create a new entity'}

View file

@ -1,18 +1,15 @@
import React from 'react'
import DynamicAppServiceEditor from '@/components/developerKit/DynamicAppServiceEditor'
import { useLocalization } from '@/utils/hooks/useLocalization'
import { Helmet } from 'react-helmet'
import DeveloperLayout from '@/components/layouts/DeveloperLayout'
const DynamicServicePage: React.FC = () => {
const { translate } = useLocalization()
return (
<>
<Helmet>
<title>Dynamic Services - Developer Kit</title>
</Helmet>
<DeveloperLayout>
<DynamicAppServiceEditor />
</>
</DeveloperLayout>
)
}