sozsoft-platform/api/src/Sozsoft.Platform.Application.Contracts/LookUpQueryValues.cs
2026-09-29 17:18:47 +03:00

363 lines
14 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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}\";";
}
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\" " +
$"ORDER BY \"Name\"";
}
else
{
return $"SELECT * FROM (" +
// $"SELECT NULL AS \"Key\", 'Host' AS \"Name\" " +
// $"UNION ALL " +
$"SELECT " +
$"\"AbpTenants\".\"Id\" AS \"Key\", " +
$"\"AbpTenants\".\"Name\" AS \"Name\" " +
$"FROM \"AbpTenants\"" +
$") AS \"List\" " +
$"ORDER BY \"Name\"";
}
}
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 " +
$"\"{FullNameTable(TableNameEnum.LanguageText)}\".\"CultureName\" = 'tr' " +
$"ORDER BY \"{FullNameTable(TableNameEnum.LanguageKey)}\".\"Key\";";
public static string CustomComponentValues =
$"SELECT " +
$"\"Name\" AS \"Key\", " +
$"\"Name\" AS \"Name\" " +
$"FROM \"{FullNameTable(TableNameEnum.CustomComponent)}\" " +
$"WHERE " +
$"\"IsActive\" = 'true' " +
$"AND \"IsDeleted\" = 'false' " +
$"ORDER BY \"Name\";";
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\", " +
$"\"Township\" AS \"Name\", " +
$"\"PostalCode\" AS \"Group\" " +
$"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' " +
$"GROUP BY \"Township\", \"PostalCode\" " +
$"ORDER BY \"Township\";";
public static string RoleValues =
$"SELECT " +
$"\"Id\" AS \"Key\", " +
$"\"Name\" AS \"Name\" " +
$"FROM \"AbpRoles\"" +
$"ORDER BY \"Name\"";
/// <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\";";
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\";";
public static string ModuleValues =
$"SELECT " +
$"\"Id\" AS \"Key\", " +
$"\"Name\" AS \"Name\" " +
$"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Module))}\" " +
$"ORDER BY \"Name\";";
public static string ProductValues =
$"SELECT " +
$"\"{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' " +
$"AND \"{FullNameTable(TableNameEnum.LanguageText)}\".\"CultureName\" = 'tr' " +
$"ORDER BY \"{FullNameTable(TableNameEnum.LanguageText)}\".\"Value\";";
public static string MenuCodeValues =
$"SELECT " +
$"\"Code\" AS \"Key\", " +
$"\"DisplayName\" AS \"Name\" " +
$"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Menu))}\" " +
$"WHERE \"IsDisabled\" = 'false' " +
$"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"";";
public static string DepartmentValues =
$"SELECT " +
$"\"Id\" AS \"Key\", " +
$"\"Name\" AS \"Name\" " +
$"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Department))}\" " +
$"WHERE \"IsDeleted\" = 'false' " +
$"ORDER BY \"Name\";";
// 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\";";
public static string JobPositionValues =
$"SELECT " +
$"\"Id\" AS \"Key\", " +
$"\"Name\" AS \"Name\" " +
$"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.JobPosition))}\" " +
$"WHERE " +
$"(\"DepartmentId\" = @param0 OR @param0 IS NULL) " +
$"AND \"IsDeleted\" = 'false' " +
$"ORDER BY \"Name\";";
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\";";
public static string SurveyQuestionValues =
$"SELECT " +
$"\"Id\" AS \"Key\", " +
$"\"QuestionText\" AS \"Name\" " +
$"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.SurveyQuestion))}\" " +
$"WHERE \"IsDeleted\" = 'false' " +
$"ORDER BY \"QuestionText\";";
public static string TechnicalSkillsValues =
$"SELECT " +
$"\"Name\" AS \"Key\", " +
$"\"Name\" AS \"Name\" " +
$"FROM \"{FullNameTable(TableNameEnum.Skill)}\" " +
$"WHERE \"TenantId\" = '{DefaultValues.TenantId}' " +
$"AND \"IsDeleted\" = 'false' " +
$"AND \"SkillTypeId\" IN (SELECT \"Id\" FROM \"{FullNameTable(TableNameEnum.SkillType)}\" WHERE \"TenantId\" = '{DefaultValues.TenantId}' AND \"Name\"='Technical Skills' ) " +
$"ORDER BY \"Name\"";
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\"";
}