kreta/Kreta.BusinessLogic/Helpers/OsztalyCsoportHelper.cs
2024-03-13 00:33:46 +01:00

1336 lines
63 KiB
C#

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<string, string> GetOsztalyCsoportForDDL(IList<string> 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<ComboBoxListItem> 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<ComboBoxListItem> 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<ExtraDataComboBoxListItem> GetOsztalyCsoportByFelhasznaloIdForDropDownList()
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var ds = h.OsztalyCsoport().GetOsztalyCsoportokGroupedByKapcsolodas(FelhasznaloId);
var nemTanoraiCeluCsoportTipusok = new List<NemTanoraiCeluCsoportTipusDao>();
var isNemTanoraiCeluCsoportokErtekelesEnabled = new SystemSettingsHelper(new DalHandlerConnectionType(ConnectionType, h)).GetSystemSettingValue<bool>(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<OsztalyCsoportCsoportositasEnum>(TanevId);
var csoportTipusId = dr.Field<int?>("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<ExtraDataComboBoxListItem> GetOsztalyCsoportByFoglalkozasForDropDownList()
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var nemTanoraiCeluCsoportTipusok = new List<NemTanoraiCeluCsoportTipusDao>();
var isNemTanoraiCeluCsoportokErtekelesEnabled = new SystemSettingsHelper(new DalHandlerConnectionType(ConnectionType, h)).GetSystemSettingValue<bool>(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<int?>("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<ComboBoxListItem> 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<ComboBoxListItem> GetOsztalyCsoportokForFeljegyzesek()
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var ds = h.OsztalyCsoport().GetOsztalyCsoportokForFeljegyzesek(FelhasznaloId);
var itemList = GetOsztalyCsoportForDropDownList(ds);
return itemList;
});
}
public IEnumerable<ExtraDataComboBoxListItem> GetOsztalyCsoportForDropDownList(int? feladatKategoriaId)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var ds = h.OsztalyCsoport().GetOsztalyCsoportokGrouped(feladatKategoriaId);
var nemTanoraiCeluCsoportTipusok = new List<NemTanoraiCeluCsoportTipusDao>();
var isNemTanoraiCeluCsoportokErtekelesEnabled = new SystemSettingsHelper(new DalHandlerConnectionType(ConnectionType, h)).GetSystemSettingValue<bool>(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<OsztalyCsoportCsoportositasEnum>(TanevId);
var csoportTipusId = dr.Field<int?>("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<ComboBoxListItem> GetOsztalyCsoportForDropDownList(DataSet ds)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
dr["Tipus"] = SDAConvert.ToInt32(dr["Tipus"]).GetDisplayName<OsztalyCsoportCsoportositasEnum>(TanevId);
}
return LogicUtil.CreateMvcGroupedSelectListItem(ds, "ID", "Nev", "Tipus");
}
public List<ComboBoxListItem> 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<int?>("CsoportTipusa") == (int)CsoportTipusEnum.dualis_kepzesi_csoport);
}
else
{
dataRow = dataRow.Where(x => x.Field<int?>("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<ComboBoxListItem> 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<ComboBoxListItem> 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<ComboBoxListItem> 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<string, string> GetKapcsolodoOsztalyCsoportokForDropDownList(OktNevelesiKategoriaEnum? feladatKategoriaId = null)
{
var dataSet = GetKapcsolodoOsztalyCsoportDataSet(true, true, false, feladatKategoriaId);
var result = LogicUtil.CreateDropdownContent(dataSet, "ID", "Nev", sort: false);
return result;
}
public IDictionary<string, string> 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<object> GetOsztalyCsoportEvfolyama(int id)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var ocs = h.OsztalyCsoport().Get(id);
return new List<object> { 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<int, string> 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<int, string>();
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<OsztalyCsoportItemCo> GetOsztalyCsoportCoList()
{
var dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.OsztalyCsoport().GetOsztalyCsoportDataSet(TanevId));
var result = new List<OsztalyCsoportItemCo>();
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<string, string> munkarendDict, string newColumnName)
{
var count = row.Field<int>($"{munkarendColumnPrefix}Count");
var munkarend = row.Field<int?>($"{munkarendColumnPrefix}Max");
var csoportFeladatkategoriaId = row.Table.Columns.Contains("csoportFeladatkategoriaId") ? row.Field<int?>("csoportFeladatkategoriaId") : null;
if (csoportFeladatkategoriaId.HasValue && csoportFeladatkategoriaId == (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas)
{
row[newColumnName] = row.Field<string>("AmiMunkarend");
}
else
{
if (count == 0 || !munkarend.HasValue || munkarend == 0)
{
row[newColumnName] = "-";
}
else if (count == 1)
{
row[newColumnName] = munkarendDict[row.Field<int>($"{munkarendColumnPrefix}Max").ToString()];
}
else
{
row[newColumnName] = OsztalyCsoportResource.TobbMunkarend;
}
}
}
private void SetJegyzekColumn(DataRow row, string jegyzekColumnPrefix, IDictionary<string, string> jegyzekDict, int tobbJegyzekId, string newColumnName, string tobbJegyzekSzoveges = null)
{
var count = row.Field<int>($"{jegyzekColumnPrefix}Count");
if (count == 0)
{
row[newColumnName] = "-";
}
else if (count == 1)
{
row[newColumnName] = jegyzekDict[row.Field<int>($"{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<string, string> 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<CsoportCO> 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<int> 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<DateTime?>(RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_kezd_datum);
szakGyakVegDatum = systemSettingsHelper.GetSystemSettingValue<DateTime?>(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<int, string> GetOsztalyTanuloinakGondviseloi(int osztalyId)
{
var result = new Dictionary<int, string>();
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<int>("GondviseloId"), dataRow.Field<string>("GondviseloNev"));
}
return result;
}
public List<int> GetOsztalyokByMuveszetiAg(MuveszetiAgEnum muveszetiAg)
{
var ds = Dal.CustomConnection.Run(ConnectionType, (h) => h.OsztalyCsoport().GetOsztalyokByMuveszetiAg(muveszetiAg, TanevId));
var result = new List<int>();
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<int>("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<int>("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<int>("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<int>("OsztalybontottOsztalyanakEvfolyama") != evfolyamTipusa).Select(x => x.Field<string>("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<string>("OsztalybontottOsztalyanakGyogypedagogiaiLogopediai")) != gyogypedagogiaiLogopediai).Select(x => x.Field<string>("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<string>("OsztalybontottOsztalyanakTechnikai")) != technikaiCsoport).Select(x => x.Field<string>("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<string>("CsoportNev")).ToArray());
return autoEgyeniCsoportok;
}
public List<OsztalyCO> GetLEPOszlyCspoortByTanevAndFelhasznalo(int felhasznaloId)
{
var osztalyCsoportok = new List<OsztalyCO>();
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<DataRow>().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<int>("OsztalybontottOsztalyanakFeladatellatasiHelye") != feladatellatasiHelyId).Select(x => x.Field<string>("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<string>("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<CsoportCO> GetCsoportTanuloinakSzakmajegyzeke(int csoportId, DateTime datum)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var ds = h.OsztalyCsoport().GetCsoportTanuloinakSzakmajegyzeke(TanevId, csoportId, datum);
var result = new List<CsoportCO>();
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<string>("CsoportNeve"),
SzakmaTipusId = row.Field<int?>("SzakmaTipusId"),
SzakmairanyTipusId = row.Field<int?>("SzakmairanyTipusId")
});
}
}
return result;
});
}
public List<TanuloCsoportCO> GetTanulokSzakmajegyzeke(int tanevId, List<int> tanuloIds, DateTime datum)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var ds = h.OsztalyCsoport().GetTanulokSzakmajegyzeke(tanevId, tanuloIds, datum);
var result = new List<TanuloCsoportCO>();
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<string>("NevElotagNelkul"),
SzakmaTipusId = row.Field<int?>("SzakmaTipusId"),
SzakmairanyTipusId = row.Field<int?>("SzakmairanyTipusId")
});
}
}
return result;
});
}
public IEnumerable<int> ListOsztalyCsoportokKapcsolodoOsztalyCsoportjai(IEnumerable<int> osztalyCsoportIds)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.OsztalyCsoport();
var kapcsolodoOsztalyCsoportIds = new List<int>();
foreach (var osztalyCsoportId in osztalyCsoportIds)
{
var kapcsolodoOsztalyCsoportDs = dal.GetKapcsolodoOsztalyCsoportok(osztalyCsoportId);
kapcsolodoOsztalyCsoportIds.AddRange(kapcsolodoOsztalyCsoportDs.Tables[0].AsEnumerable().Select(r => r.Field<int>("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);
});
}
}
}