using System; using System.Collections.Generic; using System.Data; using System.Linq; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.Helpers; using Kreta.Core; using Kreta.Core.ConnectionType; using Kreta.DataAccessManual; using Kreta.DataAccessManual.Interfaces; using Kreta.DataAccessManual.Util; using Kreta.Enums; using Kreta.KretaServer.SystemSettings; namespace Kreta.BusinessLogic.Logic.Feljegyzes { public class FeljegyzesLogic { private readonly IConnectionType ConnectionType; public FeljegyzesLogic(IConnectionType connectionType) { ConnectionType = connectionType; } /// INFO @DevKornel: Mobil használja public void RemoveHiddenRowsFromFeljegyzesDataSet(DataTable dataTable, string columnHeader, int tanuloId) { Dal.CustomConnection.Run(ConnectionType, h => { bool isVegzosOsztalyTanuloja = GetIsVegzosOsztalyTanuloja(tanuloId, h); for (int i = dataTable.Rows.Count - 1; i >= 0; --i) { int tipusId = SDAConvert.ToInt32(dataTable.Rows[i][columnHeader]); if (tipusId == (int)EsemenyTipusEnum.INegyedevesBizonyitvanybanMegjelenoTantestuletiFeljegyzesHatarozatDicseretFelmentesStb && IsINegyedevesJegyHidden() || tipusId == (int)EsemenyTipusEnum.IINegyedevesBizonyitvanybanMegjelenoTantestuletiFeljegyzesHatarozatDicseretFelmentesStb && IsIiNegyedevesJegyHidden() || tipusId == (int)EsemenyTipusEnum.FeleviBizonyitvanybanMegjelenoTantestuletiFeljegyzesHatarozatDicseretFelmentesStb && IsFeleviJegyHidden() || tipusId == (int)EsemenyTipusEnum.IIINegyedevesBizonyitvanybanMegjelenoTantestuletiFeljegyzesHatarozatDicseretFelmentesStb && IsIiiNegyedevesJegyHidden() || tipusId == (int)EsemenyTipusEnum.IVNegyedevesBizonyitvanybanMegjelenoTantestuletiFeljegyzesHatarozatDicseretFelmentesStb && IsIvNegyedevesJegyHidden(isVegzosOsztalyTanuloja) || tipusId == (int)EsemenyTipusEnum.EvVegiBizonyitvanybanMegjelenoTantestuletiFeljegyzesHatarozatDicseretFelmentesStb && IsEvvegiJegyHidden(isVegzosOsztalyTanuloja) || tipusId == (int)EsemenyTipusEnum.TorzslaponMegjelenoEgyebFeljegyzesVagyHatarozat) { dataTable.Rows.RemoveAt(i); } } }); } // INFO @DevKornél: Mobil használja private bool GetIsVegzosOsztalyTanuloja(int tanuloId, IDalHandler h) { var isVegzosOsztalyTanuloja = false; int? osztalyId = new TanuloHelper(new DalHandlerConnectionType(ConnectionType, h)).GetTanuloAlapkepzesesOsztalyId(tanuloId); if (osztalyId.IsEntityId()) { isVegzosOsztalyTanuloja = new OsztalyCsoportHelper(new DalHandlerConnectionType(ConnectionType, h)).GetIsVegzosOsztalyCsoport(osztalyId.Value); } return isVegzosOsztalyTanuloja; } private bool IsEvvegiJegyHidden(bool isVegzosOsztalyTanuloja) { //NOTE: Ha végzős, akkor a végzős évvégi jegy megjelenítés dátumát vesszük figyelembe, különben az évvégi jegy megjelenítés dátumát! DateTime? megjelenitesDate = isVegzosOsztalyTanuloja ? SystemSettingsManager.GetSystemSettingValue(RendszerBeallitasTipusEnum.Ev_vegi_jegyek_megjelenesenek_datuma_vegzos, ConnectionType.IntezmenyAzonosito, ConnectionType.TanevId) : SystemSettingsManager.GetSystemSettingValue(RendszerBeallitasTipusEnum.Ev_vegi_jegyek_megjelenesenek_datuma, ConnectionType.IntezmenyAzonosito, ConnectionType.TanevId); return megjelenitesDate > DateTime.UtcNow; } private bool IsINegyedevesJegyHidden() { DateTime? megjelenitesDate = SystemSettingsManager.GetSystemSettingValue(RendszerBeallitasTipusEnum.I_Negyedeves_jegyek_megjelenesenek_datuma, ConnectionType.IntezmenyAzonosito, ConnectionType.TanevId); return megjelenitesDate > DateTime.UtcNow; } private bool IsIiNegyedevesJegyHidden() { DateTime? megjelenitesDate = SystemSettingsManager.GetSystemSettingValue(RendszerBeallitasTipusEnum.II_Negyedeves_jegyek_megjelenesenek_datuma, ConnectionType.IntezmenyAzonosito, ConnectionType.TanevId); return megjelenitesDate > DateTime.UtcNow; } private bool IsFeleviJegyHidden() { DateTime? megjelenitesDate = SystemSettingsManager.GetSystemSettingValue(RendszerBeallitasTipusEnum.Felevi_jegyek_megjelenesenek_datuma, ConnectionType.IntezmenyAzonosito, ConnectionType.TanevId); return megjelenitesDate > DateTime.UtcNow; } private bool IsIiiNegyedevesJegyHidden() { DateTime? megjelenitesDate = SystemSettingsManager.GetSystemSettingValue(RendszerBeallitasTipusEnum.III_Negyedeves_jegyek_megjelenesenek_datuma, ConnectionType.IntezmenyAzonosito, ConnectionType.TanevId); return megjelenitesDate > DateTime.UtcNow; } private bool IsIvNegyedevesJegyHidden(bool isVegzosOsztalyTanuloja) { DateTime? megjelenitesDate; DateTime? ivNegyedevesJegyMegjelenitesDate = SystemSettingsManager.GetSystemSettingValue(RendszerBeallitasTipusEnum.IV_Negyedeves_jegyek_megjelenesenek_datuma, ConnectionType.IntezmenyAzonosito, ConnectionType.TanevId); if (isVegzosOsztalyTanuloja) { //NOTE: Ha végzős, akkor a végzős évvégi jegy megjelenítés és a IV. negyedéves jegy megjelenítés dátum közül a korábbit vesszük figyelembe! List megjelenitesDateList = new List { ivNegyedevesJegyMegjelenitesDate, SystemSettingsManager.GetSystemSettingValue(RendszerBeallitasTipusEnum.Ev_vegi_jegyek_megjelenesenek_datuma_vegzos, ConnectionType.IntezmenyAzonosito, ConnectionType.TanevId) }; megjelenitesDate = megjelenitesDateList.OfType().Min(); } else { //NOTE: Ha nem végzős, akkor a IV. negyedéves jegy megjelenítés dátumát vesszük figyelembe! megjelenitesDate = ivNegyedevesJegyMegjelenitesDate; } return megjelenitesDate > DateTime.UtcNow; } } }