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; } } }