This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,292 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework.Caching;
using Kreta.Framework.Caching.DictionaryItemTables;
using Kreta.Framework.Util;
using Kreta.Resources;
namespace Kreta.BusinessLogic.Classes
{
public static class EnumExtensions
{
public static int ToInt32(this Enum enumValue)
{
var result = Convert.ToInt32(enumValue);
return result;
}
public static string GetDisplayName(this bool value, BooleanDisplayFormatEnum booleanDisplayFormatEnum = BooleanDisplayFormatEnum.Teljes)
{
string result;
switch (booleanDisplayFormatEnum)
{
case BooleanDisplayFormatEnum.Teljes:
result = value ? CommonResource.Igen : CommonResource.Nem;
break;
case BooleanDisplayFormatEnum.IN:
result = value ? "I" : "N";
break;
case BooleanDisplayFormatEnum.TF:
result = value ? "T" : "F";
break;
default:
throw new ArgumentException();
}
return result;
}
public static string GetDisplayName(this bool? value, string defaultValue = "", BooleanDisplayFormatEnum booleanFormat = BooleanDisplayFormatEnum.Teljes)
{
var result = defaultValue;
if (value.HasValue)
{
result = GetDisplayName(value.Value, booleanFormat);
}
return result;
}
public static string GetDisplayName<T>(this int? enumIntValue, int tanevId, string defaultValue = "") where T : Enum
{
var result = defaultValue;
if (enumIntValue.HasValue)
{
result = enumIntValue.Value.GetDisplayName<T>(tanevId);
}
return result;
}
public static string GetDisplayName<T>(this int enumIntValue, int tanevId) where T : Enum
{
string result;
var enumType = typeof(T);
//NOTE: Ha ManualEnums-ról van szó!
if (enumType.AssemblyQualifiedName.Contains("Kreta.Enums.ManualEnums"))
{
var enumValue = ((T[])Enum.GetValues(enumType)).Single(x => x.ToInt32() == enumIntValue);
result = enumValue.GetDisplayName(tanevId);
return result;
}
//NOTE: Ha nem ManualEnums-ról van szó, akkor GeneratedEnums(csak és kizárólag ManualEnums-ra vagy GeneratedEnums-ra lehet meghívni a GetDisplayName-et!).
// Ebben az esetben a szöveget kivétel nélkül a DictionaryTableCache-ből szedjük, így az Environment SQL-ek miatt is jó szöveg jön le a db-ből!
result = enumIntValue.GetItemNameFromCache(tanevId);
return result;
}
public static string GetDisplayName<T>(this T enumValue, int tanevId) where T : Enum
{
var enumType = typeof(T);
//NOTE: Ha ManualEnums-ról van szó!
if (enumType.AssemblyQualifiedName.Contains("Kreta.Enums.ManualEnums"))
{
return FrameworkEnumExtensions.GetManualEnumNameFromCache<T>(enumValue.ToInt32());
}
//NOTE: Ha nem ManualEnums-ról van szó, akkor GeneratedEnums(csak és kizárólag ManualEnums-ra vagy GeneratedEnums-ra lehet meghívni a GetDisplayName-et!).
// Ebben az esetben a szöveget kivétel nélkül a DictionaryTableCache-ből szedjük, így az Environment SQL-ek miatt is jó szöveg jön le a db-ből!
var enumIntValue = enumValue.ToInt32();
var result = enumIntValue.GetItemNameFromCache(tanevId);
return result;
}
public static int? GetIdByDisplayName(string adatszotarNeve, GeneratedAdatszotarTipusEnum adatszotarTipus, int tanevId)
{
if (string.IsNullOrWhiteSpace(adatszotarNeve))
{
return null;
}
int? result = ((int)adatszotarTipus).GetItemsByType(tanevId).Single(x => x.Name == adatszotarNeve).Id;
return result;
}
public static Dictionary<string, string> EnumToDictionary<T>(int tanevId, bool emptyItem = false, bool isValueInt = true, List<string> removeValueList = null) where T : Enum
{
var enumType = typeof(T);
if (enumType.BaseType != typeof(Enum))
{
throw new ArgumentException("T must be of type System.Enum");
}
IEnumerable<T> values = (T[])Enum.GetValues(typeof(T));
var itemList = values.ToDictionary(
x => isValueInt ? x.ToInt32().ToString() : Enum.GetName(typeof(T), x),
x => x.GetDisplayName(tanevId));
var result = removeValueList != null ? itemList.Where(x => !removeValueList.Contains(x.Key)).ToDictionary(x => x.Key, x => x.Value) : itemList;
if (emptyItem)
{
var list = new Dictionary<string, string>
{
{ "", CommonResource.KeremValasszon }
};
result = list.Union(result).ToDictionary(k => k.Key, v => v.Value);
}
return result;
}
public static IList<string> GetEnumDisplayNameList<T>(int tanevId, List<string> removeValueList = null) where T : Enum
{
var result = EnumToDictionary<T>(tanevId, removeValueList: removeValueList).Values.OrderBy(o => o).ToList();
return result;
}
public static IDictionary<int, string> GetAdatszotarDictElemekForTipus(int tanevId, GeneratedAdatszotarTipusEnum adatszotarTipus, List<int> removeIdList = null, bool visibleOnly = false)
{
if (removeIdList == null)
{
removeIdList = new List<int>();
}
return ((int)adatszotarTipus).GetItemsByType(tanevId, visibleOnly).Where(x => !removeIdList.Contains(x.Id)).ToDictionary(x => x.Id, x => x.Name);
}
public static IList<string> GetAdatszotarElemekForTipus(int tanevId, GeneratedAdatszotarTipusEnum adatszotarTipus, List<int> removeIdList = null)
{
if (removeIdList == null)
{
removeIdList = new List<int>();
}
return GetAdatszotarDictElemekForTipus(tanevId, adatszotarTipus, removeIdList).Select(x => x.Value).ToList();
}
public static List<AllampolgarsagDictionaryItem> GetAllampolgarsagDictionaryItems(int tanevId)
{
var result = GetExtendedDictionaryItems<AllampolgarsagDictionaryItem>(tanevId, (int)GeneratedAdatszotarTipusEnum.Allampolgarsag);
return result;
}
public static List<MunkakorTipusDictionaryItem> GetMunkakorTipusDictionaryItems(int tanevId)
{
var result = GetExtendedDictionaryItems<MunkakorTipusDictionaryItem>(tanevId, (int)GeneratedAdatszotarTipusEnum.MunkakorTipus);
return result;
}
public static List<OrszagTipusDictionaryItem> GetOrszagTipusDictionaryItems(int tanevId)
{
var result = GetExtendedDictionaryItems<OrszagTipusDictionaryItem>(tanevId, (int)GeneratedAdatszotarTipusEnum.OrszagTipus);
return result;
}
public static List<CsoportTipusDictionaryItem> GetCsoportTipusDictionaryItems(int tanevId)
{
var result = GetExtendedDictionaryItems<CsoportTipusDictionaryItem>(tanevId, (int)GeneratedAdatszotarTipusEnum.CsoportTipus);
return result;
}
public static List<OktatasiNevelesiFeladatDictionaryItem> GetOktatasiNevelesiFeladatDictionaryItems(int tanevId)
{
var result = GetExtendedDictionaryItems<OktatasiNevelesiFeladatDictionaryItem>(tanevId, (int)GeneratedAdatszotarTipusEnum.OktatasiNevelesiFeladat);
return result;
}
public static List<EvfolyamTipusDictionaryItem> GetEvfolyamTipusDictionaryItems(int tanevId, bool? isOsszevont = null)
{
var result = GetExtendedDictionaryItems<EvfolyamTipusDictionaryItem>(tanevId, (int)GeneratedAdatszotarTipusEnum.EvfolyamTipus);
return isOsszevont == null ?
result :
result.Where(x => x.IsOsszevont == isOsszevont).ToList();
}
public static List<NapTipusDictionaryItem> GetNapTipusDictionaryItems(int tanevId)
{
var result = GetExtendedDictionaryItems<NapTipusDictionaryItem>(tanevId, (int)GeneratedAdatszotarTipusEnum.NapTipus);
return result;
}
public static List<SorolasOkaTipusDictionaryItem> GetSorolasOkaTipusDictionaryItems(int tanevId)
{
var result = GetExtendedDictionaryItems<SorolasOkaTipusDictionaryItem>(tanevId, (int)GeneratedAdatszotarTipusEnum.SorolasOkaTipus);
return result;
}
public static List<ErtekelesModDictionaryItem> GetErtekelesModDictionaryItems(int tanevId)
{
var result = GetExtendedDictionaryItems<ErtekelesModDictionaryItem>(tanevId, (int)GeneratedAdatszotarTipusEnum.ErtekelesMod);
return result;
}
public static List<ErtekelesTipusDictionaryItem> GetErtekelesTipusDictionaryItems(int tanevId, bool? isEgyszerAdhato = null)
{
var result = GetExtendedDictionaryItems<ErtekelesTipusDictionaryItem>(tanevId, (int)GeneratedAdatszotarTipusEnum.ErtekelesTipus);
return isEgyszerAdhato == null ?
result :
result.Where(x => x.IsEgyszerAdhato == isEgyszerAdhato).ToList();
}
public static List<EsemenyTipusDictionaryItem> GetEsemenyTipusDictionaryItems(int tanevId)
{
var result = GetExtendedDictionaryItems<EsemenyTipusDictionaryItem>(tanevId, (int)GeneratedAdatszotarTipusEnum.EsemenyTipus);
return result;
}
public static List<SzakkepesitesTipusDictionaryItem> GetSzakkepesitesTipusDictionaryItems(int tanevId)
{
var result = GetExtendedDictionaryItems<SzakkepesitesTipusDictionaryItem>(tanevId, (int)GeneratedAdatszotarTipusEnum.SzakkepesitesTipus);
return result;
}
public static List<OraTulajdonsagTipusDictionaryItem> GetOraTulajdonsagTipusDictionaryItems(int tanevId)
{
var result = GetExtendedDictionaryItems<OraTulajdonsagTipusDictionaryItem>(tanevId, (int)GeneratedAdatszotarTipusEnum.OraTulajdonsagTipus);
return result;
}
public static List<DokumentumKulcsszoTipusDictionaryItem> GetDokumentumKulcsszoTipusDictionaryItems(int tanevId)
{
var result = GetExtendedDictionaryItems<DokumentumKulcsszoTipusDictionaryItem>(tanevId, (int)GeneratedAdatszotarTipusEnum.DokumentumKulcsszoTipus);
return result;
}
public static List<OktNevelesiKategoriaDictionaryItem> GetOktNevelesiKategoriaDictionaryItems(int tanevId)
{
var result = GetExtendedDictionaryItems<OktNevelesiKategoriaDictionaryItem>(tanevId, (int)GeneratedAdatszotarTipusEnum.OktNevelesiKategoria);
return result;
}
public static List<TavolletTipusDictionaryItem> GetTavolletTipusDictionaryItems(int tanevId)
{
var result = GetExtendedDictionaryItems<TavolletTipusDictionaryItem>(tanevId, (int)GeneratedAdatszotarTipusEnum.TavolletTipus);
return result;
}
public static List<AgazatUjSzktTipusDictionaryItem> GetAgazatUjSzktTipusDictionaryItems(int tanevId)
{
var result = GetExtendedDictionaryItems<AgazatUjSzktTipusDictionaryItem>(tanevId, (int)GeneratedAdatszotarTipusEnum.AgazatUjSzktTipus);
return result;
}
public static List<SzakmaTipusDictionaryItem> GetSzakmaTipusDictionaryItems(int tanevId)
{
var result = GetExtendedDictionaryItems<SzakmaTipusDictionaryItem>(tanevId, (int)GeneratedAdatszotarTipusEnum.SzakmaTipus);
return result;
}
public static List<AgazatReszSzakmaTipusDictionaryItem> GetAgazatReszSzakmaTipusDictionaryItems(int tanevId)
{
var result = GetExtendedDictionaryItems<AgazatReszSzakmaTipusDictionaryItem>(tanevId, (int)GeneratedAdatszotarTipusEnum.AgazatReszSzakmaTipus);
return result;
}
private static List<T> GetExtendedDictionaryItems<T>(int tanevId, int generatedAdatszotarTipusEnumIntValue) where T : DictionaryItem
{
var dictionaryItems = generatedAdatszotarTipusEnumIntValue.GetItemsByType(tanevId);
var tDictionaryItems = new List<T>();
foreach (var dictionaryItem in dictionaryItems)
{
tDictionaryItems.Add((T)Activator.CreateInstance(typeof(T), dictionaryItem));
}
return tDictionaryItems;
}
}
}