using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.Classes.ComboBox; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Helpers.SystemSettings; using Kreta.BusinessLogic.Logic; using Kreta.BusinessLogic.Utils; using Kreta.Core; using Kreta.Core.ConnectionType; using Kreta.DataAccessManual; using Kreta.DataAccessManual.DataAccessObjects.Csoport; using Kreta.DataAccessManual.Util; using Kreta.Enums; using Kreta.Enums.ManualEnums; using Kreta.Framework.Entities; using Kreta.Framework.Util; using Kreta.Resources; using OfficeOpenXml; namespace Kreta.BusinessLogic.Helpers { public class OsztalyCsoportHelper : LogicBase { public OsztalyCsoportHelper(IConnectionType connectionType) : base(connectionType) { } public bool IsOsztaly(int osztcsopId) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); return dal.IsOsztaly(osztcsopId, TanevId); }); } public bool IsMentorCsoport(int? osztcsopId) { if (!osztcsopId.HasValue) { return false; } return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); return dal.GetIsCsoportTipusAlapjan(osztcsopId.Value, (int)CsoportTipusEnum.apaczai_mentorcsoport); }); } public IDictionary GetOsztalyCsoportForDDL(IList groups, string baseText = null, string osztalyGroupName = null, string csoportGroupName = null) { if (string.IsNullOrWhiteSpace(osztalyGroupName)) { osztalyGroupName = CommonResource.Osztaly; } /*Osztály*/ if (string.IsNullOrWhiteSpace(csoportGroupName)) { csoportGroupName = CommonResource.Csoport; } /*Csoport*/ if (GridParameters == null) { GridParameters = new GridParameters() { OrderBy = "GroupName DESC, CsoportTipusa ASC, Evfolyam ASC" }; } var result = Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); return dal.GetOsztalyCSoportok(osztalyGroupName, csoportGroupName); }); return LogicUtil.CreateGroupedDropdownContent(result, "ID", "Nev", "GroupName", groups, baseText); } public List GetAllOsztalyCsoportForDDL() { var result = Dal.CustomConnection.Run(ConnectionType, (h) => { var osztalyGroupName = CommonResource.Osztaly; /*Osztály*/ var csoportGroupName = CommonResource.Csoport; /*Csoport*/ return h.OsztalyCsoport().GetOsztalyCSoportok(osztalyGroupName, csoportGroupName); }); return LogicUtil.CreateMvcGroupedSelectListItem(result, "ID", "Nev", "GroupName"); } public List GetAllOsztalyCsoportTipusNelkul() { var result = Dal.CustomConnection.Run(ConnectionType, (h) => { var osztalyGroupName = CommonResource.Osztaly; /*Osztály*/ var csoportGroupName = CommonResource.Csoport; /*Csoport*/ return h.OsztalyCsoport().GetOsztalyCSoportok(osztalyGroupName, csoportGroupName, isOsztalyCsoportIsKell: false); }); return LogicUtil.CreateMvcGroupedSelectListItem(result, "ID", "Nev", "GroupName"); } public IEnumerable GetOsztalyCsoportByFelhasznaloIdForDropDownList() { return Dal.CustomConnection.Run(ConnectionType, (h) => { var ds = h.OsztalyCsoport().GetOsztalyCsoportokGroupedByKapcsolodas(FelhasznaloId); var nemTanoraiCeluCsoportTipusok = new List(); var isNemTanoraiCeluCsoportokErtekelesEnabled = new SystemSettingsHelper(new DalHandlerConnectionType(ConnectionType, h)).GetSystemSettingValue(RendszerBeallitasTipusEnum.nem_tanorai_celu_csoportok_ertekelesi_lehetosege); if (!isNemTanoraiCeluCsoportokErtekelesEnabled) { nemTanoraiCeluCsoportTipusok = h.Csoport().GetNemTanoraiCeluCsoportTipusList(); } var responseDs = new DataSet(); responseDs.Tables.Add(ds.Tables[0].Clone()); foreach (DataRow dr in ds.Tables[0].Rows) { dr["Tipus"] = SDAConvert.ToInt32(dr["Tipus"]).GetDisplayName(TanevId); var csoportTipusId = dr.Field("CsoportTipusa"); if (!isNemTanoraiCeluCsoportokErtekelesEnabled && csoportTipusId.HasValue && nemTanoraiCeluCsoportTipusok.Any(x => x.CsoportTipusId == csoportTipusId.Value)) { continue; } responseDs.Tables[0].ImportRow(dr); } return LogicUtil.CreateMvcGroupedExtendedComboBoxListItem(responseDs, "ID", "Nev", "Tipus", null, new string[] { "EllatottFeladatTipusId" }); }); } public IEnumerable GetOsztalyCsoportByFoglalkozasForDropDownList() { return Dal.CustomConnection.Run(ConnectionType, (h) => { var nemTanoraiCeluCsoportTipusok = new List(); var isNemTanoraiCeluCsoportokErtekelesEnabled = new SystemSettingsHelper(new DalHandlerConnectionType(ConnectionType, h)).GetSystemSettingValue(RendszerBeallitasTipusEnum.nem_tanorai_celu_csoportok_ertekelesi_lehetosege); if (!isNemTanoraiCeluCsoportokErtekelesEnabled) { nemTanoraiCeluCsoportTipusok = h.Csoport().GetNemTanoraiCeluCsoportTipusList(); } var ds = h.OsztalyCsoport().GetOsztalyCsoportokGroupedByFoglalkozas(FelhasznaloId); var responseDs = new DataSet(); responseDs.Tables.Add(ds.Tables[0].Clone()); foreach (DataRow dr in ds.Tables[0].Rows) { var csoportTipusId = dr.Field("CsoportTipusId"); if (!isNemTanoraiCeluCsoportokErtekelesEnabled && csoportTipusId.HasValue && nemTanoraiCeluCsoportTipusok.Any(x => x.CsoportTipusId == csoportTipusId.Value)) { continue; } responseDs.Tables[0].ImportRow(dr); } return LogicUtil.CreateMvcGroupedExtendedComboBoxListItem(responseDs, "ID", "Nev", "Tipus", null, new string[] { "EllatottFeladatTipusId" }); }); } public List GetFelhasznaloOsztalyaiByFoglalkozasAndOsztfo(string osztalyGroupName = null, string csoportGroupName = null, bool isFromSzervezet = false) { if (string.IsNullOrWhiteSpace(osztalyGroupName)) { osztalyGroupName = CommonResource.Osztaly; } /*Osztály*/ if (string.IsNullOrWhiteSpace(csoportGroupName)) { csoportGroupName = CommonResource.Csoport; } /*Csoport*/ return Dal.CustomConnection.Run(ConnectionType, (h) => { var ds = h.OsztalyCsoport().GetFelhasznaloOsztalyaiByFoglalkozasAndOsztfo(IntezmenyId, TanevId, FelhasznaloId, osztalyGroupName, csoportGroupName, isFromSzervezet); return LogicUtil.CreateMvcGroupedSelectListItem(ds, "ID", "Nev", "Tipus"); }); } public List GetOsztalyCsoportokForFeljegyzesek() { return Dal.CustomConnection.Run(ConnectionType, (h) => { var ds = h.OsztalyCsoport().GetOsztalyCsoportokForFeljegyzesek(FelhasznaloId); var itemList = GetOsztalyCsoportForDropDownList(ds); return itemList; }); } public IEnumerable GetOsztalyCsoportForDropDownList(int? feladatKategoriaId) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var ds = h.OsztalyCsoport().GetOsztalyCsoportokGrouped(feladatKategoriaId); var nemTanoraiCeluCsoportTipusok = new List(); var isNemTanoraiCeluCsoportokErtekelesEnabled = new SystemSettingsHelper(new DalHandlerConnectionType(ConnectionType, h)).GetSystemSettingValue(RendszerBeallitasTipusEnum.nem_tanorai_celu_csoportok_ertekelesi_lehetosege); if (!isNemTanoraiCeluCsoportokErtekelesEnabled) { nemTanoraiCeluCsoportTipusok = h.Csoport().GetNemTanoraiCeluCsoportTipusList(); } var responseDs = new DataSet(); responseDs.Tables.Add(ds.Tables[0].Clone()); foreach (DataRow dr in ds.Tables[0].Rows) { dr["Tipus"] = SDAConvert.ToInt32(dr["Tipus"]).GetDisplayName(TanevId); var csoportTipusId = dr.Field("CsoportTipusa"); if (!isNemTanoraiCeluCsoportokErtekelesEnabled && csoportTipusId.HasValue && nemTanoraiCeluCsoportTipusok.Any(x => x.CsoportTipusId == csoportTipusId.Value)) { continue; } responseDs.Tables[0].ImportRow(dr); } return LogicUtil.CreateMvcGroupedExtendedComboBoxListItem(responseDs, "ID", "Nev", "Tipus", null, new string[] { "EllatottFeladatTipusId" }); }); } private List GetOsztalyCsoportForDropDownList(DataSet ds) { foreach (DataRow dr in ds.Tables[0].Rows) { dr["Tipus"] = SDAConvert.ToInt32(dr["Tipus"]).GetDisplayName(TanevId); } return LogicUtil.CreateMvcGroupedSelectListItem(ds, "ID", "Nev", "Tipus"); } public List GetOsztalyCsoportListByEvfolyam(string osztalyGroupName = null, string csoportGroupName = null, int evfolyamTipus = -1, int? tanarId = null, DateTime? datum = null, int? feladatKategoriaId = null, bool? csakOsztalyEsTanoraJelleguCsoport = null, bool isDualisKepzes = false, int? szervezetId = null, int? szervezetAdatokHalmaza = null) { if (string.IsNullOrWhiteSpace(osztalyGroupName)) { osztalyGroupName = CommonResource.Osztaly; } /*Osztály*/ if (string.IsNullOrWhiteSpace(csoportGroupName)) { csoportGroupName = CommonResource.Csoport; } /*Csoport*/ var ds = Dal.CustomConnection.Run(ConnectionType, (h) => h.OsztalyCsoport().GetOsztalyCsoportListByEvfolyam(IntezmenyId, TanevId, osztalyGroupName, csoportGroupName, evfolyamTipus, tanarId, IsOsszefuggoSzakGyak(datum), feladatKategoriaId, csakOsztalyEsTanoraJelleguCsoport, isDualisKepzes, szervezetId, szervezetAdatokHalmaza)); DataTable resultTable; var dataRow = ds.Tables[0].AsEnumerable(); if (isDualisKepzes) { dataRow = dataRow.Where(x => x.Field("CsoportTipusa") == (int)CsoportTipusEnum.dualis_kepzesi_csoport); } else { dataRow = dataRow.Where(x => x.Field("CsoportTipusa") != (int)CsoportTipusEnum.dualis_kepzesi_csoport); } resultTable = dataRow.Any() ? dataRow.CopyToDataTable() : ds.Tables[0].Clone(); var dataSet = new DataSet(); dataSet.Tables.Add(resultTable); return LogicUtil.CreateMvcGroupedSelectListItem(dataSet, "ID", "Nev", "GroupName"); } public List GetCsoportListByCsoportVezeto(bool isTanoraiCeluCsoportok, int tanoraiCsoportTipusId, bool isSzuperOsztalyfonok, bool? szervezetTipusId = null, int? szervezetId = null) { var ds = Dal.CustomConnection.Run(ConnectionType, (h) => h.OsztalyCsoport().GetCsoportListByCsoportVezeto(TanevId, FelhasznaloId, isTanoraiCeluCsoportok, tanoraiCsoportTipusId, isSzuperOsztalyfonok, szervezetTipusId, szervezetId)); return LogicUtil.CreateMvcGroupedSelectListItem(ds, "ID", "Nev", "GroupName"); } public List GetOsztalyCsoportListByTanulo(bool csakAktivak, string osztalyGroupName = null, string csoportGroupName = null) { if (string.IsNullOrWhiteSpace(osztalyGroupName)) { osztalyGroupName = CommonResource.Osztaly; } /*Osztály*/ if (string.IsNullOrWhiteSpace(csoportGroupName)) { csoportGroupName = CommonResource.Csoport; } /*Csoport*/ var helper = new TanuloHelper(ConnectionType); var ds = helper.GetOsztalyCsoport(FelhasznaloId, null, csakAktivak); var groupColumnName = "GroupName"; ds.Tables[0].Columns.Add(groupColumnName, typeof(string)); foreach (DataRow myRow in ds.Tables[0].Rows) { if (myRow["IsCsoport"] != DBNull.Value) { myRow[groupColumnName] = Convert.ToBoolean(myRow["IsCsoport"].ToString() == "T") ? csoportGroupName : osztalyGroupName; } } return LogicUtil.CreateMvcGroupedSelectListItem(ds, "OsztalyCsoportId", "Nev", "GroupName"); } public List GetOsztalyCsoportByEvfolyamAndTanevForDDL(string osztalyGroupName = null, string csoportGroupName = null, int evfolyamTipus = -1) { if (string.IsNullOrWhiteSpace(osztalyGroupName)) { osztalyGroupName = CommonResource.Osztaly; } /*Osztály*/ if (string.IsNullOrWhiteSpace(csoportGroupName)) { csoportGroupName = CommonResource.Csoport; } /*Csoport*/ var ds = Dal.CustomConnection.Run(ConnectionType, (h) => h.OsztalyCsoport().GetOsztalyCsoportokEvfolyamAndTanevAlapjan(TanevId, osztalyGroupName, csoportGroupName, evfolyamTipus)); return LogicUtil.CreateMvcGroupedSelectListItem(ds, "ID", "Nev", "GroupName"); } public IDictionary GetKapcsolodoOsztalyCsoportokForDropDownList(OktNevelesiKategoriaEnum? feladatKategoriaId = null) { var dataSet = GetKapcsolodoOsztalyCsoportDataSet(true, true, false, feladatKategoriaId); var result = LogicUtil.CreateDropdownContent(dataSet, "ID", "Nev", sort: false); return result; } public IDictionary GetKapcsolodoOsztalyokForDropDownList() { var dataSet = GetKapcsolodoOsztalyCsoportDataSet(true, false, false, null); var result = LogicUtil.CreateDropdownContent(dataSet, "ID", "Nev", sort: false); return result; } public DataSet GetKapcsolodoOsztalyCsoportDataSet(bool osztalyKell, bool csoportKell, bool tartottOraKell, OktNevelesiKategoriaEnum? feladatKategoria, string osztalyGroupName = null, string csoportGroupName = null) { var result = Dal.CustomConnection.Run(ConnectionType, h => h.OsztalyCsoport().GetKapcsolodoOsztalyCsoportokByTanarId(FelhasznaloId, osztalyKell, csoportKell, tartottOraKell, feladatKategoria, osztalyGroupName, csoportGroupName)); return result; } public DataSet GetOsztalyCsoportokWithGroup() { return Dal.CustomConnection.Run(ConnectionType, (h) => h.OsztalyCsoport().GetOsztalyCsoportokWithTanev(TanevId)); } public DataSet GetOsztalyCsoportokTanoranKivuliFoglalkozasokhozWithGroup(bool csakOsztalyEsTanoraJelleguCsoport) { return Dal.CustomConnection.Run(ConnectionType, (h) => h.OsztalyCsoport().GetOsztalyCsoportokTanoranKivuliFoglalkozasokhozWithGroup(csakOsztalyEsTanoraJelleguCsoport, TanevId)); } public DataSet GetMulasztasEsFelmentesOsztalyCsoportTanuloi(int osztcsopId, int tanoraId, int targyId, int tanarId, DateTime date, int csakMegtartott, TanevCO tanevCO, MulasztasTipusEnum alapertelmezettMulasztasTipus, SzervezetTipusEnum? szervezetTipus = null) { var ds = Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.MulasztasDal(GridParameters); return dal.GetOsztalyCsoportTanuloiMulasztasEsFelmentes(osztcsopId, tanoraId, targyId, tanarId, date, csakMegtartott, szervezetTipus.HasValue ? tanevCO.KezdoNap : tanevCO.OraFelvetelKezdete, szervezetTipus.HasValue ? tanevCO.UtolsoNap : tanevCO.UtolsoTanitasiNap, TanevId, IntezmenyId, alapertelmezettMulasztasTipus); }); return ds; } public DataSet GetGroupsOfClass(int id, OktNevelesiKategoriaEnum kategoria) { return Dal.CustomConnection.Run(ConnectionType, (h) => h.Osztaly(GridParameters).GetOsztalyCsoportjai(id, kategoria)); } public List GetOsztalyCsoportEvfolyama(int id) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var ocs = h.OsztalyCsoport().Get(id); return new List { ocs.EvfolyamTipusa, ocs.VegzosEvfolyam }; }); } public int? GetOsztalyCsoportEvfolyamTipusId(int id) { var result = Dal.CustomConnection.Run(ConnectionType, h => { var entity = h.OsztalyCsoport().Get(id); return entity.EvfolyamTipusa; }); return result; } /// INFO @DevKornel: Mobil használja public Dictionary GetOsztalyCsoportTanuloi(int osztalyCsoportId, DateTime? date) { var dts = Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.Tanulo(GridParameters); return dal.GetOsztalyTanuloi(osztalyCsoportId, date); }); var result = new Dictionary(); foreach (DataRow row in dts.Tables[0].Rows) { var id = SDAConvert.ToInt32(row["ID"]); if (!result.ContainsKey(id)) { result.Add(id, SDAConvert.ToString(row["Nev"])); } } return result; } public DataSet GetOsztalyCsoportMindenkoriTanuloi(int osztalyCsoportId) { var result = Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Tanulo(GridParameters); return dal.GetOsztalyCsoportMindenkoriTanuloi(osztalyCsoportId); }); return result; } public DataSet GetOsztalyCsoportMindenkoriTanuloiTanuloCsoportonkent(int osztalyCsoportId) { var result = Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Tanulo(GridParameters); return dal.GetOsztalyCsoportMindenkoriTanuloiTanuloCsoportonkent(osztalyCsoportId); }); return result; } public int GetOsztalyCsoportIDFoglalkozasAlapjan(int foglalkozasId) { var ds = Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); return dal.GetOsztalyCsoportFoglalkozasAlapjan(foglalkozasId); }); var result = Convert.ToInt32(ds.Tables[0].Rows[0]["ID"]); return result; } public bool IsTanuloOsztalyCsoportTagja(int tanuloId, int osztalyCsoportId, DateTime? datum = null) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); return dal.IsTanuloOsztalyCsoportTagja(tanuloId, osztalyCsoportId, datum); }); } public bool IsOsztalyCsoportNemTanoraiCeluCsoport(int osztalyCsoportId) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); return dal.IsOsztalyCsoportNemTanoraiCeluCsoport(osztalyCsoportId); }); } /// INFO @DevKornel: Mobil használja public DataSet GetOsztalyCsoportTanulok(int id, DateTime? datum, DateTime? tanevElsoNapja = null, bool? isGroupedByKilepesDatum = false) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.Csoport(GridParameters); return dal.GetOsztalyCsoportTanulok(id: id, datum: datum, intezmenyAzonosito: IntezmenyAzonosito, tanevElsoNapja: tanevElsoNapja, isGroupedByKilepesDatum); }); } /// INFO: Mobil használja public DataSet GetOsztalyCsoportTanulokEsFelmenteseik(int osztalyCsoportId, DateTime? datum, int? tanuloId, int? tantargyId) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.Csoport(GridParameters); return dal.GetOsztalyCsoportTanulokEsFelmenteseik(osztalyCsoportId, datum, tanuloId, tantargyId, IntezmenyAzonosito); }); } public DataSet GetTanuloSorolasData(int tanuloId, int id) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.Csoport(GridParameters); return dal.GetTanuloSorolasData(tanuloId, id); }); } public string GetOsztalyCsoportNevById(int id) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); return dal.Get(id).Nev; }); } /// INFO @DevKornel: Mobil használja public string GetNemToroltOsztalyCsoportNevById(int id) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var osztalyCsoport = h.OsztalyCsoport().Get(id); if (osztalyCsoport.Torolt) throw new EntityNotFoundException("OsztalyCsoport", id); return osztalyCsoport.Nev; }); } public bool GetIsOsztalyCsoportBontott(int osztalyCsoportId) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); return dal.GetIsOsztalyCsoportBontott(osztalyCsoportId); }); } public CsoportTipusEnum? GetCsoportTipusByOsztalyCsoportId(int osztalyCsoportId) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); var dalRet = dal.GetCsoportTipusByOsztalyCsoportId(osztalyCsoportId, IntezmenyId); return dalRet.HasValue ? (CsoportTipusEnum)dalRet.Value : (CsoportTipusEnum?)null; }); } /// INFO @DevKornel: Mobil használja public bool GetIsVegzosOsztalyCsoport(int osztalyId) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); return dal.GetIsVegzosOsztalyCsoport(osztalyId); }); } public List GetOsztalyCsoportCoList() { var dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.OsztalyCsoport().GetOsztalyCsoportDataSet(TanevId)); var result = new List(); foreach (DataRow dataRow in dataSet.Tables[0].Rows) { var item = new OsztalyCsoportItemCo(dataRow); result.Add(item); } return result; } public bool GetIsCsoport(int osztalyCsoportId) { return Dal.CustomConnection.Run(ConnectionType, (h) => h.OsztalyCsoport().GetIsCsoport(osztalyCsoportId)); } public bool GetIsOsztaly(int osztalyCsoportId) { return Dal.CustomConnection.Run(ConnectionType, (h) => h.OsztalyCsoport().GetIsOsztaly(osztalyCsoportId)); } #region Export public MemoryStream GetCsoportokMindenAdataExcelExport(OktNevelesiKategoriaEnum? feladatKategoria, CsoportSearchCo co, bool isSelectedTanev21_22OrLater, bool isSzakkepzoIntezmeny) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); var tanevElsoTanitasiNapja = new TanevHelper(new DalHandlerConnectionType(ConnectionType, h)).GetTanevKezdete(); var dataSet = dal.GetCsoportokMindenAdataForExport(TanevId, feladatKategoria, co.ConvertToPco(), isSelectedTanev21_22OrLater, isSzakkepzoIntezmeny, tanevElsoTanitasiNapja); var dataTable = dataSet.Tables[0]; ExportLogic.TryCreateHeaderIfNotExist(dataTable); if (isSelectedTanev21_22OrLater && feladatKategoria != OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas) { if (isSzakkepzoIntezmeny) { FormatMunkarendBySelectedTanev21_22OrLaterAndSzakkepzoIntezmeny(dataTable); } } var stream = new MemoryStream(); using (var excel = new ExcelPackage(stream)) { var workSheet = excel.Workbook.Worksheets.Add(OsztalyCsoportResource.CsoportokMindenAdata); workSheet.Cells[1, 1].LoadFromDataTable(dataTable, true); for (var shortDateTimeFormattedRowId = 2; shortDateTimeFormattedRowId < dataTable.Rows.Count + 2; shortDateTimeFormattedRowId++) { var formattedColCsoportnaploMegnyitasiDatuma = workSheet.Cells[shortDateTimeFormattedRowId, 14]; var formattedColCsoportnaploLezarasDatuma = workSheet.Cells[shortDateTimeFormattedRowId, 15]; formattedColCsoportnaploMegnyitasiDatuma.Value = formattedColCsoportnaploMegnyitasiDatuma.Text.Substring(0, Math.Min(formattedColCsoportnaploMegnyitasiDatuma.Text.Length, 10)); formattedColCsoportnaploLezarasDatuma.Value = formattedColCsoportnaploLezarasDatuma.Text.Substring(0, Math.Min(formattedColCsoportnaploLezarasDatuma.Text.Length, 10)); } ExportLogic.SetHeaderStyles(workSheet.Cells[1, 1, 1, dataTable.Columns.Count]); workSheet.Cells.AutoFitColumns(); excel.Save(); } stream.Position = 0; return stream; }); } public MemoryStream GetExportOsztalyokAktualisLetszamadataiExcelExport(OktNevelesiKategoriaEnum feladatKategoria, OsztalySearchCo co) { var stream = new MemoryStream(); var dataTable = new OsztalyHelper(ConnectionType).OsztalyExport(co).Tables[0]; using (var excel = new ExcelPackage(stream)) { var workSheet = excel.Workbook.Worksheets.Add(OsztalyCsoportResource.OsztalyokAktualisLetszamadatai); (string nameFrom, string nameTo, Type type)[] map = new[] { ("OsztalyNev", "Osztály név", typeof(string)), ("TanulokSzama", feladatKategoria == OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas ? TanuloResource.NovendekekSzama : OsztalyCsoportResource.TanulokSzama, typeof(int)) }; workSheet.Cells[1, 1].LoadFromDataTable(ExportLogic.MapDataTable(dataTable, map), true); ExportLogic.SetHeaderStyles(workSheet.Cells[1, 1, 1, map.Length]); workSheet.Cells.AutoFitColumns(); excel.Save(); } stream.Position = 0; return stream; } public MemoryStream GetEvfolyamAktualisLetszamadataiExcelExport(OktNevelesiKategoriaEnum feladatKategoria, OsztalySearchCo co) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); var tanevElsoTanitasiNapja = new TanevHelper(new DalHandlerConnectionType(ConnectionType, h)).GetTanevKezdete(); var dataSet = dal.GetEvfolyamAktualisLetszamadataiExcelExport(TanevId, feladatKategoria, co.ConvertToPco(), tanevElsoTanitasiNapja); var dataTable = dataSet.Tables[0]; ExportLogic.TryCreateHeaderIfNotExist(dataTable); var stream = new MemoryStream(); using (var excel = new ExcelPackage(stream)) { var workSheet = excel.Workbook.Worksheets.Add(OsztalyCsoportResource.EvfolyamAktualisLetszamadatai); workSheet.Cells[1, 1].LoadFromDataTable(dataTable, true); ExportLogic.SetHeaderStyles(workSheet.Cells[1, 1, 1, dataTable.Columns.Count]); workSheet.Cells.AutoFitColumns(); excel.Save(); } stream.Position = 0; return stream; }); } public MemoryStream GetOsztalyokMindenAdataExcelExport(OktNevelesiKategoriaEnum feladatKategoria, OsztalySearchCo searchCo, bool isNszfhUjSzkt, bool isSelectedTanev20_21OrLater, bool isSelectedTanev21_22OrLater, bool isSzakkepzoIntezmeny) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); var tanevElsoTanitasiNapja = new TanevHelper(new DalHandlerConnectionType(ConnectionType, h)).GetTanevKezdete(); var dataSet = dal.GetOsztalyokMindenAdataExcelExport(TanevId, feladatKategoria, searchCo.ConvertToPco(), tanevElsoTanitasiNapja, isSelectedTanev21_22OrLater, isSzakkepzoIntezmeny); var dataTable = dataSet.Tables[0]; if (isNszfhUjSzkt) { dataTable.Columns.Remove(OsztalyCsoportResource.Kettannyelvu); dataTable.Columns.Remove(OsztalyCsoportResource.NyelviElokeszitoOsztaly); } if (!isSelectedTanev20_21OrLater) { dataTable.Columns.Remove(OsztalyCsoportResource.UjSzktAgazatTipusa); dataTable.Columns.Remove(OsztalyCsoportResource.UjSzktSzakmaTipusa); dataTable.Columns.Remove(OsztalyCsoportResource.UjSzktSzakmairanyTipusa); dataTable.Columns.Remove(OsztalyCsoportResource.NktTanulmanyiTerulet); dataTable.Columns.Remove(OsztalyCsoportResource.NktSzakkepesites); dataTable.Columns.Remove(OsztalyCsoportResource.NktSzakirany); if (dataTable.Columns.Contains(OsztalyCsoportResource.AgazatReszszakma)) { dataTable.Columns.Remove(OsztalyCsoportResource.AgazatReszszakma); } if (dataTable.Columns.Contains(OsztalyCsoportResource.SzakmaReszszakma)) { dataTable.Columns.Remove(OsztalyCsoportResource.SzakmaReszszakma); } if (dataTable.Columns.Contains(OsztalyCsoportResource.Reszszakma)) { dataTable.Columns.Remove(OsztalyCsoportResource.Reszszakma); } } if (isSelectedTanev21_22OrLater) { FormatJegyzekBySelectedTanev21_22OrLater(dataTable); if (isSzakkepzoIntezmeny) { FormatMunkarendBySelectedTanev21_22OrLaterAndSzakkepzoIntezmeny(dataTable); } } ExportLogic.TryCreateHeaderIfNotExist(dataTable); var stream = new MemoryStream(); using (var excel = new ExcelPackage(stream)) { var workSheet = excel.Workbook.Worksheets.Add(OsztalyCsoportResource.OsztalyokMindenAdata); workSheet.Cells[1, 1].LoadFromDataTable(dataTable, true); for (var shortDateTimeFormattedRowId = 2; shortDateTimeFormattedRowId < dataTable.Rows.Count + 2; shortDateTimeFormattedRowId++) { var formattedColCsoportnaploMegnyitasiDatuma = workSheet.Cells[shortDateTimeFormattedRowId, 11]; var formattedColCsoportnaploLezarasDatuma = workSheet.Cells[shortDateTimeFormattedRowId, 12]; formattedColCsoportnaploMegnyitasiDatuma.Value = formattedColCsoportnaploMegnyitasiDatuma.Text.Substring(0, Math.Min(formattedColCsoportnaploMegnyitasiDatuma.Text.Length, 10)); formattedColCsoportnaploLezarasDatuma.Value = formattedColCsoportnaploLezarasDatuma.Text.Substring(0, Math.Min(formattedColCsoportnaploLezarasDatuma.Text.Length, 10)); } ExportLogic.SetHeaderStyles(workSheet.Cells[1, 1, 1, dataTable.Columns.Count]); workSheet.Cells.AutoFitColumns(); excel.Save(); } stream.Position = 0; return stream; }); } private void FormatJegyzekBySelectedTanev21_22OrLater(DataTable dataTable) { var agazatDict = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.AgazatTipus, TanevId, visibleOnly: false); var szakkepesitesDict = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.SzakkepesitesTipus, TanevId, visibleOnly: false); var reszszakkepesitesDict = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.ReszszakkepesitesTipus, TanevId, visibleOnly: false); var szakmacsoportDict = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.SzakmacsoportTipus, TanevId, visibleOnly: false); var agazatSzktDict = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.AgazatUjSzktTipus, TanevId, visibleOnly: false); var szakmaTipusDict = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.SzakmaTipus, TanevId, visibleOnly: false); var szakmairanyTipusDict = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.SzakmairanyTipus, TanevId, visibleOnly: false); var tanulmanyiTeruletDict = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.TanulmanyiTeruletNktTipus, TanevId, visibleOnly: false); var szakkepesitesNktDict = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.SzakkepesitesNktTipus, TanevId, visibleOnly: false); var szakiranyDict = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.SzakiranyNktTipus, TanevId, visibleOnly: false); var agazatReszszakmatDict = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.AgazatReszSzakmaTipus, TanevId, visibleOnly: false); var szakmaReszszakmaDict = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.SzakmaReszSzakmaTipus, TanevId, visibleOnly: false); var reszszakmaDict = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.ReszSzakmaTipus, TanevId, visibleOnly: false); dataTable.Columns.Add(OsztalyCsoportResource.AgazatTipusa); dataTable.Columns.Add(OsztalyCsoportResource.SzakkepesitesTipusa); dataTable.Columns.Add(OsztalyCsoportResource.ReszszakkepesitesTipusa); dataTable.Columns.Add(OsztalyCsoportResource.SzakmacsoportTipusa); dataTable.Columns.Add(OsztalyCsoportResource.UjSzktAgazatTipusa); dataTable.Columns.Add(OsztalyCsoportResource.UjSzktSzakmaTipusa); dataTable.Columns.Add(OsztalyCsoportResource.UjSzktSzakmairanyTipusa); dataTable.Columns.Add(OsztalyCsoportResource.NktTanulmanyiTerulet); dataTable.Columns.Add(OsztalyCsoportResource.NktSzakkepesites); dataTable.Columns.Add(OsztalyCsoportResource.NktSzakirany); dataTable.Columns.Add(OsztalyCsoportResource.AgazatReszszakma); dataTable.Columns.Add(OsztalyCsoportResource.SzakmaReszszakma); dataTable.Columns.Add(OsztalyCsoportResource.Reszszakma); foreach (DataRow row in dataTable.Rows) { SetJegyzekColumn(row, "Agazat", agazatDict, (int)AgazatTipusEnum.tobb_agazat, OsztalyCsoportResource.AgazatTipusa); SetJegyzekColumn(row, "Szakkepesites", szakkepesitesDict, (int)SzakkepesitesTipusEnum.tobb_szakkepesites, OsztalyCsoportResource.SzakkepesitesTipusa); SetJegyzekColumn(row, "Reszszakkepesites", reszszakkepesitesDict, (int)ReszszakkepesitesTipusEnum.tobb_reszszakkepesites, OsztalyCsoportResource.ReszszakkepesitesTipusa); SetJegyzekColumn(row, "Szakmacsoport", szakmacsoportDict, (int)SzakmacsoportTipusEnum.tobb_szakmacsoport, OsztalyCsoportResource.SzakmacsoportTipusa); SetJegyzekColumn(row, "AgazatSzkt", agazatSzktDict, (int)AgazatUjSzktTipusEnum.tobb_agazat, OsztalyCsoportResource.UjSzktAgazatTipusa); SetJegyzekColumn(row, "SzakmaTipus", szakmaTipusDict, (int)SzakmaTipusEnum.tobb_szakma, OsztalyCsoportResource.UjSzktSzakmaTipusa); SetJegyzekColumn(row, "SzakmairanyTipus", szakmairanyTipusDict, (int)SzakmairanyTipusEnum.tobb_szakmairany, OsztalyCsoportResource.UjSzktSzakmairanyTipusa); SetJegyzekColumn(row, "TanulmanyiTerulet", tanulmanyiTeruletDict, (int)TanulmanyiTeruletNktTipusEnum.vegyes, OsztalyCsoportResource.NktTanulmanyiTerulet); SetJegyzekColumn(row, "SzakkepesitesNkt", szakkepesitesNktDict, (int)SzakkepesitesNktTipusEnum.vegyes, OsztalyCsoportResource.NktSzakkepesites); SetJegyzekColumn(row, "Szakirany", szakiranyDict, (int)SzakiranyNktTipusEnum.vegyes, OsztalyCsoportResource.NktSzakirany); SetJegyzekColumn(row, "AgazatReszszakma", agazatReszszakmatDict, (int)AgazatReszSzakmaTipusEnum.na, OsztalyCsoportResource.AgazatReszszakma, OsztalyCsoportResource.TobbAgazat); SetJegyzekColumn(row, "SzakmaReszszakma", szakmaReszszakmaDict, (int)SzakmaReszSzakmaTipusEnum.na, OsztalyCsoportResource.SzakmaReszszakma, OsztalyCsoportResource.TobbSzakma); SetJegyzekColumn(row, "Reszszakma", reszszakmaDict, (int)ReszSzakmaTipusEnum.na, OsztalyCsoportResource.Reszszakma, OsztalyCsoportResource.TobbSzakma); } dataTable.Columns.Remove("AgazatCount"); dataTable.Columns.Remove("AgazatMax"); dataTable.Columns.Remove("SzakkepesitesCount"); dataTable.Columns.Remove("SzakkepesitesMax"); dataTable.Columns.Remove("ReszszakkepesitesCount"); dataTable.Columns.Remove("ReszszakkepesitesMax"); dataTable.Columns.Remove("SzakmacsoportCount"); dataTable.Columns.Remove("SzakmacsoportMax"); dataTable.Columns.Remove("AgazatSzktCount"); dataTable.Columns.Remove("AgazatSzktMax"); dataTable.Columns.Remove("SzakmaTipusCount"); dataTable.Columns.Remove("SzakmaTipusMax"); dataTable.Columns.Remove("SzakmairanyTipusCount"); dataTable.Columns.Remove("SzakmairanyTipusMax"); dataTable.Columns.Remove("TanulmanyiTeruletCount"); dataTable.Columns.Remove("TanulmanyiTeruletMax"); dataTable.Columns.Remove("SzakkepesitesNktCount"); dataTable.Columns.Remove("SzakkepesitesNktMax"); dataTable.Columns.Remove("SzakiranyCount"); dataTable.Columns.Remove("SzakiranyMax"); dataTable.Columns.Remove("AgazatReszszakmaCount"); dataTable.Columns.Remove("AgazatReszszakmaMax"); dataTable.Columns.Remove("SzakmaReszszakmaCount"); dataTable.Columns.Remove("SzakmaReszszakmaMax"); dataTable.Columns.Remove("ReszszakmaCount"); dataTable.Columns.Remove("ReszszakmaMax"); } private void FormatMunkarendBySelectedTanev21_22OrLaterAndSzakkepzoIntezmeny(DataTable dataTable) { var munkarendDict = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.TanterviJelleg, TanevId, false, visibleOnly: false); foreach (DataRow row in dataTable.Rows) { SetMunkarendColumn(row, "Munkarend", munkarendDict, OsztalyCsoportResource.Munkarend); } dataTable.Columns.Remove("MunkarendCount"); dataTable.Columns.Remove("MunkarendMax"); if (dataTable.Columns.Contains("csoportFeladatkategoriaId")) { dataTable.Columns.Remove("csoportFeladatkategoriaId"); } if (dataTable.Columns.Contains("AmiMunkarend")) { dataTable.Columns.Remove("AmiMunkarend"); } } private void SetMunkarendColumn(DataRow row, string munkarendColumnPrefix, IDictionary munkarendDict, string newColumnName) { var count = row.Field($"{munkarendColumnPrefix}Count"); var munkarend = row.Field($"{munkarendColumnPrefix}Max"); var csoportFeladatkategoriaId = row.Table.Columns.Contains("csoportFeladatkategoriaId") ? row.Field("csoportFeladatkategoriaId") : null; if (csoportFeladatkategoriaId.HasValue && csoportFeladatkategoriaId == (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas) { row[newColumnName] = row.Field("AmiMunkarend"); } else { if (count == 0 || !munkarend.HasValue || munkarend == 0) { row[newColumnName] = "-"; } else if (count == 1) { row[newColumnName] = munkarendDict[row.Field($"{munkarendColumnPrefix}Max").ToString()]; } else { row[newColumnName] = OsztalyCsoportResource.TobbMunkarend; } } } private void SetJegyzekColumn(DataRow row, string jegyzekColumnPrefix, IDictionary jegyzekDict, int tobbJegyzekId, string newColumnName, string tobbJegyzekSzoveges = null) { var count = row.Field($"{jegyzekColumnPrefix}Count"); if (count == 0) { row[newColumnName] = "-"; } else if (count == 1) { row[newColumnName] = jegyzekDict[row.Field($"{jegyzekColumnPrefix}Max").ToString()]; } else { row[newColumnName] = tobbJegyzekSzoveges ?? jegyzekDict[tobbJegyzekId.ToString()]; } } public MemoryStream GetOsztalybaJaroTanulokExcelExport(OktNevelesiKategoriaEnum feladatKategoria, OsztalySearchCo co) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); var tanevElsoTanitasiNapja = new TanevHelper(new DalHandlerConnectionType(ConnectionType, h)).GetTanevKezdete(); var dataSet = dal.GetOsztalybaJaroTanulokExcelExport(TanevId, co.ConvertToPco(), tanevElsoTanitasiNapja); var dataTable = dataSet.Tables[0]; ExportLogic.TryCreateHeaderIfNotExist(dataTable); var stream = new MemoryStream(); using (var excel = new ExcelPackage(stream)) { var workSheet = excel.Workbook.Worksheets.Add(feladatKategoria == OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas ? OsztalyCsoportResource.OsztalybaJaroNovendekek : OsztalyCsoportResource.OsztalybaJaroTanulok); workSheet.Cells[1, 1].LoadFromDataTable(dataTable, true); ExportLogic.SetHeaderStyles(workSheet.Cells[1, 1, 1, dataTable.Columns.Count]); workSheet.Cells.AutoFitColumns(); excel.Save(); } stream.Position = 0; return stream; }); } public MemoryStream GetCsoportbaJaroTanulokExcelExport(OktNevelesiKategoriaEnum? feladatKategoria, CsoportSearchCo co, bool isActiveTanev) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); DateTime? tanevElsoTanitasiNapja = null; if (!isActiveTanev) { tanevElsoTanitasiNapja = new TanevHelper(new DalHandlerConnectionType(ConnectionType, h)).GetTanevKezdete(); } var dataSet = dal.GetCsoportbaJaroTanulokExcelExport(TanevId, feladatKategoria, co.ConvertToPco(), tanevElsoTanitasiNapja); var dataTable = dataSet.Tables[0]; ExportLogic.TryCreateHeaderIfNotExist(dataTable); var stream = new MemoryStream(); using (var excel = new ExcelPackage(stream)) { var workSheet = excel.Workbook.Worksheets.Add(feladatKategoria == OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas ? OsztalyCsoportResource.CsoportbaJaroNovendekek : OsztalyCsoportResource.CsoportbaJaroTanulok); workSheet.Cells[1, 1].LoadFromDataTable(dataTable, true); ExportLogic.SetHeaderStyles(workSheet.Cells[1, 1, 1, dataTable.Columns.Count]); workSheet.Cells.AutoFitColumns(); excel.Save(); } stream.Position = 0; return stream; }); } #endregion public int GetFeladatEllatasiHelyByOsztalyId(int Id) { var data = Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); return dal.Get(Id); }); return data.FeladatEllatasiHelyId; } public IDictionary GetCsoportokCsoportvezetoAlapjanDLL(bool showTanoraCeluCsoportok) { var result = Dal.CustomConnection.Run(ConnectionType, (h) => h.OsztalyCsoport().GetCsoportokCsoportvezetoAlapjan(FelhasznaloId, showTanoraCeluCsoportok)); return LogicUtil.CreateDropdownContent(result, "ID", "Nev", sort: false); } public List GetCsoportokByCsoportvezeto(int tanarId, bool showTanoraCeluCsoportok) { var result = Dal.CustomConnection.Run(ConnectionType, (h) => h.OsztalyCsoport().GetCsoportokCsoportvezetoAlapjan(tanarId, showTanoraCeluCsoportok)); return result.Tables[0].AsEnumerable().Select(x => new CsoportCO { Id = SDAConvert.ToInt32(x["ID"]), CsoportNeve = SDAConvert.ToString(x["Nev"]).ReplaceMultipleSpacesAndTrim(), CsoportTipus = SDAConvert.ToInt32(x["CsoportTipusa"]), EvfolyamTipusa = SDAConvert.ToInt32(x["Evfolyam"]), }).ToList(); } public int? GetOsztalyfonokElsonekMegtalaltOsztalya(int tanarId) { return Dal.CustomConnection.Run(ConnectionType, (h) => h.OsztalyCsoport().GetOsztalyfonokElsonekMegtalaltOsztalya(tanarId)); } public bool HasTanitasiOra(int id) { var hasTanitasiOra = false; Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); if (dal.HasTanitasiOra(id)) { hasTanitasiOra = true; } }); return hasTanitasiOra; } public bool IsTanulokOsztalyTagjai(int osztalyId, DateTime datum, IEnumerable tanuloIds) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.OsztalyCsoport(GridParameters); var osztaly = dal.Get(osztalyId); return !tanuloIds.Except(osztaly.Tanulo .Where(x => !x.Torolt && x.BelepesDatum <= datum && (!x.KilepesDatum.HasValue || x.KilepesDatum > datum)).Select(a => a.TanuloId)).Any(); }); } public bool IsOsszefuggoSzakGyak(DateTime? datum) { if (!datum.HasValue) return false; DateTime? szakGyakKezdDatum, szakGyakVegDatum, utolsoTanitasiNap; var systemSettingsHelper = new SystemSettingsHelper(ConnectionType); var tanevRendHelper = new TanevrendHelper(ConnectionType); var tanevHelper = new TanevHelper(ConnectionType); utolsoTanitasiNap = tanevHelper.GetTanevInfo().UtolsoTanitasiNap; szakGyakKezdDatum = systemSettingsHelper.GetSystemSettingValue(RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_kezd_datum); szakGyakVegDatum = systemSettingsHelper.GetSystemSettingValue(RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_veg_datum); if (datum > utolsoTanitasiNap && datum >= szakGyakKezdDatum && datum <= szakGyakVegDatum && !tanevRendHelper.IsRendkivuliTanitasiNap(datum.Value)) { return true; } return false; } public bool IsAmiOsztalyCsoport(int osztalyCsoportId) { return GetOsztalyCsoportFeladatKategoria(osztalyCsoportId) == (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas; } /// INFO @DevKornel: Mobil használja public int GetOsztalyCsoportFeladatKategoria(int osztalyCsoportId) { return Dal.CustomConnection.Run(ConnectionType, (h) => { return h.OsztalyCsoport().GetOsztalyCsoportFeladatKategoria(osztalyCsoportId); }); } public int GetOsztalyCsoportOktatasNevelesiFeladatTipus(int osztalyCsoportId) { return Dal.CustomConnection.Run(ConnectionType, (h) => { return h.OsztalyCsoport().GetOsztalyCsoportOktatasNevelesiFeladatTipus(osztalyCsoportId); }); } public Dictionary GetOsztalyTanuloinakGondviseloi(int osztalyId) { var result = new Dictionary(); var dataSet = new DataSet(); Dal.CustomConnection.Run(ConnectionType, (h) => { var tanevDal = h.TanevDal(); var tanev = tanevDal.Get(TanevId); var keresesiDatum = DateTime.Now < tanev.ElsoTanitasiNap ? tanev.ElsoTanitasiNap.Value : DateTime.Now.Date; dataSet = h.OsztalyCsoport().GetOsztalyTanuloinakGondviseloi(TanevId, osztalyId, keresesiDatum); }); foreach (DataRow dataRow in dataSet.Tables[0].Rows) { result.Add(dataRow.Field("GondviseloId"), dataRow.Field("GondviseloNev")); } return result; } public List GetOsztalyokByMuveszetiAg(MuveszetiAgEnum muveszetiAg) { var ds = Dal.CustomConnection.Run(ConnectionType, (h) => h.OsztalyCsoport().GetOsztalyokByMuveszetiAg(muveszetiAg, TanevId)); var result = new List(); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { foreach (DataRow row in ds.Tables[0].Rows) { result.Add(row.Field("ID")); } } return result; } public bool IsOsztalyCsoportokAzonosKategoria(string osztalyIdString, OktNevelesiKategoriaEnum feladatKategoria) { var ds = Dal.CustomConnection.Run(ConnectionType, (h) => h.OsztalyCsoport().GetOsztalyCsoportokFeladatKategoria(osztalyIdString)); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { foreach (DataRow row in ds.Tables[0].Rows) { if ((int)feladatKategoria != row.Field("C_FELADATKATEGORIAID")) { return false; } } } return true; } public bool IsOsztalyCsoportokAzonosOktatasNevelesiFeladatTipus(string osztalyIdString, OktatasiNevelesiFeladatEnum oktatasiNevelesiFeladat) { var ds = Dal.CustomConnection.Run(ConnectionType, (h) => h.OsztalyCsoport().GetOsztalyCsoportokOktatasNevelesiFeladatTipus(osztalyIdString)); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { foreach (DataRow row in ds.Tables[0].Rows) { if ((int)oktatasiNevelesiFeladat != row.Field("C_OKTATASINEVELESIFELADATTIPUS")) { return false; } } } return true; } public string GetOsztalybontasosCsoportokHibasEvfolyammal(string csoportIdString, int evfolyamTipusa) { var ds = Dal.CustomConnection.Run(ConnectionType, (h) => h.OsztalyCsoport().GetOsztalybontasosCsoportokOsztalyAdatokkal(csoportIdString, TanevId)); var hibasCsoportokEvfolyammal = string.Join(", ", ds?.Tables[0]?.AsEnumerable().Where(t => t.Field("OsztalybontottOsztalyanakEvfolyama") != evfolyamTipusa).Select(x => x.Field("CsoportNev")).ToArray()); return hibasCsoportokEvfolyammal; } public string GetOsztalybontasosCsoportokHibasGyogypedagogiaiLogopediai(string csoportIdString, bool gyogypedagogiaiLogopediai) { var ds = Dal.CustomConnection.Run(ConnectionType, (h) => h.OsztalyCsoport().GetOsztalybontasosCsoportokOsztalyAdatokkal(csoportIdString, TanevId)); var hibasCsoportokEvfolyammal = string.Join(", ", ds?.Tables[0]?.AsEnumerable().Where(t => SDAConvert.ToBooleanFromTF(t.Field("OsztalybontottOsztalyanakGyogypedagogiaiLogopediai")) != gyogypedagogiaiLogopediai).Select(x => x.Field("CsoportNev")).ToArray()); return hibasCsoportokEvfolyammal; } public string GetOsztalybontasosCsoportokHibasTechnikaiCsoport(string csoportIdString, bool technikaiCsoport) { var ds = Dal.CustomConnection.Run(ConnectionType, (h) => h.OsztalyCsoport().GetOsztalybontasosCsoportokOsztalyAdatokkal(csoportIdString, TanevId)); var hibasCsoportokEvfolyammal = string.Join(", ", ds?.Tables[0]?.AsEnumerable().Where(t => SDAConvert.ToBooleanFromTF(t.Field("OsztalybontottOsztalyanakTechnikai")) != technikaiCsoport).Select(x => x.Field("CsoportNev")).ToArray()); return hibasCsoportokEvfolyammal; } public string GetAutoEgyeniCsoportok(string csoportIDArrayString) { var ds = Dal.CustomConnection.Run(ConnectionType, (h) => h.OsztalyCsoport().GetAutoEgyeniCsoportok(csoportIDArrayString, TanevId)); var autoEgyeniCsoportok = string.Join(Constants.General.Sortores, ds?.Tables[0]?.AsEnumerable().Select(x => x.Field("CsoportNev")).ToArray()); return autoEgyeniCsoportok; } public List GetLEPOszlyCspoortByTanevAndFelhasznalo(int felhasznaloId) { var osztalyCsoportok = new List(); Dal.CustomConnection.Run(ConnectionType, (h) => { var ds = h.OsztalyCsoport().GetVezetettOsztalyCsoportokByAlkalmazott(TanevId, felhasznaloId); var dt = ds.Tables.Count > 0 ? ds.Tables[0] : null; if (dt != null) { osztalyCsoportok = dt.Rows.Cast().Select(item => new OsztalyCO { Id = SDAConvert.ToInt32(item["OsztalyCsoportId"].ToString()), OsztalyNev = item["OsztalyCsoportNev"].ToString(), EvfolyamTipusa = SDAConvert.ToInt32(item["EvfolyamId"].ToString()) }).ToList(); } }); return osztalyCsoportok; } public string GetOsztalybontasosCsoportokHibasFeladatellatasiHellyel(string csoportIdString, int feladatellatasiHelyId) { var ds = Dal.CustomConnection.Run(ConnectionType, (h) => h.OsztalyCsoport().GetOsztalybontasosCsoportokOsztalyAdatokkal(csoportIdString, TanevId)); var hibasCsoportokEvfolyammal = string.Join(", ", ds?.Tables[0]?.AsEnumerable().Where(t => t.Field("OsztalybontottOsztalyanakFeladatellatasiHelye") != feladatellatasiHelyId).Select(x => x.Field("CsoportNev")).ToArray()); return hibasCsoportokEvfolyammal; } public string GetOsztalybontasosCsoportokVegzos(string csoportIdString) { var ds = Dal.CustomConnection.Run(ConnectionType, (h) => h.OsztalyCsoport().GetOsztalybontasosCsoportokOsztalyAdatokkal(csoportIdString, TanevId)); var result = string.Join(", ", ds?.Tables[0]?.AsEnumerable().Select(x => x.Field("CsoportNev")).ToArray()); return result; } public int? GetOsztalyKepzesiFormajaByOsztalyId(int Id) { var data = Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); return dal.Get(Id); }); return data.KepzesiForma; } public OsztalyCO GetOsztalyByOsztalyId(int Id) { var data = Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.Osztaly(); return dal.Get(Id); }); return new OsztalyCO() { Id = data.ID, FeladatEllatasiHelyId = data.FeladatEllatasiHelyId, KepzesiForma = data.KepzesiForma, EvfolyamTipusa = data.EvfolyamTipusa, IsGyogypedagogiaiLogopediai = data.IsGyogypedagogiaiLogopediai, TechnikaiOsztaly = data.IsTechnikai, Keresztfeleves = data.Keresztfeleves, ReszSzakkepesitesId = data.Reszszakkepesites }; } public CsoportCO GetCsoportByCsoportId(int Id) { var data = Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.Csoport(); return dal.Get(Id); }); return new CsoportCO() { Id = data.ID, Keresztfeleves = data.Keresztfeleves, FeladatEllatasiHelyId = data.FeladatEllatasiHelyId, CsoportvezetoId = data.CsoportVezetoId }; } public DataSet GetTanuloOsztalyDataSetByOsztalyCsoportId(int osztalyCsoportId) { var result = Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.OsztalyCsoport(GridParameters); return dal.GetTanuloOsztalyDataSetByOsztalyCsoportId( TanevId, osztalyCsoportId); }); return result; } public int GetOsztalyCsoportTeremId(int osztalyCsoportId) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); if (!dal.GetIsCsoport(osztalyCsoportId) && !dal.GetIsOsztaly(osztalyCsoportId)) { return 0; } return dal.Get(osztalyCsoportId).TeremId; }); } public List GetCsoportTanuloinakSzakmajegyzeke(int csoportId, DateTime datum) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var ds = h.OsztalyCsoport().GetCsoportTanuloinakSzakmajegyzeke(TanevId, csoportId, datum); var result = new List(); if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { foreach (DataRow row in ds.Tables[0].Rows) { result.Add(new CsoportCO { CsoportNeve = row.Field("CsoportNeve"), SzakmaTipusId = row.Field("SzakmaTipusId"), SzakmairanyTipusId = row.Field("SzakmairanyTipusId") }); } } return result; }); } public List GetTanulokSzakmajegyzeke(int tanevId, List tanuloIds, DateTime datum) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var ds = h.OsztalyCsoport().GetTanulokSzakmajegyzeke(tanevId, tanuloIds, datum); var result = new List(); if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { foreach (DataRow row in ds.Tables[0].Rows) { result.Add(new TanuloCsoportCO { NevElotagNelkul = row.Field("NevElotagNelkul"), SzakmaTipusId = row.Field("SzakmaTipusId"), SzakmairanyTipusId = row.Field("SzakmairanyTipusId") }); } } return result; }); } public IEnumerable ListOsztalyCsoportokKapcsolodoOsztalyCsoportjai(IEnumerable osztalyCsoportIds) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); var kapcsolodoOsztalyCsoportIds = new List(); foreach (var osztalyCsoportId in osztalyCsoportIds) { var kapcsolodoOsztalyCsoportDs = dal.GetKapcsolodoOsztalyCsoportok(osztalyCsoportId); kapcsolodoOsztalyCsoportIds.AddRange(kapcsolodoOsztalyCsoportDs.Tables[0].AsEnumerable().Select(r => r.Field("ID"))); } return kapcsolodoOsztalyCsoportIds.Distinct(); }); } public DataSet GetOsztalyCsoportNev(string osztalyCsoportNev, int? id) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); return dal.GetOsztalyCsoportNev(osztalyCsoportNev, id, TanevId); }); } public DateTime? GetVegzosUtolsoNapByOsztalycsoportId(string azonosito, int osztalycsoportId) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.OsztalyCsoport(); return dal.GetVegzosUtolsoNapByOsztalycsoportId(azonosito, TanevId, IntezmenyId, osztalycsoportId); }); } } }