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

1076 lines
46 KiB
C#

using System;
using System.Data;
using System.Linq;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.Core.ConnectionType;
using Kreta.Core.Validation.Exceptions;
using Kreta.DataAccessManual;
using Kreta.DataAccessManual.Interfaces;
using Kreta.Enums;
using Kreta.Framework.Util;
using Kreta.KretaServer.Exceptions;
using Kreta.Resources;
namespace Kreta.BusinessLogic.Helpers
{
public class VegzettsegHelper : LogicBase
{
public VegzettsegHelper(IConnectionType connectionType) : base(connectionType) { }
public DataSet GetKKMainGridVegzettsegek(int tanarId)
{
var ds = Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanarDal(GridParameters);
return dal.GetKKMainGridVegzettseg(tanarId);
});
var resultDs = new DataSet();
var dt = resultDs.Tables.Add();
dt.Columns.Add("ID", typeof(string));
dt.Columns.Add("EntityID", typeof(string));
dt.Columns.Add("Kepesites", typeof(string));
dt.Columns.Add("KepesitesTipusId", typeof(string));
dt.Columns.Add("KepesitesTipus", typeof(string));
dt.Columns.Add("Vegzettseg", typeof(string));
dt.Columns.Add("MuveszetiAg", typeof(string));
dt.Columns.Add("Egyeb", typeof(string));
dt.Columns.Add("AlkalmazottId", typeof(string));
dt.Columns.Add("Terulet", typeof(string));
var kepesitesRow = ds.Tables[0].Select("KepesitesTipusId is not null");
var tanarRows = ds.Tables[0].Select("KepesitesJellegeTipus = " + (int)KKKepesitesJellTipusEnum.Tanar);
var tanarAmiRows = ds.Tables[0].Select("KepesitesJellegeTipus = " + (int)KKKepesitesJellTipusEnum.TanarAMI);
var tanitoRows = ds.Tables[0].Select("KepesitesJellegeTipus = " + (int)KKKepesitesJellTipusEnum.Tanito);
var gyogyPedRows = ds.Tables[0].Select("KepesitesJellegeTipus = " + (int)KKKepesitesJellTipusEnum.Gyogypedagogus);
var kepesitesText = string.Empty;
var kepesites = kepesitesRow.FirstOrDefault();
if (kepesites == null)
{
return resultDs;
}
kepesitesText = SDAConvert.ToString(kepesites["KepesitesTipusId_DNAME"]);
foreach (DataRow row in tanarRows.OrderBy(a => a["EntityID"]))
{
DataRow newRow = dt.NewRow();
newRow["ID"] = row["ID"];
newRow["EntityID"] = row["EntityID"];
newRow["Kepesites"] = kepesitesText;
newRow["KepesitesTipusId"] = SDAConvert.ToString(row["KepesitesJellegeTipus"]);
newRow["KepesitesTipus"] = SDAConvert.ToString(row["KepesitesJellegeTipus_DNAME"]);
newRow["Vegzettseg"] = SDAConvert.ToString(row["VegzettsegTipusId_DNAME"]);
newRow["MuveszetiAg"] = null;
newRow["Egyeb"] = SDAConvert.ToString(row["Egyeb"]);
newRow["AlkalmazottId"] = tanarId;
newRow["Terulet"] = SDAConvert.ToString(row["TeruletId_DNAME"]);
dt.Rows.Add(newRow);
}
foreach (DataRow row in tanarAmiRows.OrderBy(a => a["EntityID"]))
{
var myArray = new string[] { SDAConvert.ToString(row["TancmuveszetiAg_DNAME"]), SDAConvert.ToString(row["ZenemuveszetiAg_DNAME"]),
SDAConvert.ToString(row["KepzomuveszetiAg_DNAME"]),SDAConvert.ToString(row["SzinmuveszetiAg_DNAME"])};
DataRow newRow = dt.NewRow();
newRow["ID"] = row["ID"];
newRow["EntityID"] = row["EntityID"];
newRow["Kepesites"] = kepesitesText;
newRow["KepesitesTipusId"] = SDAConvert.ToString(row["KepesitesJellegeTipus"]);
newRow["KepesitesTipus"] = SDAConvert.ToString(row["KepesitesJellegeTipus_DNAME"]);
newRow["Vegzettseg"] = SDAConvert.ToString(row["VegzettsegTipusId_DNAME"]);
newRow["MuveszetiAg"] = string.Join(", ", myArray.Where(s => !string.IsNullOrWhiteSpace(s)));
newRow["Egyeb"] = SDAConvert.ToString(row["Egyeb"]);
newRow["AlkalmazottId"] = tanarId;
newRow["Terulet"] = SDAConvert.ToString(row["TeruletId_DNAME"]);
dt.Rows.Add(newRow);
}
foreach (DataRow row in tanitoRows.OrderBy(a => a["EntityID"]))
{
DataRow newRow = dt.NewRow();
newRow["ID"] = row["ID"];
newRow["EntityID"] = row["EntityID"];
newRow["Kepesites"] = kepesitesText;
newRow["KepesitesTipusId"] = SDAConvert.ToString(row["KepesitesJellegeTipus"]);
newRow["KepesitesTipus"] = SDAConvert.ToString(row["KepesitesJellegeTipus_DNAME"]);
newRow["Vegzettseg"] = SDAConvert.ToString(row["VegzettsegTipusId_DNAME"]);
newRow["MuveszetiAg"] = null;
newRow["Egyeb"] = SDAConvert.ToString(row["Egyeb"]);
newRow["AlkalmazottId"] = tanarId;
newRow["Terulet"] = SDAConvert.ToString(row["TeruletId_DNAME"]);
dt.Rows.Add(newRow);
}
foreach (DataRow row in gyogyPedRows.OrderBy(a => a["EntityID"]))
{
DataRow newRow = dt.NewRow();
newRow["ID"] = row["ID"];
newRow["EntityID"] = row["EntityID"];
newRow["Kepesites"] = kepesitesText;
newRow["KepesitesTipusId"] = SDAConvert.ToString(row["KepesitesJellegeTipus"]);
newRow["KepesitesTipus"] = SDAConvert.ToString(row["KepesitesJellegeTipus_DNAME"]);
newRow["Vegzettseg"] = SDAConvert.ToString(row["VegzettsegTipusId_DNAME"]);
newRow["MuveszetiAg"] = null;
newRow["Egyeb"] = SDAConvert.ToString(row["Egyeb"]);
newRow["AlkalmazottId"] = tanarId;
newRow["Terulet"] = SDAConvert.ToString(row["TeruletId_DNAME"]);
dt.Rows.Add(newRow);
}
if (resultDs.Tables[0].Rows.Count < 1)
{
DataRow newRow = dt.NewRow();
newRow["ID"] = kepesites["ID"];
newRow["EntityID"] = kepesites["EntityID"];
newRow["Kepesites"] = kepesitesText;
newRow["KepesitesTipusId"] = null;
newRow["KepesitesTipus"] = null;
newRow["Vegzettseg"] = null;
newRow["MuveszetiAg"] = null;
newRow["Egyeb"] = null;
newRow["AlkalmazottId"] = tanarId;
newRow["Terulet"] = null;
dt.Rows.Add(newRow);
}
resultDs.Tables[0].ExtendedProperties.Add("RowCount", resultDs.Tables[0].Rows.Count);
return resultDs;
}
public DataSet GetKKTanarTerulet(int entityId)
{
var resultDs = GetTeruletDataSetVaz();
var dt = resultDs.Tables[0];
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.KKVegzettsegDal();
var entity = dal.GetKKTanarVegzettseg(entityId);
foreach (var item in entity.KKTantargyKategoria.Where(a => !a.Torolt))
{
DataRow newRow = dt.NewRow();
newRow["ID"] = Guid.NewGuid();
newRow["EntityID"] = item.ID;
newRow["Terulet"] = item.KKSzakTipusId.Value.GetItemNameFromCache(TanevId);
dt.Rows.Add(newRow);
}
});
resultDs.Tables[0].ExtendedProperties.Add("RowCount", resultDs.Tables[0].Rows.Count);
return resultDs;
}
public DataSet GetKKAmiTanarTerulet(int entityId)
{
var resultDs = GetTeruletDataSetVaz();
var dt = resultDs.Tables[0];
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.KKVegzettsegDal();
var entity = dal.GetKKAMIVegzettseg(entityId);
var elektroakusztikusZene = ((int)KKAMIZenemuvKatTipusEnum.ElektroakusztikusZene).GetItemNameFromCache(TanevId);
foreach (var item in entity.KKElektroakuZene.Where(a => !a.Torolt))
{
DataRow newRow = dt.NewRow();
newRow["ID"] = Guid.NewGuid();
newRow["EntityID"] = item.ID;
newRow["Terulet"] = elektroakusztikusZene + ": " + item.ElektrakuTipusId.Value.GetItemNameFromCache(TanevId);
dt.Rows.Add(newRow);
}
var jazzZene = ((int)KKAMIZenemuvKatTipusEnum.JazzZene).GetItemNameFromCache(TanevId);
foreach (var item in entity.KKJazzZene.Where(a => !a.Torolt))
{
DataRow newRow = dt.NewRow();
newRow["ID"] = Guid.NewGuid();
newRow["EntityID"] = item.ID;
newRow["Terulet"] = jazzZene + ": " + item.JazzZeneTipusId.Value.GetItemNameFromCache(TanevId);
dt.Rows.Add(newRow);
}
var klasszikusZene = ((int)KKAMIZenemuvKatTipusEnum.KlasszikusZene).GetItemNameFromCache(TanevId);
foreach (var item in entity.KKKlasszikusZene.Where(a => !a.Torolt))
{
DataRow newRow = dt.NewRow();
newRow["ID"] = Guid.NewGuid();
newRow["EntityID"] = item.ID;
newRow["Terulet"] = klasszikusZene + ": " + item.KlasszukusZeneTipusId.Value.GetItemNameFromCache(TanevId);
dt.Rows.Add(newRow);
}
var nepzene = ((int)KKAMIZenemuvKatTipusEnum.Nepzene).GetItemNameFromCache(TanevId);
foreach (var item in entity.KKNepzene.Where(a => !a.Torolt))
{
DataRow newRow = dt.NewRow();
newRow["ID"] = Guid.NewGuid();
newRow["EntityID"] = item.ID;
newRow["Terulet"] = nepzene + ": " + item.NepzeneTipusId.Value.GetItemNameFromCache(TanevId);
dt.Rows.Add(newRow);
}
});
resultDs.Tables[0].ExtendedProperties.Add("RowCount", resultDs.Tables[0].Rows.Count);
return resultDs;
}
public DataSet GetKKKepesitesTerulet()
{
var resultDs = GetTeruletDataSetVaz();
resultDs.Tables[0].ExtendedProperties.Add("RowCount", resultDs.Tables[0].Rows.Count);
return resultDs;
}
public DataSet GetKKTanitoTerulet(int alkalmazottId)
{
var resultDs = GetTeruletDataSetVaz();
var dt = resultDs.Tables[0];
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.Alkalmazott();
var entity = dal.Get(alkalmazottId);
foreach (var item in entity.KKTanitoVezgettseg.Where(a => !a.Torolt))
{
DataRow newRow = dt.NewRow();
newRow["ID"] = Guid.NewGuid();
newRow["EntityID"] = item.ID;
newRow["Terulet"] = item.KKTaniotoMuvTerTipusId.Value.GetItemNameFromCache(TanevId);
dt.Rows.Add(newRow);
}
});
resultDs.Tables[0].ExtendedProperties.Add("RowCount", resultDs.Tables[0].Rows.Count);
return resultDs;
}
public DataSet GetKKGyogypedTerulet(int alkalmazottId)
{
var resultDs = GetTeruletDataSetVaz();
var dt = resultDs.Tables[0];
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.Alkalmazott();
var entity = dal.Get(alkalmazottId);
foreach (var item in entity.KKGyogypedVegzettseg.Where(a => !a.Torolt))
{
DataRow newRow = dt.NewRow();
newRow["ID"] = Guid.NewGuid();
newRow["EntityID"] = item.ID;
newRow["Terulet"] = item.KKGyogypedTerTipusId.Value.GetItemNameFromCache(TanevId);
dt.Rows.Add(newRow);
}
});
resultDs.Tables[0].ExtendedProperties.Add("RowCount", resultDs.Tables[0].Rows.Count);
return resultDs;
}
public KKTanarVegzettsegCO GetTanarVegzettseg(int entityId)
{
var co = new KKTanarVegzettsegCO();
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.KKVegzettsegDal();
var entity = dal.GetKKTanarVegzettseg(entityId);
co.EntityId = entity.ID;
co.AlkalmazottId = entity.AlkalmazottId;
co.Egyeb = entity.Egyeb;
co.TanariVegzettsegTipusId = entity.KKTanarVegzettsegId;
foreach (var item in entity.KKTantargyKategoria.Where(a => !a.Torolt))
{
co.TantargyKategoriaIds.Add(item.KKSzakTipusId.Value);
}
});
return co;
}
public KKAMITanarVegzettsegCo GetAmiTanarVegzettseg(int entityId)
{
var co = new KKAMITanarVegzettsegCo();
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.KKVegzettsegDal();
var entity = dal.GetKKAMIVegzettseg(entityId);
co.EntityId = entity.ID;
co.AlkalmazottId = entity.AlkalmazottId;
co.AMITanariVegzettsegTipusId = entity.KKAMIVegzettsegTipusId;
co.ZenemuveszetiTerulet = entity.KKTerulet.Any(t => t.AMITeruletTipusId == (int)KKAMITeruletTipusEnum.ZenemuveszetiAg && !t.Torolt);
co.TancmuveszetiTerulet = entity.KKTerulet.Any(t => t.AMITeruletTipusId == (int)KKAMITeruletTipusEnum.TancmuveszetiAg && !t.Torolt);
co.KepzoEsIparMuveszetiTerulet = entity.KKTerulet.Any(t => t.AMITeruletTipusId == (int)KKAMITeruletTipusEnum.KepzoEsIparmuveszetiAg && !t.Torolt);
co.SzinEsBabMuveszetiTerulet = entity.KKTerulet.Any(t => t.AMITeruletTipusId == (int)KKAMITeruletTipusEnum.SzinEsBabmuveszetiAg && !t.Torolt);
foreach (var item in entity.KKElektroakuZene.Where(a => !a.Torolt))
{
co.ElektroAkusztikusZeneIds.Add(item.ElektrakuTipusId.Value);
}
foreach (var item in entity.KKJazzZene.Where(a => !a.Torolt))
{
co.JazzZeneIds.Add(item.JazzZeneTipusId.Value);
}
foreach (var item in entity.KKNepzene.Where(a => !a.Torolt))
{
co.NepZeneIds.Add(item.NepzeneTipusId.Value);
}
foreach (var item in entity.KKKlasszikusZene.Where(a => !a.Torolt))
{
co.KlasszikusZeneIds.Add(item.KlasszukusZeneTipusId.Value);
}
});
return co;
}
public KKTanitoVegzettsegCo GetTanitoVegzettseg(int alkalmazottId)
{
var co = new KKTanitoVegzettsegCo();
Dal.CustomConnection.Run(ConnectionType, h =>
{
var alkalmazottDal = h.Alkalmazott();
var alkalmazottEntity = alkalmazottDal.Get(alkalmazottId);
co.AlkalmazottId = alkalmazottId;
foreach (var item in alkalmazottEntity.KKTanitoVezgettseg.Where(a => !a.Torolt))
{
co.MuveltsegiTeruletIds.Add(item.KKTaniotoMuvTerTipusId.Value);
}
});
return co;
}
public KKGyogyPedagogusVegzettsegCo GetGyogypedagogusVegzettseg(int alkalmazottId)
{
var co = new KKGyogyPedagogusVegzettsegCo();
Dal.CustomConnection.Run(ConnectionType, h =>
{
var alkalmazottDal = h.Alkalmazott();
var alkalmazottEntity = alkalmazottDal.Get(alkalmazottId);
co.AlkalmazottId = alkalmazottId;
foreach (var item in alkalmazottEntity.KKGyogypedVegzettseg.Where(a => !a.Torolt))
{
co.GyogypedagogusTeruletIds.Add(item.KKGyogypedTerTipusId.Value);
}
});
return co;
}
public void UpdateTanarVegzettseg(KKTanarVegzettsegCO co, int? kovTanevId)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
var kkVegzettsegDal = h.KKVegzettsegDal();
var kkTanarVegzettsegEntity = kkVegzettsegDal.GetKKTanarVegzettseg(co.EntityId.Value);
kkTanarVegzettsegEntity.Egyeb = co.Egyeb;
kkTanarVegzettsegEntity.KKTanarVegzettsegId = co.TanariVegzettsegTipusId;
var tanarVegzettsegek = kkTanarVegzettsegEntity.KKTantargyKategoria.Where(a => !a.Torolt);
var torlendok = tanarVegzettsegek.Where(p => !co.TantargyKategoriaIds.Any(p2 => p2 == p.KKSzakTipusId));
var insertalandok = co.TantargyKategoriaIds.Where(p => !tanarVegzettsegek.Any(p2 => p2.KKSzakTipusId == p));
foreach (var item in torlendok)
{
kkVegzettsegDal.DeleteKKTantargyKategoria(item.ID);
}
foreach (var item in insertalandok)
{
var kkTantargyKategoriaEntity = kkVegzettsegDal.GetKKTantargyKategoria();
kkTantargyKategoriaEntity.KKTanarVegzettsegId = kkTanarVegzettsegEntity.ID;
kkTantargyKategoriaEntity.KKSzakTipusId = item;
kkTantargyKategoriaEntity.TanevId = TanevId;
kkVegzettsegDal.Insert(kkTantargyKategoriaEntity);
}
kkVegzettsegDal.FullUpdate(kkTanarVegzettsegEntity);
if (HasKovTanevAndNotSelected(kovTanevId, TanevId))
{
h.Alkalmazott().FollowUpAlkalmazottVegzettsegKK(IntezmenyId, TanevId, kovTanevId.Value, co.AlkalmazottId);
}
});
}
private bool HasKovTanevAndNotSelected(int? kovTanevId, int selectedTanevId)
{
return kovTanevId.HasValue && kovTanevId != selectedTanevId;
}
public void UpdateAMITanarVegzettseg(KKAMITanarVegzettsegCo co, int? kovTanevId)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
var kkVegzettsegDal = h.KKVegzettsegDal();
var kkAMIVegzettsegEntity = kkVegzettsegDal.GetKKAMIVegzettseg(co.EntityId.Value);
kkAMIVegzettsegEntity.KKAMIVegzettsegTipusId = co.AMITanariVegzettsegTipusId;
kkVegzettsegDal.FullUpdate(kkAMIVegzettsegEntity);
if (co.ZenemuveszetiTerulet)
{
InsertTerulet(kkVegzettsegDal, KKAMITeruletTipusEnum.ZenemuveszetiAg, kkAMIVegzettsegEntity.ID, h, kovTanevId);
var elektoZeneList = kkAMIVegzettsegEntity.KKElektroakuZene.Where(a => !a.Torolt);
var elektotorlendok = elektoZeneList.Where(p => !co.ElektroAkusztikusZeneIds.Any(p2 => p2 == p.ElektrakuTipusId));
var elektoinsertalandok = co.ElektroAkusztikusZeneIds.Where(p => !elektoZeneList.Any(p2 => p2.ElektrakuTipusId == p));
foreach (var item in elektotorlendok)
{
kkVegzettsegDal.DeleteKKElektroakuZene(item.ID);
}
foreach (var item in elektoinsertalandok)
{
var kkElektroakuZeneEntity = kkVegzettsegDal.GetKKElektroakuZene();
kkElektroakuZeneEntity.KKAMIVegzettsegId = kkAMIVegzettsegEntity.ID;
kkElektroakuZeneEntity.ElektrakuTipusId = item;
kkElektroakuZeneEntity.TanevId = TanevId;
kkVegzettsegDal.Insert(kkElektroakuZeneEntity);
}
var jazzZeneList = kkAMIVegzettsegEntity.KKJazzZene.Where(a => !a.Torolt);
var jazzTorlendok = jazzZeneList.Where(p => !co.JazzZeneIds.Any(p2 => p2 == p.JazzZeneTipusId));
var jazzInsertalandok = co.JazzZeneIds.Where(p => !jazzZeneList.Any(p2 => p2.JazzZeneTipusId == p));
foreach (var item in jazzTorlendok)
{
kkVegzettsegDal.DeleteKKJazzZene(item.ID);
}
foreach (var item in jazzInsertalandok)
{
var JazzZeneEntity = kkVegzettsegDal.GetKKJazzZene();
JazzZeneEntity.KKAMIVegzettsegId = kkAMIVegzettsegEntity.ID;
JazzZeneEntity.JazzZeneTipusId = item;
JazzZeneEntity.TanevId = TanevId;
kkVegzettsegDal.Insert(JazzZeneEntity);
}
var nepZeneList = kkAMIVegzettsegEntity.KKNepzene.Where(a => !a.Torolt);
var nepTorlendok = nepZeneList.Where(p => !co.NepZeneIds.Any(p2 => p2 == p.NepzeneTipusId));
var nepInsertalandok = co.NepZeneIds.Where(p => !nepZeneList.Any(p2 => p2.NepzeneTipusId == p));
foreach (var item in nepTorlendok)
{
kkVegzettsegDal.DeleteKKNepzene(item.ID);
}
foreach (var item in nepInsertalandok)
{
var kkNepzeneEntity = kkVegzettsegDal.GetKKNepzene();
kkNepzeneEntity.KKAMIVegzettsegId = kkAMIVegzettsegEntity.ID;
kkNepzeneEntity.NepzeneTipusId = item;
kkNepzeneEntity.TanevId = TanevId;
kkVegzettsegDal.Insert(kkNepzeneEntity);
}
var kalsszikZeneList = kkAMIVegzettsegEntity.KKKlasszikusZene.Where(a => !a.Torolt);
var kalsszikTorlendok = kalsszikZeneList.Where(p => !co.KlasszikusZeneIds.Any(p2 => p2 == p.KlasszukusZeneTipusId));
var kalsszikInsertalandok = co.KlasszikusZeneIds.Where(p => !kalsszikZeneList.Any(p2 => p2.KlasszukusZeneTipusId == p));
foreach (var item in kalsszikTorlendok)
{
kkVegzettsegDal.DeleteKKKlasszikusZene(item.ID);
}
foreach (var item in kalsszikInsertalandok)
{
var klasszikusZeneEntity = kkVegzettsegDal.GetKKKlasszikusZene();
klasszikusZeneEntity.KKAMIVegzettsegId = kkAMIVegzettsegEntity.ID;
klasszikusZeneEntity.KlasszukusZeneTipusId = item;
klasszikusZeneEntity.TanevId = TanevId;
kkVegzettsegDal.Insert(klasszikusZeneEntity);
}
}
else
{
var terulet = kkAMIVegzettsegEntity.KKTerulet.FirstOrDefault(t => t.AMITeruletTipusId == (int)KKAMITeruletTipusEnum.ZenemuveszetiAg && !t.Torolt);
if (terulet != null)
{
foreach (var item in kkAMIVegzettsegEntity.KKElektroakuZene)
{
kkVegzettsegDal.DeleteKKElektroakuZene(item.ID);
}
foreach (var item in kkAMIVegzettsegEntity.KKKlasszikusZene)
{
kkVegzettsegDal.DeleteKKKlasszikusZene(item.ID);
}
foreach (var item in kkAMIVegzettsegEntity.KKNepzene)
{
kkVegzettsegDal.DeleteKKNepzene(item.ID);
}
foreach (var item in kkAMIVegzettsegEntity.KKJazzZene)
{
kkVegzettsegDal.DeleteKKJazzZene(item.ID);
}
kkVegzettsegDal.DeleteKKTerulet(terulet.ID);
}
}
if (co.TancmuveszetiTerulet)
{
InsertTerulet(kkVegzettsegDal, KKAMITeruletTipusEnum.TancmuveszetiAg, kkAMIVegzettsegEntity.ID, h, kovTanevId);
}
else
{
var terulet = kkAMIVegzettsegEntity.KKTerulet.FirstOrDefault(t => t.AMITeruletTipusId == (int)KKAMITeruletTipusEnum.TancmuveszetiAg && !t.Torolt);
if (terulet != null)
{
kkVegzettsegDal.DeleteKKTerulet(terulet.ID);
}
}
if (co.KepzoEsIparMuveszetiTerulet)
{
InsertTerulet(kkVegzettsegDal, KKAMITeruletTipusEnum.KepzoEsIparmuveszetiAg, kkAMIVegzettsegEntity.ID, h, kovTanevId);
}
else
{
var terulet = kkAMIVegzettsegEntity.KKTerulet.FirstOrDefault(t => t.AMITeruletTipusId == (int)KKAMITeruletTipusEnum.KepzoEsIparmuveszetiAg && !t.Torolt);
if (terulet != null)
{
kkVegzettsegDal.DeleteKKTerulet(terulet.ID);
}
}
if (co.SzinEsBabMuveszetiTerulet)
{
InsertTerulet(kkVegzettsegDal, KKAMITeruletTipusEnum.SzinEsBabmuveszetiAg, kkAMIVegzettsegEntity.ID, h, kovTanevId);
}
else
{
var terulet = kkAMIVegzettsegEntity.KKTerulet.FirstOrDefault(t => t.AMITeruletTipusId == (int)KKAMITeruletTipusEnum.SzinEsBabmuveszetiAg && !t.Torolt);
if (terulet != null)
{
kkVegzettsegDal.DeleteKKTerulet(terulet.ID);
}
}
if (HasKovTanevAndNotSelected(kovTanevId, TanevId))
{
h.Alkalmazott().FollowUpAlkalmazottVegzettsegKK(IntezmenyId, TanevId, kovTanevId.Value, co.AlkalmazottId);
}
});
}
public void UpdateTanitoVegzettseg(KKTanitoVegzettsegCo co, int? kovTanevId)
{
if (co.MuveltsegiTeruletIds.Count < 1)
{
throw new ValidationException(AlkalmazottResource.TeruletMegadasaKotelezo);
}
Dal.CustomConnection.Run(ConnectionType, h =>
{
var alkalmazottDal = h.Alkalmazott();
var alkalmazottEntity = alkalmazottDal.Get(co.AlkalmazottId);
var kkVegzettsegDal = h.KKVegzettsegDal();
var list = alkalmazottEntity.KKTanitoVezgettseg.Where(a => !a.Torolt);
var torlendok = list.Where(p => !co.MuveltsegiTeruletIds.Any(p2 => p2 == p.KKTaniotoMuvTerTipusId));
var insertalandok = co.MuveltsegiTeruletIds.Where(p => !list.Any(p2 => p2.KKTaniotoMuvTerTipusId == p));
foreach (var item in torlendok)
{
kkVegzettsegDal.DeleteKKTanitoVezgettseg(item.ID);
}
foreach (var item in insertalandok)
{
var kkKTanitoVezgettsegEntity = kkVegzettsegDal.GetKKTanitoVezgettseg();
kkKTanitoVezgettsegEntity.AlkalmazottId = co.AlkalmazottId;
kkKTanitoVezgettsegEntity.KKTaniotoMuvTerTipusId = item;
kkKTanitoVezgettsegEntity.TanevId = TanevId;
kkVegzettsegDal.Insert(kkKTanitoVezgettsegEntity);
}
if (HasKovTanevAndNotSelected(kovTanevId, TanevId))
{
h.Alkalmazott().FollowUpAlkalmazottVegzettsegKK(IntezmenyId, TanevId, kovTanevId.Value, co.AlkalmazottId);
}
});
}
public void UpdateGyogypedagogusVegzettseg(KKGyogyPedagogusVegzettsegCo co, int? kovTanevId)
{
if (co.GyogypedagogusTeruletIds.Count < 1)
{
throw new ValidationException(AlkalmazottResource.TeruletMegadasaKotelezo);
}
Dal.CustomConnection.Run(ConnectionType, h =>
{
var alkalmazottDal = h.Alkalmazott();
var alkalmazottEntity = alkalmazottDal.Get(co.AlkalmazottId);
var kkVegzettsegDal = h.KKVegzettsegDal();
var list = alkalmazottEntity.KKGyogypedVegzettseg.Where(a => !a.Torolt);
var torlendok = list.Where(p => !co.GyogypedagogusTeruletIds.Any(p2 => p2 == p.KKGyogypedTerTipusId));
var insertalandok = co.GyogypedagogusTeruletIds.Where(p => !list.Any(p2 => p2.KKGyogypedTerTipusId == p));
foreach (var item in torlendok)
{
kkVegzettsegDal.DeleteKKGyogypedVegzettseg(item.ID);
}
foreach (var item in insertalandok)
{
var kkGyogypedVegzettsegEntity = kkVegzettsegDal.GetKKGyogypedVegzettseg();
kkGyogypedVegzettsegEntity.AlkalmazottId = co.AlkalmazottId;
kkGyogypedVegzettsegEntity.KKGyogypedTerTipusId = item;
kkGyogypedVegzettsegEntity.TanevId = TanevId;
kkVegzettsegDal.Insert(kkGyogypedVegzettsegEntity);
}
if (HasKovTanevAndNotSelected(kovTanevId, TanevId))
{
h.Alkalmazott().FollowUpAlkalmazottVegzettsegKK(IntezmenyId, TanevId, kovTanevId.Value, co.AlkalmazottId);
}
});
}
public void SaveKepesitesNelkuli(KKVegzettsegBaseCo co, int? kovTanevId)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.Alkalmazott();
var entity = dal.Get(co.AlkalmazottId);
entity.KKKepesitesId = (int)co.KepesitesTipusId;
try
{
dal.Update(entity);
if (HasKovTanevAndNotSelected(kovTanevId, TanevId))
{
h.Alkalmazott().FollowUpAlkalmazottVegzettsegKK(IntezmenyId, TanevId, kovTanevId.Value, co.AlkalmazottId);
}
}
catch (KretaException e)
{
throw new ValidationException(e.Message);
}
});
}
public void SaveTanarVegzettseg(KKTanarVegzettsegCO co, int? kovTanevId)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
var alkalmazottDal = h.Alkalmazott();
var alkalmazottEntity = alkalmazottDal.Get(co.AlkalmazottId);
alkalmazottEntity.KKKepesitesId = (int)co.KepesitesTipusId;
try
{
alkalmazottDal.Update(alkalmazottEntity);
}
catch (KretaException e)
{
throw new ValidationException(e.Message);
}
var kkVegzettsegDal = h.KKVegzettsegDal();
var kkTanarVegzettsegEntity = kkVegzettsegDal.GetKKTanarVegzettseg();
kkTanarVegzettsegEntity.AlkalmazottId = co.AlkalmazottId;
kkTanarVegzettsegEntity.Egyeb = co.Egyeb;
kkTanarVegzettsegEntity.KKTanarVegzettsegId = co.TanariVegzettsegTipusId;
kkTanarVegzettsegEntity.TanevId = TanevId;
kkVegzettsegDal.Insert(kkTanarVegzettsegEntity);
foreach (var item in co.TantargyKategoriaIds)
{
var kkTantargyKategoriaEntity = kkVegzettsegDal.GetKKTantargyKategoria();
kkTantargyKategoriaEntity.KKTanarVegzettsegId = kkTanarVegzettsegEntity.ID;
kkTantargyKategoriaEntity.KKSzakTipusId = item;
kkTantargyKategoriaEntity.TanevId = TanevId;
kkVegzettsegDal.Insert(kkTantargyKategoriaEntity);
}
if (HasKovTanevAndNotSelected(kovTanevId, TanevId))
{
alkalmazottDal.FollowUpAlkalmazottVegzettsegKK(IntezmenyId, TanevId, kovTanevId.Value, alkalmazottEntity.ID);
}
});
}
public void SaveAMITanarVegzettseg(KKAMITanarVegzettsegCo co, int? kovTanevId)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
var alkalmazottDal = h.Alkalmazott();
var alkalmazottEntity = alkalmazottDal.Get(co.AlkalmazottId);
alkalmazottEntity.KKKepesitesId = (int)co.KepesitesTipusId;
try
{
alkalmazottDal.Update(alkalmazottEntity);
}
catch (KretaException e)
{
throw new ValidationException(e.Message);
}
var kkVegzettsegDal = h.KKVegzettsegDal();
var kkAMIVegzettsegEntity = kkVegzettsegDal.GetKKAMIVegzettseg();
kkAMIVegzettsegEntity.KKAMIVegzettsegTipusId = co.AMITanariVegzettsegTipusId;
kkAMIVegzettsegEntity.AlkalmazottId = co.AlkalmazottId;
kkAMIVegzettsegEntity.TanevId = TanevId;
kkVegzettsegDal.Insert(kkAMIVegzettsegEntity);
if (co.ZenemuveszetiTerulet)
{
InsertTerulet(kkVegzettsegDal, KKAMITeruletTipusEnum.ZenemuveszetiAg, kkAMIVegzettsegEntity.ID, h, kovTanevId);
if (co.ElektroAkusztikusZeneIds.Count > 0)
{
foreach (var item in co.ElektroAkusztikusZeneIds)
{
var kkElektroakuZeneEntity = kkVegzettsegDal.GetKKElektroakuZene();
kkElektroakuZeneEntity.KKAMIVegzettsegId = kkAMIVegzettsegEntity.ID;
kkElektroakuZeneEntity.ElektrakuTipusId = item;
kkElektroakuZeneEntity.TanevId = TanevId;
kkVegzettsegDal.Insert(kkElektroakuZeneEntity);
}
}
if (co.JazzZeneIds.Count > 0)
{
foreach (var item in co.JazzZeneIds)
{
var JazzZeneEntity = kkVegzettsegDal.GetKKJazzZene();
JazzZeneEntity.KKAMIVegzettsegId = kkAMIVegzettsegEntity.ID;
JazzZeneEntity.JazzZeneTipusId = item;
JazzZeneEntity.TanevId = TanevId;
kkVegzettsegDal.Insert(JazzZeneEntity);
}
}
if (co.NepZeneIds.Count > 0)
{
foreach (var item in co.NepZeneIds)
{
var kkNepzeneEntity = kkVegzettsegDal.GetKKNepzene();
kkNepzeneEntity.KKAMIVegzettsegId = kkAMIVegzettsegEntity.ID;
kkNepzeneEntity.NepzeneTipusId = item;
kkNepzeneEntity.TanevId = TanevId;
kkVegzettsegDal.Insert(kkNepzeneEntity);
}
}
if (co.KlasszikusZeneIds.Count > 0)
{
foreach (var item in co.KlasszikusZeneIds)
{
var klasszikusZeneEntity = kkVegzettsegDal.GetKKKlasszikusZene();
klasszikusZeneEntity.KKAMIVegzettsegId = kkAMIVegzettsegEntity.ID;
klasszikusZeneEntity.KlasszukusZeneTipusId = item;
klasszikusZeneEntity.TanevId = TanevId;
kkVegzettsegDal.Insert(klasszikusZeneEntity);
}
}
}
if (co.TancmuveszetiTerulet)
{
InsertTerulet(kkVegzettsegDal, KKAMITeruletTipusEnum.TancmuveszetiAg, kkAMIVegzettsegEntity.ID, h, kovTanevId);
}
if (co.KepzoEsIparMuveszetiTerulet)
{
InsertTerulet(kkVegzettsegDal, KKAMITeruletTipusEnum.KepzoEsIparmuveszetiAg, kkAMIVegzettsegEntity.ID, h, kovTanevId);
}
if (co.SzinEsBabMuveszetiTerulet)
{
InsertTerulet(kkVegzettsegDal, KKAMITeruletTipusEnum.SzinEsBabmuveszetiAg, kkAMIVegzettsegEntity.ID, h, kovTanevId);
}
if (HasKovTanevAndNotSelected(kovTanevId, TanevId))
{
alkalmazottDal.FollowUpAlkalmazottVegzettsegKK(IntezmenyId, TanevId, kovTanevId.Value, alkalmazottEntity.ID);
}
});
}
public void SaveTanitoVegzettseg(KKTanitoVegzettsegCo co, int? kovTanevId)
{
if (co.MuveltsegiTeruletIds.Count < 1)
{
throw new ValidationException(AlkalmazottResource.TeruletMegadasaKotelezo);
}
Dal.CustomConnection.Run(ConnectionType, h =>
{
var alkalmazottDal = h.Alkalmazott();
var alkalmazottEntity = alkalmazottDal.Get(co.AlkalmazottId);
alkalmazottEntity.KKKepesitesId = (int)co.KepesitesTipusId;
try
{
alkalmazottDal.Update(alkalmazottEntity);
}
catch (KretaException e)
{
throw new ValidationException(e.Message);
}
var kkVegzettsegDal = h.KKVegzettsegDal();
var list = alkalmazottEntity.KKTanitoVezgettseg.Where(a => !a.Torolt);
var insertalandok = co.MuveltsegiTeruletIds.Where(p => !list.Any(p2 => p2.KKTaniotoMuvTerTipusId == p));
foreach (var item in insertalandok)
{
var kkKTanitoVezgettsegEntity = kkVegzettsegDal.GetKKTanitoVezgettseg();
kkKTanitoVezgettsegEntity.AlkalmazottId = co.AlkalmazottId;
kkKTanitoVezgettsegEntity.KKTaniotoMuvTerTipusId = item;
kkKTanitoVezgettsegEntity.TanevId = TanevId;
kkVegzettsegDal.Insert(kkKTanitoVezgettsegEntity);
}
if (HasKovTanevAndNotSelected(kovTanevId, TanevId))
{
h.Alkalmazott().FollowUpAlkalmazottVegzettsegKK(IntezmenyId, TanevId, kovTanevId.Value, co.AlkalmazottId);
}
});
}
public void SaveGyogypedagogusVegzettseg(KKGyogyPedagogusVegzettsegCo co, int? kovTanevId)
{
if (co.GyogypedagogusTeruletIds.Count < 1)
{
throw new ValidationException(AlkalmazottResource.TeruletMegadasaKotelezo);
}
Dal.CustomConnection.Run(ConnectionType, h =>
{
var alkalmazottDal = h.Alkalmazott();
var alkalmazottEntity = alkalmazottDal.Get(co.AlkalmazottId);
alkalmazottEntity.KKKepesitesId = (int)co.KepesitesTipusId;
try
{
alkalmazottDal.Update(alkalmazottEntity);
}
catch (KretaException e)
{
throw new ValidationException(e.Message);
}
var kkVegzettsegDal = h.KKVegzettsegDal();
var list = alkalmazottEntity.KKGyogypedVegzettseg.Where(a => !a.Torolt);
var insertalandok = co.GyogypedagogusTeruletIds.Where(p => !list.Any(p2 => p2.KKGyogypedTerTipusId == p));
foreach (var item in insertalandok)
{
var kkGyogypedVegzettsegEntity = kkVegzettsegDal.GetKKGyogypedVegzettseg();
kkGyogypedVegzettsegEntity.AlkalmazottId = co.AlkalmazottId;
kkGyogypedVegzettsegEntity.KKGyogypedTerTipusId = item;
kkGyogypedVegzettsegEntity.TanevId = TanevId;
kkVegzettsegDal.Insert(kkGyogypedVegzettsegEntity);
}
if (HasKovTanevAndNotSelected(kovTanevId, TanevId))
{
h.Alkalmazott().FollowUpAlkalmazottVegzettsegKK(IntezmenyId, TanevId, kovTanevId.Value, co.AlkalmazottId);
}
});
}
public void DeleteKepesites(int tanarId, int? kovTanevId)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
var alkalmazottDal = h.Alkalmazott();
var alkalmazottEntity = alkalmazottDal.Get(tanarId);
alkalmazottEntity.KKKepesitesId = null;
try
{
alkalmazottDal.Update(alkalmazottEntity);
}
catch (KretaException e)
{
throw new ValidationException(e.Message);
}
if (HasKovTanevAndNotSelected(kovTanevId, TanevId))
{
h.Alkalmazott().FollowUpAlkalmazottVegzettsegKK(IntezmenyId, TanevId, kovTanevId.Value, tanarId);
}
});
}
public void DeleteTanarVegzettseg(int kkTanarVegzettsegId, int alkalmazottId, int? kovTanevId)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
h.KKVegzettsegDal().DeleteKKTanarVegzettseg(kkTanarVegzettsegId);
if (HasKovTanevAndNotSelected(kovTanevId, TanevId))
{
h.Alkalmazott().FollowUpAlkalmazottVegzettsegKK(IntezmenyId, TanevId, kovTanevId.Value, alkalmazottId);
}
DeleteKepesitesHaNincsMarVegzettseg(h, alkalmazottId);
});
}
public void DeleteAMITanarVegzettseg(int kkTanarVegzettsegId, int alkalmazottId, int? kovTanevId)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
h.KKVegzettsegDal().DeleteKKAMIVegzettseg(kkTanarVegzettsegId);
if (HasKovTanevAndNotSelected(kovTanevId, TanevId))
{
h.Alkalmazott().FollowUpAlkalmazottVegzettsegKK(IntezmenyId, TanevId, kovTanevId.Value, alkalmazottId);
}
DeleteKepesitesHaNincsMarVegzettseg(h, alkalmazottId);
});
}
public void DeleteTanitoVegzettseg(int alkalmazottId, int? kovTanevId)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
var alkalmazottDal = h.Alkalmazott();
var alkalmazottEntity = alkalmazottDal.Get(alkalmazottId);
var kkVegzettsegDal = h.KKVegzettsegDal();
foreach (var item in alkalmazottEntity.KKTanitoVezgettseg.Where(a => !a.Torolt))
{
kkVegzettsegDal.DeleteKKTanitoVezgettseg(item.ID);
}
if (HasKovTanevAndNotSelected(kovTanevId, TanevId))
{
h.Alkalmazott().FollowUpAlkalmazottVegzettsegKK(IntezmenyId, TanevId, kovTanevId.Value, alkalmazottId);
}
DeleteKepesitesHaNincsMarVegzettseg(h, alkalmazottId);
});
}
public void DeleteGyogypedagogusVegzettseg(int alkalmazottId, int? kovTanevId)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
var alkalmazottDal = h.Alkalmazott();
var alkalmazottEntity = alkalmazottDal.Get(alkalmazottId);
var kkVegzettsegDal = h.KKVegzettsegDal();
foreach (var item in alkalmazottEntity.KKGyogypedVegzettseg.Where(a => !a.Torolt))
{
kkVegzettsegDal.DeleteKKGyogypedVegzettseg(item.ID);
}
if (HasKovTanevAndNotSelected(kovTanevId, TanevId))
{
h.Alkalmazott().FollowUpAlkalmazottVegzettsegKK(IntezmenyId, TanevId, kovTanevId.Value, alkalmazottId);
}
DeleteKepesitesHaNincsMarVegzettseg(h, alkalmazottId);
});
}
private void DeleteKepesitesHaNincsMarVegzettseg(IDalHandler h, int alkalmazottId)
{
var alkalmazottDal = h.Alkalmazott();
var alkalmazottEntity = alkalmazottDal.Get(alkalmazottId);
var gyogypedVegzettseg = alkalmazottEntity.KKGyogypedVegzettseg.Any(a => !a.Torolt);
var tanitoVegzettseg = alkalmazottEntity.KKTanitoVezgettseg.Any(a => !a.Torolt);
var tanarVegzettseg = alkalmazottEntity.KKTanarVegzettseg.Any(a => !a.Torolt);
var tanarAmiVegzettseg = alkalmazottEntity.KKAMIVegzettseg.Any(a => !a.Torolt);
if (!(gyogypedVegzettseg || tanitoVegzettseg || tanarVegzettseg || tanarAmiVegzettseg))
{
alkalmazottEntity.KKKepesitesId = null;
alkalmazottDal.Update(alkalmazottEntity);
}
}
private void InsertTerulet(IKKVegzettsegDal kkVegzettsegDal, KKAMITeruletTipusEnum tipus, int kkAMIVegzettsegEntityId, IDalHandler h, int? kovTanevId)
{
var kkAMIVegzettsegEntity = kkVegzettsegDal.GetKKAMIVegzettseg(kkAMIVegzettsegEntityId);
if (kkAMIVegzettsegEntity.KKTerulet.Any(x => !x.Torolt && x.AMITeruletTipusId == (int)tipus))
{ return; }
var kkTeruletEntity = kkVegzettsegDal.GetKKTerulet();
kkTeruletEntity.KKAMIVegzettsegId = kkAMIVegzettsegEntityId;
kkTeruletEntity.AMITeruletTipusId = (int)tipus;
kkTeruletEntity.TanevId = TanevId;
kkVegzettsegDal.Insert(kkTeruletEntity);
if (HasKovTanevAndNotSelected(kovTanevId, TanevId))
{
h.Alkalmazott().FollowUpAlkalmazottVegzettsegKK(IntezmenyId, TanevId, kovTanevId.Value, kkAMIVegzettsegEntity.AlkalmazottId);
}
}
private DataSet GetTeruletDataSetVaz()
{
var resultDs = new DataSet();
var dt = resultDs.Tables.Add();
dt.Columns.Add("ID", typeof(string));
dt.Columns.Add("EntityID", typeof(string));
dt.Columns.Add("Terulet", typeof(string));
return resultDs;
}
}
}