64 lines
3.2 KiB
C#
64 lines
3.2 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Kreta.Ellenorzo.BL.VN.Adatszotar;
|
|
using Kreta.Ellenorzo.Dao.VN.Tantargy;
|
|
using Kreta.Ellenorzo.Domain.VN.Adatszotar;
|
|
using Kreta.Ellenorzo.Domain.VN.Logic;
|
|
using Kreta.Ellenorzo.Domain.VN.Tantargy;
|
|
using Kreta.Ellenorzo.Enums.VN;
|
|
using Kreta.Enums;
|
|
|
|
namespace Kreta.Ellenorzo.BL.VN.Logic
|
|
{
|
|
/// <summary>
|
|
/// Author: Érsek Zalán Created On: 2019.09
|
|
/// </summary>
|
|
internal static class TantargyLogic
|
|
{
|
|
internal static readonly TantargyResponse MagatartasTantargy = new TantargyResponse(nameof(MagatartasSzorgalomTantargy.Magatartas),
|
|
EnumLogic.GetDisplayNameAttribute(MagatartasSzorgalomTantargy.Magatartas),
|
|
new Adatszotar<TargyKategoriaTipusEnum>(nameof(MagatartasSzorgalomTantargy.Magatartas),
|
|
EnumLogic.GetDisplayNameAttribute(MagatartasSzorgalomTantargy.Magatartas)), 0)
|
|
{
|
|
TantargyInTtf = false
|
|
};
|
|
|
|
internal static readonly TantargyResponse SzorgalomTantargy = new TantargyResponse(nameof(MagatartasSzorgalomTantargy.Szorgalom),
|
|
EnumLogic.GetDisplayNameAttribute(MagatartasSzorgalomTantargy.Szorgalom),
|
|
new Adatszotar<TargyKategoriaTipusEnum>(nameof(MagatartasSzorgalomTantargy.Szorgalom),
|
|
EnumLogic.GetDisplayNameAttribute(MagatartasSzorgalomTantargy.Szorgalom)), 1)
|
|
{
|
|
TantargyInTtf = false
|
|
};
|
|
|
|
internal static void RemoveOsztalyfonokiKategoriasTantargyak(List<TanultTantargyDao> tantargyList)
|
|
{
|
|
_ = tantargyList.RemoveAll(x => x.TargykategoriaId == (int)TargyKategoriaTipusEnum.osztalyfonoki_elet_es_palyatervezes && !x.ErtekelesBol);
|
|
}
|
|
|
|
internal static void OrderTantargyList(HashSet<TantargyResponse> tantargyList, int tanevId)
|
|
{
|
|
var targyKategoriaTipusById = AdatszotarSubqueries.GetTipusByIdDictionary((int)GeneratedAdatszotarTipusEnum.TargyKategoriaTipus, tanevId);
|
|
|
|
foreach (var tantargy in tantargyList.Where(x => x.Uid.Id != 0))
|
|
{
|
|
tantargy.TantargyKategoriaOrderIndex = targyKategoriaTipusById[tantargy.Kategoria.Uid.Id].Order ?? 10000;
|
|
tantargy.FotargyTantargyKategoriaOrderIndex = tantargy.FotargyKategoriaId.HasValue ? targyKategoriaTipusById[tantargy.FotargyKategoriaId.Value].Order ?? 10000 : (int?)null;
|
|
}
|
|
|
|
int index = 2;
|
|
foreach (TantargyResponse tantargy in tantargyList.Where(x => x.Uid.Id != 0) // A Magatartás és Szorgalom Id-ja 0, ezeket nem rendezzük, fix első két helyen vannak.
|
|
.OrderBy(x => x.SorSzam)
|
|
.ThenBy(x => x.IsFotargy ? x.TantargyKategoriaOrderIndex : x.FotargyTantargyKategoriaOrderIndex)
|
|
.ThenBy(x => x.IsFotargy ? x.Nev : x.FotargyNev)
|
|
.ThenBy(x => x.IsFotargy ? 0 : 1)
|
|
.ThenBy(x => x.Nev)
|
|
.ToList())
|
|
{
|
|
tantargy.SortIndex = index;
|
|
++index;
|
|
}
|
|
}
|
|
}
|
|
}
|