using System; using System.Collections.Generic; using System.Data; using System.Linq; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Logic.Feljegyzes; using Kreta.Core; using Kreta.Core.ConnectionType; using Kreta.DataAccessManual; using Kreta.DataAccessManual.Util; using Kreta.Enums; using Kreta.Enums.ManualEnums; namespace Kreta.BusinessLogic.Helpers { public class FeljegyzesekHelper : LogicBase { public FeljegyzesekHelper(IConnectionType connectionType) : base(connectionType) { } public DataSet FeljegyzesekKeresese(FeljegyzesekKereseseCO feljegyzesekKereseseCo) { var result = Dal.CustomConnection.Run(ConnectionType, h => { List szervezetIdList = null; if (feljegyzesekKereseseCo.SzervezetId.IsEntityId()) { szervezetIdList = h.SzervezetDal(GridParameters).GetLathatoSzervezetek(IntezmenyId, TanevId, feljegyzesekKereseseCo.SzervezetId.Value, (int)SzervezetAdatokHalmazaEnum.SzervezetEsAlSzervezetek); } var pco = feljegyzesekKereseseCo.ToPco(TanevId, szervezetIdList); // NOTE: több felület is használja ugyanazt a lekérdezést, viszont az elektronikus üzenetek listája felületen le lett szedve a Fel.Kat. és a Fel.hely // szűrő, ezért a default FeladatKategoriaId-t ebben az esetben ki kell ütni if (feljegyzesekKereseseCo.TipusId == (int)EsemenyTipusEnum.ElektronikusUzenet) { pco.FeladatKategoriaId = null; } var dataSet = h.Feljegyzes(GridParameters).FeljegyzesekKereses(pco, IntezmenyId); return dataSet; }); return result; } public List GetFeljegyzesekCoList(FeljegyzesekKereseseCO feljegyzesekKereseseCo) { var dataSet = FeljegyzesekKeresese(feljegyzesekKereseseCo); var result = new List(); foreach (DataRow dataRow in dataSet.Tables[0].Rows) { var item = new FeljegyzesekItemCo(dataRow); result.Add(item); } return result; } public DataSet FaliujsagKeresese(FeljegyzesekKereseseCO feljegyzesekKereseseCo) { var result = Dal.CustomConnection.Run(ConnectionType, h => h.Feljegyzes(GridParameters).FaliujsagKereses(feljegyzesekKereseseCo.ToPco(TanevId))); return result; } public DataTable GetFaliujsagonMegjelenoBejegyzesek(DateTime? date, OktNevelesiKategoriaEnum? feladatKategoria, int? startindex = null, int? count = null) { var result = Dal.CustomConnection.Run(ConnectionType, h => h.Feljegyzes(GridParameters).GetFaliujsagonMegjelenoBejegyzesek(FelhasznaloId, date, feladatKategoria, startindex, count)); return result; } public FeljegyzesekCO GetFeljegyzesById(int feljegyzesId, int? tanuloId = null, int? osztalyId = null, string osztalyNev = null) => Dal.CustomConnection.Run(ConnectionType, h => { var entity = h.Feljegyzes().Get(feljegyzesId); var co = new FeljegyzesekCO { ID = entity.ID, Datum = entity.EsemenyDatuma, Tartalom = entity.Tartalom, Tipus = entity.Tipus, TipusNev = entity.Tipus.GetDisplayName(TanevId), Megjegyzes = entity.Megjegyzes, TanarId = entity.FeljegyzoId, Cim = entity.Targy, FeljegyzesRogzitesenekDatuma = entity.RogzitesDatuma, }; var isRendszeruzenetNev = entity.FeljegyzoId.IsEntityId() && !h.Alkalmazott().IsAlkalmazott(entity.FeljegyzoId, TanevId); co.TanarNev = isRendszeruzenetNev ? Constants.SpecialUserName.Rendszeruzenet : entity.Feljegyzo.NyomtatasiNev; if (tanuloId.IsEntityId()) { var tanuloEntity = h.Tanulo().Get(tanuloId.Value); co.TanuloId = tanuloEntity.ID; co.TanuloNev = tanuloEntity.NyomtatasiNev; } var tanuloOsztalyaId = osztalyId.IsEntityId() ? osztalyId : entity.RogziteskoriOsztalyId; if (tanuloOsztalyaId.IsEntityId()) { var osztalyCsoportEntity = h.OsztalyCsoport().Get(tanuloOsztalyaId.Value); co.OsztalyId = osztalyCsoportEntity.ID; co.OsztalyNev = osztalyCsoportEntity.Nev; } if (!string.IsNullOrWhiteSpace(osztalyNev) && string.IsNullOrWhiteSpace(co.OsztalyNev)) { co.OsztalyNev = osztalyNev; } return co; }); public QuadrupleList GetLegutobbiFeljegyzesek() { return Dal.CustomConnection.Run(ConnectionType, dalHandler => { var feljegyzesQuadrupleList = new QuadrupleList(); var dataTable = dalHandler.Feljegyzes().GetLegutobbiFeljegyzesek(FelhasznaloId).Tables[0]; new FeljegyzesLogic(new DalHandlerConnectionType(ConnectionType, dalHandler)).RemoveHiddenRowsFromFeljegyzesDataSet(dataTable, "Tipus", FelhasznaloId); foreach (var row in dataTable.AsEnumerable()) { feljegyzesQuadrupleList.Add(SDAConvert.ToString(row["Tipus_DNAME"]), SDAConvert.ToString(row["Tanar"]), SDAConvert.ToDateTime(row["EsemenyDatuma"])?.ToString("MMMM d."), SDAConvert.ToInt32(row["Id"]).ToString()); } return feljegyzesQuadrupleList; }); } internal TanoraFeljegyzeseiCO GetTanoraFeljegyzesei(int? tanoraId) => Dal.CustomConnection.Run(ConnectionType, h => { if (!tanoraId.HasValue || tanoraId < 1) { return new TanoraFeljegyzeseiCO(); } var entity = h.TanitasiOra().Get(tanoraId.Value); var result = new TanoraFeljegyzeseiCO(); foreach (var item in entity.TanuloEsemeny.Where(a => !a.Torolt)) { var tanulo = item.Tanulo.FirstOrDefault(a => !a.Torolt); if (tanulo != null) { result.Add(new TanoraFeljegyzeseCO() { FeljegyzesId = item.ID, FeljegyzesTipus = item.Tipus, TanuloId = tanulo.ID }); } } return result; }); //public MemoryStream GetFeljegyzesExcelExport(FeljegyzesekKereseseCO searchModel) //{ // return Dal.CustomConnection.Run(ConnectionType, dalHandler => // { // DataSet dataSet = dalHandler.Feljegyzes().GetFeljegyzesekExcelExport(searchModel.ToPco()); // DataTable dataTable = dataSet.Tables[0]; // ExportLogic.TryCreateHeaderIfNotExist(dataTable); // MemoryStream memoryStream = FeljegyzesLogic.GetExport(dataTable); // return memoryStream; // }); //} //public MemoryStream GetFaliujsagExcelExport(FeljegyzesekKereseseCO searchModel) //{ // return Dal.CustomConnection.Run(ConnectionType, dalHandler => // { // DataSet dataSet = dalHandler.Feljegyzes().GetFaliujsagExcelExport(searchModel.ToPco()); // DataTable dataTable = dataSet.Tables[0]; // ExportLogic.TryCreateHeaderIfNotExist(dataTable); // MemoryStream memoryStream = FeljegyzesLogic.GetExport(dataTable); // return memoryStream; // }); //} public List GetFaliujsagFeljegyzesCoList(FeljegyzesekKereseseCO searchModel) { var coList = new List(); var ds = FaliujsagKeresese(searchModel); foreach (var row in ds.Tables[0].AsEnumerable()) { coList.Add(new FeljegyzesekCO(row)); } return coList; } } }