105 lines
3.8 KiB
C#
105 lines
3.8 KiB
C#
using System.Collections.Generic;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.Core.Enum;
|
|
using Kreta.Core.Exceptions;
|
|
using Kreta.Enums;
|
|
using Kreta.Naplo.Domain.V3.Adatszotar;
|
|
using Kreta.Naplo.Domain.V3.Common;
|
|
using Kreta.Naplo.Domain.V3.Enum;
|
|
using Kreta.Resources;
|
|
|
|
namespace Kreta.Naplo.BusinessLogic.V3.Enum
|
|
{
|
|
internal static class EnumSubqueries
|
|
{
|
|
internal static List<EnumResponse> GetNaploEnum(DefaultConnectionParameters dcp, EnumRequest request)
|
|
{
|
|
var engedelyezettEnumok = new List<string>()
|
|
{
|
|
"ErtekelesMod",
|
|
"ErtekelesTipus",
|
|
"FeljegyzesTipus",
|
|
"MulasztasTipus",
|
|
"OsztalyzatTipus",
|
|
"IgazolasTipus",
|
|
"CalendarOraTypeEnum",
|
|
"TanoraAllapotaEnum"
|
|
};
|
|
|
|
if (!engedelyezettEnumok.Contains(request.EnumTipus))
|
|
{
|
|
throw new BlException(ErrorResource.NemEngedelyezettVagyNemLetezoEnum, BlExceptionType.ModelValidacio);
|
|
}
|
|
|
|
if (request.EnumTipus.Contains("CalendarOraTypeEnum"))
|
|
{
|
|
return ManualEnumToList<Enums.ManualEnums.CalendarOraTypeEnum>(dcp.TanevId);
|
|
}
|
|
|
|
if (request.EnumTipus.Contains("TanoraAllapotaEnum"))
|
|
{
|
|
return ManualEnumToList<Enums.ManualEnums.TanoraAllapotaEnum>(dcp.TanevId);
|
|
}
|
|
|
|
if (!System.Enum.TryParse(request.EnumTipus == "FeljegyzesTipus" ? "EsemenyTipus" : request.EnumTipus, out GeneratedAdatszotarTipusEnum enumErtek))
|
|
{
|
|
throw new BlException(BlExceptionType.ModelValidacio);
|
|
}
|
|
|
|
var enumList = new List<EnumResponse>();
|
|
|
|
var adatszotar = EnumExtensions.GetAdatszotarDictElemekForTipus(dcp.TanevId, enumErtek, null, true);
|
|
foreach (var adatszotarElem in adatszotar)
|
|
{
|
|
enumList.Add(new EnumResponse
|
|
{
|
|
Id = adatszotarElem.Key,
|
|
Nev = GetEnumNev(enumErtek, adatszotarElem.Key),
|
|
Leiras = adatszotarElem.Value
|
|
});
|
|
}
|
|
|
|
return enumList;
|
|
}
|
|
|
|
private static string GetEnumNev(GeneratedAdatszotarTipusEnum enumErtek, int enumId)
|
|
{
|
|
switch (enumErtek)
|
|
{
|
|
case GeneratedAdatszotarTipusEnum.ErtekelesMod:
|
|
return new Adatszotar<ErtekelesModEnum>(enumId).Uid.Nev;
|
|
case GeneratedAdatszotarTipusEnum.ErtekelesTipus:
|
|
return new Adatszotar<ErtekelesTipusEnum>(enumId).Uid.Nev;
|
|
case GeneratedAdatszotarTipusEnum.EsemenyTipus:
|
|
return new Adatszotar<EsemenyTipusEnum>(enumId).Uid.Nev;
|
|
case GeneratedAdatszotarTipusEnum.MulasztasTipus:
|
|
return new Adatszotar<MulasztasTipusEnum>(enumId).Uid.Nev;
|
|
case GeneratedAdatszotarTipusEnum.OsztalyzatTipus:
|
|
return new Adatszotar<OsztalyzatTipusEnum>(enumId).Uid.Nev;
|
|
case GeneratedAdatszotarTipusEnum.IgazolasTipus:
|
|
return new Adatszotar<IgazolasTipusEnum>(enumId).Uid.Nev;
|
|
}
|
|
|
|
return string.Empty;
|
|
}
|
|
|
|
private static List<EnumResponse> ManualEnumToList<T>(int tanevId) where T : System.Enum
|
|
{
|
|
var enums = new List<EnumResponse>();
|
|
int enumId = 0;
|
|
|
|
foreach (var item in System.Enum.GetValues(typeof(T)))
|
|
{
|
|
enumId = (int)item;
|
|
enums.Add(new EnumResponse
|
|
{
|
|
Id = enumId,
|
|
Nev = item.ToString(),
|
|
Leiras = enumId.GetDisplayName<T>(tanevId)
|
|
});
|
|
}
|
|
|
|
return enums;
|
|
}
|
|
}
|
|
}
|