This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,434 @@
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.Logic;
using Kreta.BusinessLogic.Utils;
using Kreta.Core;
using Kreta.Core.ConnectionType;
using Kreta.Core.Exceptions;
using Kreta.DataAccessManual;
using Kreta.DataAccessManual.Util;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using OfficeOpenXml;
namespace Kreta.BusinessLogic.Helpers
{
public class FeladatEllatasiHelyHelper : LogicBase
{
public FeladatEllatasiHelyHelper(IConnectionType connectionType) : base(connectionType) { }
public List<OktNevelesiKategoriaEnum> GetFeladatKategoriakForLogin(int aktTanevId, int? kovTanevId)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.FeladatEllatasiHelyDal();
return dal.GetFeladatKategoriakForLogin(aktTanevId, kovTanevId, IntezmenyId);
});
}
public FeladatEllatasiHelyCO GetFeladatEllatasiHelyAdatok(int ID)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var feladathely = h.FeladatEllatasiHelyDal().Get(ID);
if (feladathely != null)
{
return new FeladatEllatasiHelyCO
{
ID = feladathely.ID,
OktatasiNevelesiFeladat = feladathely.OktatasiNevelesiFeladatTipus,
MukodesiHelyID = feladathely.MukodesiHelyId,
OktatasiNevelesiFeladatNev = feladathely.OktatasiNevelesiFeladatTipus.GetDisplayName<OktatasiNevelesiFeladatEnum>(TanevId).ReplaceMultipleSpacesAndTrim(),
MukodesiHelyNev = feladathely.MukodesiHely.Nev.ReplaceMultipleSpacesAndTrim(),
KIRFeladatellatasiHelySorszama = feladathely.FeladatellatasiHelyKod
};
}
return null;
});
}
public void SaveFeladatEllatasiHelyAdatok(FeladatEllatasiHelyCO model)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
if (!model.OktatasiNevelesiFeladat.IsEntityId())
{
throw new ArgumentNullException(nameof(model.OktatasiNevelesiFeladat));
}
var dal = h.FeladatEllatasiHelyDal(GridParameters);
var ellatottFeladatDal = h.OktatasNevelesiFeladatDal();
var entity = h.FeladatEllatasiHelyDal().Get();
if (model.ID.HasValue)
{
entity = dal.Get(model.ID.Value);
if (!ellatottFeladatDal.IsAzonosKategoria(entity.OktatasiNevelesiFeladatTipus, model.OktatasiNevelesiFeladat.Value))
{
if (dal.IsMukodesiHelyNemModosithato(entity.TanevId, entity.ID))
{
throw new BlException(ErrorResource.KoznevelesiFeladatNemModosithato);
}
}
}
entity.OktatasiNevelesiFeladatTipus = model.OktatasiNevelesiFeladat.Value;
entity.MukodesiHelyId = model.MukodesiHelyID;
entity.FeladatellatasiHelyKod = model.KIRFeladatellatasiHelySorszama;
entity.TanevId = model.TanevId;
if (model.ID.HasValue == false)
{
dal.Insert(entity);
}
else
{
dal.Update(entity);
}
});
}
public void FeladatEllatasiHelyTorles(int ID)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.FeladatEllatasiHelyDal(GridParameters);
dal.Delete(ID);
});
}
public DataSet GetFeladatEllatasiHelyByMukodesiHelyID(int mukodesiHelyID)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.FeladatEllatasiHelyDal(GridParameters);
var ds = dal.GetFeladatEllatasiHelyByMukodesiHelyID(mukodesiHelyID, TanevId);
return ds;
});
}
public DataSet GetFeladatellatasiHelyByFeladatellatasiHelyNev(string feladatellatasiHelyNev)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.FeladatEllatasiHelyDal(GridParameters);
var ds = dal.GetFeladatellatasiHelyByFeladatellatasiHelyNev(feladatellatasiHelyNev, TanevId);
return ds;
});
}
public List<int> GetGetFeladatEllatasiHelyIdListByMukodesiHelyID(int mukodesiHelyId)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.FeladatEllatasiHelyDal(GridParameters);
var ds = dal.GetFeladatEllatasiHelyByMukodesiHelyID(mukodesiHelyId, TanevId);
var ret = new List<int>();
foreach (DataRow row in ds.Tables[0].Rows)
{
ret.Add(Convert.ToInt32(row["OktatasiNevelesiFeladatTipus"]));
}
return ret;
});
}
public DataSet GetFeladatellatasiHelyOsztalycsoportjai(int feladellHelyID)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.FeladatEllatasiHelyDal(GridParameters);
return dal.GetFeladatellatasiHelyOsztalycsoportjai(feladellHelyID, TanevId);
});
}
public DataSet GetFeladatellatasiHelyAlkalmazottjai(int feladellHelyID)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.FeladatEllatasiHelyDal(GridParameters);
return dal.GetFeladatellatasiHelyAlkalmazottjai(feladellHelyID, TanevId);
});
}
public DataSet GetFeladatellatasiHelyhezTartozoEvfolyamtipusokSzama(int feladHelyID)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.FeladatEllatasiHelyDal();
return dal.GetFeladatellatasiHelyhezTartozoEvfolyamtipusok(feladHelyID);
});
}
public IDictionary<string, string> GetFeladatEllatasiHelyDDl(string baseText = null, int? feladatKategoriaId = null, bool? hasKovTanev = null, int? customTanevId = null, bool forSzirStatTanulo = false)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var tanevId = customTanevId.HasValue ? customTanevId.Value : TanevId;
return LogicUtil.CreateDropdownContent(h.FeladatEllatasiHelyDal(GridParameters).GetFeladatEllatasiHelyekForkDropDown(tanevId, feladatKategoriaId: feladatKategoriaId, hasKovTanev: hasKovTanev, forSzirStatTanulo: forSzirStatTanulo), "ID", "Nev", baseText);
});
}
public List<ComboBoxListItem> GetFeladatEllatasiHelyDdlForEsl(string baseText = null)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dictionary = LogicUtil.CreateDropdownContent(h.FeladatEllatasiHelyDal(GridParameters).GetFeladatEllatasiHelyekForkDropDown(TanevId, true), "ID", "Nev", baseText);
var dropdownListItems = new List<ComboBoxListItem>();
foreach (var item in dictionary)
{
var comboBoxListItem = new ComboBoxListItem
{
Text = item.Value,
Value = item.Key
};
dropdownListItems.Add(comboBoxListItem);
}
return dropdownListItems;
});
}
public Dictionary<int, bool> GetFeladatellatasiHelyIsSzakkepzesesDictionary()
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dictionary = new Dictionary<int, bool>();
var ds = h.FeladatEllatasiHelyDal(GridParameters).GetFeladatEllatasiHelyekForkDropDown(TanevId);
if (ds.Tables[0].Rows.Count > 0)
{
var rows = ds.Tables[0].Rows;
foreach (DataRow row in rows)
{
var id = (int)row["ID"];
var isSzakkepzeses = IsSzakkepzesesOktNevFel((int)row["OktNevFel"]);
dictionary.Add(id, isSzakkepzeses);
}
}
return dictionary;
});
}
public Dictionary<int, bool> GetFeladatellatasiHelyIsNkt()
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dictionary = new Dictionary<int, bool>();
var ds = h.FeladatEllatasiHelyDal(GridParameters).GetFeladatEllatasiHelyekForkDropDown(TanevId);
if (ds.Tables[0].Rows.Count > 0)
{
var rows = ds.Tables[0].Rows;
foreach (DataRow row in rows)
{
var id = (int)row["ID"];
var isNkt = IsNKTSzakkepzesesOktNevFel((int)row["OktNevFel"]);
dictionary.Add(id, isNkt);
}
}
return dictionary;
});
}
public List<int> GetIdsBySelectedOktatasiNevelesiFeladat(int oktatasiNevelesiFeladatId)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
return h.FeladatEllatasiHelyDal(GridParameters).GetFeladatellatasiHelyIdsBySelectedOktatasiNevelesiFeladat(TanevId, oktatasiNevelesiFeladatId);
});
}
private bool IsSzakkepzesesOktNevFel(int oktNevFel)
{
return
oktNevFel == (int)OktatasiNevelesiFeladatEnum.szakkozepiskola ||
oktNevFel == (int)OktatasiNevelesiFeladatEnum.szakiskola ||
oktNevFel == (int)OktatasiNevelesiFeladatEnum.szakgimnazium ||
oktNevFel == (int)OktatasiNevelesiFeladatEnum.szakgimnazium_muveszeti_pedagogiai_kozmuvelodesi_ ||
oktNevFel == (int)OktatasiNevelesiFeladatEnum.szakgimnazium_nemzetisegi_ ||
oktNevFel == (int)OktatasiNevelesiFeladatEnum.felnottkepzes ||
oktNevFel == (int)OktatasiNevelesiFeladatEnum.felnottoktatas ||
oktNevFel == (int)OktatasiNevelesiFeladatEnum.szakkepzo_iskola ||
oktNevFel == (int)OktatasiNevelesiFeladatEnum.technikum
;
}
private bool IsNKTSzakkepzesesOktNevFel(int oktNevFel)
{
return IsSzakkepzesesOktNevFel(oktNevFel) ||
oktNevFel == (int)OktatasiNevelesiFeladatEnum.MuveszetiSzakgimnazium
;
}
public Dictionary<OsztalyJellemzoEnum, bool> GetOsztalyJellemzoi(int? osztalyId = null, int? tanulocsoportId = null)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var osztalycsoportId = osztalyId.HasValue ? osztalyId.Value : default;
if (!osztalycsoportId.IsEntityId() && tanulocsoportId.IsEntityId())
{
osztalycsoportId = h.TanuloCsoport().Get(tanulocsoportId.Value).OsztalyCsoportId;
}
var result = new Dictionary<OsztalyJellemzoEnum, bool>();
var ds = new DataSet();
if (osztalycsoportId.IsEntityId())
{
var feladHelyId = new OsztalyCsoportHelper(new DalHandlerConnectionType(ConnectionType, h)).GetFeladatEllatasiHelyByOsztalyId(osztalycsoportId);
ds = h.FeladatEllatasiHelyDal(GridParameters).GetFeladatEllatasiHelyOktatasiNevelesiFeladatok(feladHelyId);
}
else
{
ds = h.FeladatEllatasiHelyDal(GridParameters).GetFeladatEllatasiHelyekForkDropDown(TanevId);
}
result.Add(OsztalyJellemzoEnum.IsSzakkepzeses, IsSzakkepzesesDS(ds));
result.Add(OsztalyJellemzoEnum.IsNKTSzakkepzeses, IsNKTSzakkepzesesDS(ds));
return result;
});
}
public bool IsGimnazium(int osztalyId, int oktatasiNevelesiFeladatId)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var feladatEllatasiHelyId = new OsztalyHelper(new DalHandlerConnectionType(ConnectionType, h)).GetClassById(osztalyId).FeladatEllatasiHelyId;
var gimnaziumFeladHelyId = h.FeladatEllatasiHelyDal(GridParameters).GetFeladatellatasiHelyIdsBySelectedOktatasiNevelesiFeladat(TanevId, oktatasiNevelesiFeladatId);
return gimnaziumFeladHelyId.Contains(feladatEllatasiHelyId);
});
}
public bool IsSzakkepzeses(int id)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var ds = h.FeladatEllatasiHelyDal(GridParameters).GetFeladatEllatasiHelyOktatasiNevelesiFeladatok(id);
return IsSzakkepzesesDS(ds);
});
}
private bool IsSzakkepzesesDS(DataSet ds)
{
if (ds.Tables[0].Rows.Count > 0)
{
var rows = ds.Tables[0].Rows;
foreach (DataRow row in rows)
{
if (IsSzakkepzesesOktNevFel((int)row["OktNevFel"]))
{
return true;
}
}
}
return false;
}
private bool IsNKTSzakkepzesesDS(DataSet ds)
{
if (ds.Tables[0].Rows.Count > 0)
{
var rows = ds.Tables[0].Rows;
foreach (DataRow row in rows)
{
if (IsNKTSzakkepzesesOktNevFel((int)row["OktNevFel"]))
{
return true;
}
}
}
return false;
}
#region Export
public byte[] GetMukodesiHelyekAdataiExcelExport()
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.FeladatEllatasiHelyDal();
var dataTable = dal.GetMukodesiHelyekAdataiExcelExport(TanevId).Tables[0];
using (var stream = new MemoryStream())
{
using (var excel = new ExcelPackage(stream))
{
var workSheet = excel.Workbook.Worksheets.Add(IntezmenyResource.MukodesiHelyekAdatai);
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.ToArray();
}
});
}
#endregion
public int GetMukodesiHelyIdByFeladatellatasiHelyId(int feladatellatasiHelyId)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var feladatellatasiHely = h.FeladatEllatasiHelyDal().Get(feladatellatasiHelyId);
var result = feladatellatasiHely.MukodesiHelyId;
return result;
});
}
public int GetFeladatKategoriaId(int feladatEllatasiHelyId)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
return h.FeladatEllatasiHelyDal().GetFeladatKategoriaId(feladatEllatasiHelyId);
});
}
public bool IsAzonosKategoria(int oldFeladhelyId, int newFeladhelyId)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
return h.FeladatEllatasiHelyDal().IsAzonosKategoria(oldFeladhelyId, newFeladhelyId);
});
}
public List<OktNevelesiKategoriaEnum> GetFeladatKategoriak()
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
return h.FeladatEllatasiHelyDal().GetFeladatKategoriak(TanevId, IntezmenyId).Cast<OktNevelesiKategoriaEnum>().ToList();
});
}
public int GetKovTanevIdByAktTanevId(int id)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var fDal = h.FeladatEllatasiHelyDal();
return fDal.GetKovTanevIdByAktTanevId(id);
});
}
}
}