2026-02-24 20:44:16 +00:00
using System.Text.Json ;
using Sozsoft.Platform.Enums ;
using Sozsoft.Platform.ListForms ;
using static Sozsoft . Platform . PlatformConsts ;
namespace Sozsoft.Platform ;
public static class LookupQueryValues
{
private const string defaultDomain = "Sozsoft" ;
public static string DefaultLookupQueryJson (
string TableName ,
string ValueExpr ,
string DisplayExpr ,
bool isTable = true ,
bool isDeleted = false ) = > JsonSerializer . Serialize ( new LookupDto
{
DataSourceType = UiLookupDataSourceTypeEnum . Query ,
ValueExpr = "Key" ,
DisplayExpr = "Name" ,
LookupQuery = $"SELECT " +
$"\" { ValueExpr } \ " AS \"Key\", " +
$"\" { DisplayExpr } \ " AS \"Name\" " +
$"FROM \" { ( isTable ? TableNameResolver . GetFullTableName ( $"{TableName}" ) : TableNameResolver . GetFullViewName ( $"{TableName}" ) ) } \ " " +
( ! isDeleted ? "" : $"WHERE \" IsDeleted \ " = 'false'" ) +
$"ORDER BY \" { DisplayExpr } \ ";"
} ) ;
public static string DefaultLookupQuery (
string TableName ,
string ValueExpr ,
string DisplayExpr ,
bool isTable = true ,
bool isDeleted = false )
{
return $"SELECT " +
$"\" { ValueExpr } \ " AS \"Key\", " +
$"\" { DisplayExpr } \ " AS \"Name\" " +
$"FROM \" { ( isTable ? TableNameResolver . GetFullTableName ( $"{TableName}" ) : TableNameResolver . GetFullViewName ( $"{TableName}" ) ) } \ " " +
( ! isDeleted ? "" : $"WHERE \" IsDeleted \ " = 'false'" ) +
$"ORDER BY \" { DisplayExpr } \ ";" ;
}
2026-06-23 17:30:19 +00:00
public static string TenantValues ( bool alwaysName = false )
{
if ( alwaysName )
{
return $"SELECT * FROM (" +
$"SELECT " +
$"\" AbpTenants \ ".\"Name\" AS \"Key\", " +
$"\" AbpTenants \ ".\"Name\" AS \"Name\" " +
$"FROM \" AbpTenants \ "" +
$") AS \" List \ " " +
2026-07-07 21:00:35 +00:00
$"ORDER BY \" Name \ "" ;
2026-06-23 17:30:19 +00:00
}
else
{
return $"SELECT * FROM (" +
2026-07-07 13:41:07 +00:00
// $"SELECT NULL AS \"Key\", 'Host' AS \"Name\" " +
// $"UNION ALL " +
2026-06-23 17:30:19 +00:00
$"SELECT " +
$"\" AbpTenants \ ".\"Id\" AS \"Key\", " +
$"\" AbpTenants \ ".\"Name\" AS \"Name\" " +
$"FROM \" AbpTenants \ "" +
$") AS \" List \ " " +
$"ORDER BY \" Name \ "" ;
}
}
2026-02-24 20:44:16 +00:00
public static string LanguageKeyValues =
$"SELECT " +
$"\" { FullNameTable ( TableNameEnum . LanguageKey ) } \ ".\"Key\", " +
$"CONCAT(" +
$"\" { FullNameTable ( TableNameEnum . LanguageKey ) } \ ".\"Key\", " +
$"' (', " +
$"\" { FullNameTable ( TableNameEnum . LanguageText ) } \ ".\"Value\", " +
$"')'" +
$") AS \" Name \ " " +
$"FROM \" { FullNameTable ( TableNameEnum . LanguageKey ) } \ " " +
$"LEFT OUTER JOIN \" { FullNameTable ( TableNameEnum . LanguageText ) } \ " " +
$"ON \" { FullNameTable ( TableNameEnum . LanguageKey ) } \ ".\"Key\" = \"{FullNameTable(TableNameEnum.LanguageText)}\".\"Key\" " +
$"AND \" { FullNameTable ( TableNameEnum . LanguageKey ) } \ ".\"ResourceName\" = \"{FullNameTable(TableNameEnum.LanguageText)}\".\"ResourceName\" " +
$"WHERE " +
2026-05-04 19:50:21 +00:00
$"\" { FullNameTable ( TableNameEnum . LanguageText ) } \ ".\"CultureName\" = 'tr' " +
2026-02-24 20:44:16 +00:00
$"ORDER BY \" { FullNameTable ( TableNameEnum . LanguageKey ) } \ ".\"Key\";" ;
2026-09-03 08:26:35 +00:00
public static string CustomComponentValues =
$"SELECT " +
$"\" Name \ " AS \"Key\", " +
$"\" Name \ " AS \"Name\" " +
$"FROM \" { FullNameTable ( TableNameEnum . CustomComponent ) } \ " " +
$"WHERE " +
$"\" IsActive \ " = 'true' " +
$"AND \" IsDeleted \ " = 'false' " +
$"ORDER BY \" Name \ ";" ;
2026-02-24 20:44:16 +00:00
public static string CountryValues =
$"SELECT " +
$"\" Id \ " AS \"Key\", " +
$"\" Name \ " AS \"Name\" " +
$"FROM \" { FullNameTable ( TableNameEnum . Country ) } \ " " +
$"WHERE \" IsDeleted \ " = 'false' " +
$"ORDER BY \" Name \ ";" ;
public static string CityValues =
$"SELECT " +
$"\" Name \ " AS \"Key\", " +
$"\" Name \ " AS \"Name\" " +
$"FROM \" { FullNameTable ( TableNameEnum . City ) } \ " " +
$"WHERE " +
$"(\" Country \ " = @param0 OR @param0 IS NULL) " +
$"AND \" IsDeleted \ " = 'false' " +
$"ORDER BY \" Name \ ";" ;
public static string DistrictValues =
$"SELECT " +
$"\" Name \ " AS \"Key\", " +
$"\" Name \ " AS \"Name\" " +
$"FROM \" { FullNameTable ( TableNameEnum . District ) } \ " " +
$"WHERE " +
$"(\" Country \ " = @param0 OR @param0 IS NULL) " +
$"AND (\" City \ " = @param1 OR @param1 IS NULL) " +
$"AND \" IsDeleted \ " = 'false' " +
$"GROUP BY \" Name \ " " +
$"ORDER BY \" Name \ ";" ;
public static string TownshipValues =
$"SELECT " +
$"\" Township \ " AS \"Key\", " +
2026-07-07 21:00:35 +00:00
$"\" Township \ " AS \"Name\", " +
$"\" PostalCode \ " AS \"Group\" " +
2026-02-24 20:44:16 +00:00
$"FROM \" { FullNameTable ( TableNameEnum . District ) } \ " " +
$"WHERE " +
$"(\" Country \ " = @param0 OR @param0 IS NULL) " +
$"AND (\" City \ " = @param1 OR @param1 IS NULL) " +
$"AND (\" Name \ " = @param2 OR @param2 IS NULL) " +
$"AND \" IsDeleted \ " = 'false' " +
2026-07-07 21:00:35 +00:00
$"GROUP BY \" Township \ ", \"PostalCode\" " +
2026-02-24 20:44:16 +00:00
$"ORDER BY \" Township \ ";" ;
public static string RoleValues =
$"SELECT " +
$"\" Id \ " AS \"Key\", " +
$"\" Name \ " AS \"Name\" " +
$"FROM \" AbpRoles \ "" +
$"ORDER BY \" Name \ "" ;
2026-09-21 06:57:02 +00:00
/// <summary>
/// Manuel bildirim alicilari: yalnizca oturumun kiracisindaki aktif kullanicilar. Kiraci
/// filtresi '@TENANTID' ile kurulur, host baglaminda "IS NULL" olarak cozulur.
/// </summary>
public static string TenantUserValues =
$"SELECT " +
$"\" Id \ " AS \"Key\", " +
$"CONCAT(\" Name \ ", ' ', \"Surname\", ' (', \"UserName\", ')') AS \"Name\" " +
$"FROM \" AbpUsers \ " " +
$"WHERE " +
$"\" IsDeleted \ " = 'false' " +
$"AND \" IsActive \ " = 'true' " +
$"AND \" TenantId \ " = '@TENANTID' " +
$"ORDER BY \" Name \ ";" ;
/// <summary>
/// Manuel gonderimde secilebilen aktif sablonlar. Konu ve govde de secilir: ekrandaki
/// <c>copy</c> kurali sablon secilince bu kolonlari forma tasir (EditorScript).
/// </summary>
public static string NotificationTemplateValues =
$"SELECT " +
$"\" Id \ " AS \"Key\", " +
$"\" Name \ " AS \"Name\", " +
$"\" Subject \ ", " +
$"\" Body \ " " +
$"FROM \" { FullNameTable ( TableNameEnum . NotificationTemplate ) } \ " " +
$"WHERE " +
$"\" IsDeleted \ " = 'false' " +
$"AND \" IsActive \ " = 'true' " +
$"AND \" TenantId \ " = '@TENANTID' " +
$"ORDER BY \" Name \ ";" ;
2026-02-24 20:44:16 +00:00
public static string UserValues =
$"SELECT " +
$"\" Id \ " AS \"Key\", " +
$"\" UserName \ " AS \"Name\" " +
$"FROM \" AbpUsers \ "" +
$"ORDER BY \" Name \ "" ;
public static string BranchValues =
$"SELECT \" Id \ " AS \"Key\", " +
$"\" Name \ " AS \"Name\" " +
$"FROM \" { defaultDomain } \ ".\"dbo\".\"{FullNameTable(TableNameEnum.Branch)}\" " +
$"WHERE " +
$"\" TenantId \ " = '@TENANTID' " + // 🔹 Bu form doğru — Replace hedefi bu.
$"AND \" IsDeleted \ " = 'false' " +
$"AND \" Id \ " IN ( " +
$"SELECT \" BranchId \ " " +
$"FROM \" { FullNameTable ( TableNameEnum . BranchUsers ) } \ " " +
$"WHERE \" UserId \ " = '@USERID' " + // 🔹 Bu da doğru.
$") " +
$"ORDER BY \" Name \ ";" ;
public static string PermissionNameValues =
$"SELECT \" Name \ " AS \"Key\", " +
$"CONCAT(\" Name \ ", ' (', \"DisplayName\", ')') AS \"Name\" " +
$"FROM \" AbpPermissions \ " " +
$"WHERE \" IsEnabled \ " = 'true' " +
$"ORDER BY \" Name \ ";" ;
public static string PermissionGroupValues =
$"SELECT \" Name \ " AS \"Key\", " +
$"\" DisplayName \ " AS \"Name\" " +
$"FROM \" AbpPermissionGroups \ " " +
$"ORDER BY \" Name \ ";" ;
2026-08-31 14:17:50 +00:00
public static string ModuleValues =
2026-03-17 19:56:34 +00:00
$"SELECT " +
$"\" Id \ " AS \"Key\", " +
$"\" Name \ " AS \"Name\" " +
2026-08-31 14:17:50 +00:00
$"FROM \" { TableNameResolver . GetFullTableName ( nameof ( TableNameEnum . Module ) ) } \ " " +
2026-03-17 19:56:34 +00:00
$"ORDER BY \" Name \ ";" ;
2026-04-30 13:11:05 +00:00
public static string ProductValues =
$"SELECT " +
2026-07-07 13:41:07 +00:00
$"\" { FullNameTable ( TableNameEnum . Product ) } \ ".\"Id\" AS \"Key\", " +
$"\" { FullNameTable ( TableNameEnum . LanguageText ) } \ ".\"Value\" AS \"Name\" " +
$"FROM \" { FullNameTable ( TableNameEnum . Product ) } \ " " +
$"LEFT OUTER JOIN \" { FullNameTable ( TableNameEnum . LanguageText ) } \ " " +
$"ON \" { FullNameTable ( TableNameEnum . Product ) } \ ".\"Name\" = \"{FullNameTable(TableNameEnum.LanguageText)}\".\"Key\" " +
$"WHERE \" { FullNameTable ( TableNameEnum . Product ) } \ ".\"IsDeleted\" = 'false' " +
2026-07-14 20:25:04 +00:00
$"AND \" { FullNameTable ( TableNameEnum . LanguageText ) } \ ".\"CultureName\" = 'tr' " +
2026-07-07 13:41:07 +00:00
$"ORDER BY \" { FullNameTable ( TableNameEnum . LanguageText ) } \ ".\"Value\";" ;
2026-04-30 13:11:05 +00:00
2026-02-24 20:44:16 +00:00
public static string MenuCodeValues =
$"SELECT " +
$"\" Code \ " AS \"Key\", " +
$"\" DisplayName \ " AS \"Name\" " +
$"FROM \" { TableNameResolver . GetFullTableName ( nameof ( TableNameEnum . Menu ) ) } \ " " +
2026-05-04 12:14:16 +00:00
$"WHERE \" IsDisabled \ " = 'false' " +
2026-02-24 20:44:16 +00:00
$"ORDER BY \" ParentCode \ ", \"Order\";" ;
public static string OrganizationUnitSalesTeamValues =
$"SELECT " +
$"\" Code \ " AS \"Key\", " +
$"\" DisplayName \ " AS \"Name\" " +
$"FROM \" AbpOrganizationUnits \ "" +
$"WHERE \" Code \ " LIKE '00001%' " +
$"ORDER BY \" DisplayName \ "" ;
public static string RouteKeyValues =
$ @ "SELECT
"" Path "" AS "" Key "" ,
"" Path "" AS "" Name ""
FROM "" { FullNameTable ( TableNameEnum . Route ) } ""
GROUP BY "" Path ""
UNION
SELECT
' / admin / list / ' + "" ListFormCode "" AS "" Key "" ,
' / admin / list / ' + "" ListFormCode "" AS "" Name ""
FROM "" { FullNameTable ( TableNameEnum . ListForm ) } ""
GROUP BY "" ListFormCode "" ; ";
2026-05-04 12:14:16 +00:00
public static string DepartmentValues =
$"SELECT " +
$"\" Id \ " AS \"Key\", " +
$"\" Name \ " AS \"Name\" " +
$"FROM \" { TableNameResolver . GetFullTableName ( nameof ( TableNameEnum . Department ) ) } \ " " +
2026-05-04 14:35:18 +00:00
$"WHERE \" IsDeleted \ " = 'false' " +
2026-05-04 12:14:16 +00:00
$"ORDER BY \" Name \ ";" ;
2026-09-29 11:46:39 +00:00
// Lookup sorgusu ekranı n tenant filtresinden geçmez; kiracı kı rı lı mı token ile sorguda yazı lı r.
public static string TenantBranchValues =
$"SELECT " +
$"\" Id \ " AS \"Key\", " +
$"\" Name \ " AS \"Name\" " +
$"FROM \" { TableNameResolver . GetFullTableName ( nameof ( TableNameEnum . Branch ) ) } \ " " +
$"WHERE " +
$"\" TenantId \ " = '{DefaultValues.TenantId}' " +
$"AND \" IsDeleted \ " = 'false' " +
$"ORDER BY \" Name \ ";" ;
public static string BranchDepartmentValues =
$"SELECT " +
$"\" Id \ " AS \"Key\", " +
$"\" Name \ " AS \"Name\" " +
$"FROM \" { TableNameResolver . GetFullTableName ( nameof ( TableNameEnum . Department ) ) } \ " " +
$"WHERE " +
$"(\" BranchId \ " = @param0 OR @param0 IS NULL) " +
$"AND \" IsDeleted \ " = 'false' " +
$"ORDER BY \" Name \ ";" ;
2026-05-04 12:14:16 +00:00
public static string JobPositionValues =
$"SELECT " +
$"\" Id \ " AS \"Key\", " +
$"\" Name \ " AS \"Name\" " +
$"FROM \" { TableNameResolver . GetFullTableName ( nameof ( TableNameEnum . JobPosition ) ) } \ " " +
$"WHERE " +
2026-06-27 18:38:36 +00:00
$"(\" DepartmentId \ " = @param0 OR @param0 IS NULL) " +
2026-05-04 12:14:16 +00:00
$"AND \" IsDeleted \ " = 'false' " +
2026-05-06 08:53:11 +00:00
$"ORDER BY \" Name \ ";" ;
2026-06-27 18:38:36 +00:00
public static string JobPositionFullValues =
$";WITH \" DepartmentTree \ " AS " +
$"( " +
$"SELECT \" Id \ ", \"ParentId\" " +
$"FROM \" { TableNameResolver . GetFullTableName ( nameof ( TableNameEnum . Department ) ) } \ " " +
$"WHERE \" Id \ " = @param0 " +
$"OR @param0 IS NULL " +
$"UNION ALL " +
$"SELECT d.\" Id \ ", d.\"ParentId\" " +
$"FROM \" { TableNameResolver . GetFullTableName ( nameof ( TableNameEnum . Department ) ) } \ " d " +
$"INNER JOIN \" DepartmentTree \ " dt " +
$"ON d.\" Id \ " = dt.\"ParentId\" " +
$") " +
$"SELECT " +
$"jp.\" Id \ " AS \"Key\", " +
$"jp.\" Name \ " AS \"Name\" " +
$"FROM \" { TableNameResolver . GetFullTableName ( nameof ( TableNameEnum . JobPosition ) ) } \ " jp " +
$"WHERE " +
$"jp.\" IsDeleted \ " = 'false' " +
$"AND " +
$"( " +
$"jp.\" DepartmentId \ " IN (SELECT \"Id\" FROM \"DepartmentTree\") " +
$"OR jp.\" ParentId \ " IS NULL " +
$") " +
$"ORDER BY jp.\" Name \ ";" ;
2026-07-07 21:00:35 +00:00
2026-05-06 08:53:11 +00:00
public static string SurveyQuestionValues =
$"SELECT " +
$"\" Id \ " AS \"Key\", " +
$"\" QuestionText \ " AS \"Name\" " +
$"FROM \" { TableNameResolver . GetFullTableName ( nameof ( TableNameEnum . SurveyQuestion ) ) } \ " " +
$"WHERE \" IsDeleted \ " = 'false' " +
$"ORDER BY \" QuestionText \ ";" ;
2026-06-23 17:30:19 +00:00
public static string TechnicalSkillsValues =
$"SELECT " +
$"\" Name \ " AS \"Key\", " +
$"\" Name \ " AS \"Name\" " +
$"FROM \" { FullNameTable ( TableNameEnum . Skill ) } \ " " +
2026-09-29 14:18:47 +00:00
$"WHERE \" TenantId \ " = '{DefaultValues.TenantId}' " +
$"AND \" IsDeleted \ " = 'false' " +
$"AND \" SkillTypeId \ " IN (SELECT \"Id\" FROM \"{FullNameTable(TableNameEnum.SkillType)}\" WHERE \"TenantId\" = '{DefaultValues.TenantId}' AND \"Name\"='Technical Skills' ) " +
2026-06-23 17:30:19 +00:00
$"ORDER BY \" Name \ "" ;
2026-08-11 10:00:43 +00:00
public static string NotificationIdentityValues =
$"SELECT " +
$"\" Id \ " AS \"Key\", " +
$"\" Name \ " AS \"Name\" " +
$"FROM \" AbpRoles \ "" +
$"UNION ALL " +
$"SELECT " +
$"\" Id \ " AS \"Key\", " +
$"\" UserName \ " AS \"Name\" " +
$"FROM \" AbpUsers \ "" +
$"UNION ALL " +
$"SELECT " +
$"\" Id \ " AS \"Key\", " +
$"\" DisplayName \ " AS \"Name\" " +
$"FROM \" AbpOrganizationUnits \ "" +
$"ORDER BY \" Name \ "" ;
2026-02-24 20:44:16 +00:00
}