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 { /// /// Author: Érsek Zalán Created On: 2019.09 /// internal static class TantargyLogic { internal static readonly TantargyResponse MagatartasTantargy = new TantargyResponse(nameof(MagatartasSzorgalomTantargy.Magatartas), EnumLogic.GetDisplayNameAttribute(MagatartasSzorgalomTantargy.Magatartas), new Adatszotar(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(nameof(MagatartasSzorgalomTantargy.Szorgalom), EnumLogic.GetDisplayNameAttribute(MagatartasSzorgalomTantargy.Szorgalom)), 1) { TantargyInTtf = false }; internal static void RemoveOsztalyfonokiKategoriasTantargyak(List tantargyList) { _ = tantargyList.RemoveAll(x => x.TargykategoriaId == (int)TargyKategoriaTipusEnum.osztalyfonoki_elet_es_palyatervezes && !x.ErtekelesBol); } internal static void OrderTantargyList(HashSet 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; } } } }