112 lines
7.7 KiB
C#
112 lines
7.7 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
|
|||
|
|
namespace Sozsoft.Platform.Enums;
|
|||
|
|
|
|||
|
|
public static class TableNameResolver
|
|||
|
|
{
|
|||
|
|
public const string ViewPrefix = "V_";
|
|||
|
|
|
|||
|
|
// Tüm tabloların hangi prefix tipine ve menü grubuna ait olduğunu belirten harita
|
|||
|
|
private static readonly Dictionary<string, (Func<MenuPrefix, TableNameEnum, string> Method, MenuPrefix PrefixGroup)>
|
|||
|
|
_map = new(StringComparer.OrdinalIgnoreCase)
|
|||
|
|
{
|
|||
|
|
// 🔹 MODULE TABLOLARI
|
|||
|
|
{ nameof(TableNameEnum.LogEntry), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|||
|
|
{ nameof(TableNameEnum.Language), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|||
|
|
{ nameof(TableNameEnum.LanguageKey), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|||
|
|
{ nameof(TableNameEnum.LanguageText), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|||
|
|
{ nameof(TableNameEnum.SettingDefinition), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|||
|
|
{ nameof(TableNameEnum.Notification), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|||
|
|
{ nameof(TableNameEnum.NotificationRule), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|||
|
|
{ nameof(TableNameEnum.BackgroundWorker_MailQueue), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|||
|
|
{ nameof(TableNameEnum.BackgroundWorker_MailQueueEvents), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|||
|
|
{ nameof(TableNameEnum.BackgroundWorker_MailQueueTableFormat), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|||
|
|
{ nameof(TableNameEnum.AiBot), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|||
|
|
{ nameof(TableNameEnum.BackgroundWorker), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|||
|
|
|
|||
|
|
// 🔹 PLATFORM TABLOLARI
|
|||
|
|
{ nameof(TableNameEnum.Route), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.Menu), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.DataSource), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.ListForm), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.ListFormField), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.ListFormCustomization), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.ListFormImport), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.ListFormImportExecute), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.ContactTitle), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.Currency), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.CountryGroup), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.Country), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.City), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.District), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.ForumCategory), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.ForumTopic), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.ForumPost), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|||
|
|
|
|||
|
|
// 🔹 TENANT TABLOLARI (GENEL)
|
|||
|
|
{ nameof(TableNameEnum.Note), (TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.Branch), (TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.BranchUsers), (TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.GlobalSearch), (TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.CustomEntity), (TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.CustomEntityField), (TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.ApiMigration), (TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.CrudEndpoint), (TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.CustomEndpoint), (TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.CustomComponent), (TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.DynamicService), (TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.ReportCategory), (TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.ReportTemplate), (TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.IpRestriction), (TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|||
|
|
{ nameof(TableNameEnum.Sector), (TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|||
|
|
|
|||
|
|
// 🔹 ADMINISTRATION
|
|||
|
|
{ nameof(TableNameEnum.SkillType), (TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|||
|
|
{ nameof(TableNameEnum.Skill), (TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|||
|
|
{ nameof(TableNameEnum.SkillLevel), (TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|||
|
|
{ nameof(TableNameEnum.UomCategory), (TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|||
|
|
{ nameof(TableNameEnum.Uom), (TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|||
|
|
{ nameof(TableNameEnum.WorkHour), (TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|||
|
|
{ nameof(TableNameEnum.About), (TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|||
|
|
{ nameof(TableNameEnum.Service), (TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|||
|
|
{ nameof(TableNameEnum.Product), (TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|||
|
|
{ nameof(TableNameEnum.PaymentMethod), (TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|||
|
|
{ nameof(TableNameEnum.InstallmentOption), (TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|||
|
|
{ nameof(TableNameEnum.Order), (TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|||
|
|
{ nameof(TableNameEnum.OrderItem), (TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|||
|
|
{ nameof(TableNameEnum.BlogCategory), (TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|||
|
|
{ nameof(TableNameEnum.BlogPost), (TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|||
|
|
{ nameof(TableNameEnum.Demo), (TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|||
|
|
{ nameof(TableNameEnum.Contact), (TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
public static string GetFullTableName(string tableName)
|
|||
|
|
{
|
|||
|
|
if (!Enum.TryParse<TableNameEnum>(tableName, out var tableEnum))
|
|||
|
|
throw new ArgumentException($"'{tableName}' geçerli bir TableNameEnum değil.");
|
|||
|
|
|
|||
|
|
if (!_map.TryGetValue(tableName, out var entry))
|
|||
|
|
throw new KeyNotFoundException($"'{tableName}' için tablo eşlemesi bulunamadı.");
|
|||
|
|
|
|||
|
|
return entry.Method(entry.PrefixGroup, tableEnum);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static string GetFullViewName(string tableName)
|
|||
|
|
{
|
|||
|
|
if (!Enum.TryParse<TableNameEnum>(tableName, out var tableEnum))
|
|||
|
|
throw new ArgumentException($"'{tableName}' geçerli bir TableNameEnum değil.");
|
|||
|
|
|
|||
|
|
if (!_map.TryGetValue(tableName, out var entry))
|
|||
|
|
throw new KeyNotFoundException($"'{tableName}' için tablo eşlemesi bulunamadı.");
|
|||
|
|
|
|||
|
|
return ViewPrefix + entry.Method(entry.PrefixGroup, tableEnum);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static string GetFullSpecialViewName(MenuPrefix menu, string Prefix, string objectName)
|
|||
|
|
{
|
|||
|
|
return $"{ViewPrefix}{MenuPrefixExtensions.ToPrefix(menu)}_{Prefix}_{objectName}";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|