363 lines
14 KiB
C#
363 lines
14 KiB
C#
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\"";
|
||
}
|