using System.Collections.Generic; using System.Data; using System.Linq; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.HelperClasses; using Kreta.Core; using Kreta.Core.ConnectionType; using Kreta.Core.Exceptions; using Kreta.DataAccess.Interfaces; using Kreta.DataAccessManual; using Kreta.DataAccessManual.Interfaces; using Kreta.DataAccessManual.ParameterClasses; using Kreta.Framework; using Kreta.Resources; namespace Kreta.BusinessLogic.Helpers { public class OratervHelper : LogicBase { public OratervHelper(IConnectionType connectionType) : base(connectionType) { } public DataSet GetOraTerv(OratervCO co) => Dal.CustomConnection.Run(ConnectionType, h => { OratervPCO pco = Convert_CO_to_PCO(co); var dal = h.OratervDal(GridParameters); return dal.GetOraterv(pco); }); public DataSet GetOratervTantargy(OratervCO co) => Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.OratervDal(GridParameters); return dal.GetOratervTantargy(co.OratervId.Value, TanevId); }); private OratervPCO Convert_CO_to_PCO(OratervCO co) { OratervPCO pco = new OratervPCO() { TantervId = co.TantervId, EvfolyamID = co.Evfolyam, Nev = co.Nev, TanevId = TanevId, IsValidacio = co.IsValidacio }; return pco; } public void InsertOratervTantargyCO(OratervTantargyCO oratervTargyCO, bool isActivTanev) { if (oratervTargyCO.EvesOraszam > Constants.MinMaxValues.OratervTantargyEvesOraszamMaxValue) { throw new BlException(string.Format(TantargyResource.AzEvesOraszamTulNagyErtek, Constants.MinMaxValues.OratervTantargyEvesOraszamMaxValue)); } Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.OratervDal(); IOraTervTargy oOraTervTargy = Convert_OratervTargyCO_to_OratervTargy(h, oratervTargyCO, isUpdate: false); dal.Insert(oOraTervTargy); if (isActivTanev) { dal.FullUpdate(oOraTervTargy.OraTerv); } }); } public void UpdateOratervTantargyCO(OratervTantargyCO oratervTargyCO, bool isActivTanev) { if (oratervTargyCO.EvesOraszam > Constants.MinMaxValues.OratervTantargyEvesOraszamMaxValue) { throw new BlException(string.Format(TantargyResource.AzEvesOraszamTulNagyErtek, Constants.MinMaxValues.OratervTantargyEvesOraszamMaxValue)); } Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.OratervDal(); IOraTervTargy oOraTervTargy = Convert_OratervTargyCO_to_OratervTargy(h, oratervTargyCO, isUpdate: true); dal.FullUpdate(oOraTervTargy); if (isActivTanev) { dal.FullUpdate(oOraTervTargy.OraTerv); } }); } public void DeleteOratervTantargy(int ID) { Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.OratervDal(); var entity = dal.GetOraTervTargy(); entity = dal.GetOraTervTargy(ID); dal.Delete(entity); }); } public Dictionary GetTantargyak(int ID) { return Dal.CustomConnection.Run(ConnectionType, h => { Dictionary result = new Dictionary(); result.Add("", StringResourcesUtil.GetString(364)); var dal = h.OratervDal(GridParameters); DataSet ds = dal.GetTantargyak(ID, TanevId); foreach (DataRow dr in ds.Tables[0].Rows) { result.Add(dr["ID"].ToString(), dr["C_NEV"].ToString()); } return result; }); } public Dictionary GetTantargyakModOraTervTantargy(int ID, int OraTervTantargyId) { return Dal.CustomConnection.Run(ConnectionType, h => { Dictionary result = new Dictionary(); result.Add("", StringResourcesUtil.GetString(364)); var dal = h.OratervDal(GridParameters); DataSet ds = dal.GetTantargyakModOraTervTantargy(ID, OraTervTantargyId, TanevId); foreach (DataRow dr in ds.Tables[0].Rows) { result.Add(dr["ID"].ToString(), dr["C_NEV"].ToString()); } return result; }); } public OratervCO GetOratervCO(int ID) { return Dal.CustomConnection.Run(ConnectionType, h => { var oOraTerv = h.OratervDal().Get(ID); OratervCO co = new OratervCO() { Nev = oOraTerv.Nev, Evfolyam = oOraTerv.Evfolyam, TantervId = oOraTerv.TantervId, OratervId = ID }; return co; }); } public OratervTantargyCO GetOratervTantargyCO(int ID) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.OratervDal(); var oOraTervTargy = dal.GetOraTervTargy(); oOraTervTargy = dal.GetOraTervTargy(ID); OratervTantargyCO co = new OratervTantargyCO() { EvesOraszam = oOraTervTargy.EvesOraszam, Tantargy = oOraTervTargy.TantargyId, OratervId = oOraTervTargy.OraTervId, OratervTantargyId = ID }; return co; }); } public void InsertOratervCO(OratervCO oratervCO) { Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.OratervDal(); var oOraTerv = Convert_OratervCO_to_Oraterv(h, oratervCO, isUpdate: false); dal.Insert(oOraTerv); }); } public void UpdateOratervCO(OratervCO oratervCO) { Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.OratervDal(); var oOraTerv = Convert_OratervCO_to_Oraterv(h, oratervCO, isUpdate: true); dal.FullUpdate(oOraTerv); }); } public void DeleteOratervCO(int ID) { Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.OratervDal(); var oOraTerv = dal.Get(ID); dal.Delete(oOraTerv); }); } private IOraTerv Convert_OratervCO_to_Oraterv(IDalHandler h, OratervCO oratervCO, bool isUpdate = false) { var oOraterv = h.OratervDal().Get(); if (isUpdate) { oOraterv = h.OratervDal().Get(oratervCO.OratervId.Value); } oOraterv.Nev = oratervCO.Nev; oOraterv.Evfolyam = oratervCO.Evfolyam; oOraterv.TantervId = oratervCO.TantervId.Value; oOraterv.TanevId = TanevId; return oOraterv; } private IOraTervTargy Convert_OratervTargyCO_to_OratervTargy(IDalHandler h, OratervTantargyCO oratervTargyCO, bool isUpdate = false) { var dal = h.OratervDal(); var oOratervTargy = dal.GetOraTervTargy(); if (isUpdate) { oOratervTargy = dal.GetOraTervTargy(oratervTargyCO.OratervTantargyId.Value); } oOratervTargy.OraTervId = oratervTargyCO.OratervId; oOratervTargy.EvesOraszam = oratervTargyCO.EvesOraszam; oOratervTargy.TantargyId = oratervTargyCO.Tantargy; oOratervTargy.TanevId = TanevId; return oOratervTargy; } public bool IfModifyOrDeleteOraTerv(int ID) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.OratervDal(GridParameters); int result = dal.IfModifyOrDeleteOraTerv(ID); return result <= 0; }); } public void DeleteAllOratervTantargy(int oratervID) { Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.OratervDal(GridParameters); DataSet ds = dal.GetOratervTantargyakById(oratervID, TanevId); if (ds.Tables[0].Rows.Count > 0) { foreach (DataRow row in ds.Tables[0].Rows) { var oOraTervTargy = dal.GetOraTervTargy(); oOraTervTargy = dal.GetOraTervTargy(int.Parse(row["ID"].ToString())); dal.Delete(oOraTervTargy); } } }); } public List GetOratervCoList() { List result = Dal.CustomConnection.Run(ConnectionType, dalHandler => { DataSet dataSet = dalHandler.OratervDal().GetOratervDataSet(TanevId); var oratervItemCoList = new List(); foreach (DataRow dataRow in dataSet.Tables[0].AsEnumerable()) { var oratervCo = new OratervCO { OratervId = SDAConvert.ToInt32(dataRow["Id"]), Nev = SDAConvert.ToString(dataRow["OratervNev"]), Evfolyam = SDAConvert.ToInt32(dataRow["EvfolyamId"]), EvfolyamNev = SDAConvert.ToString(dataRow["EvfolyamId_DNAME"]), TantervId = SDAConvert.ToInt32(dataRow["TantervId"]), TantervNev = SDAConvert.ToString(dataRow["TantervNev"]), }; oratervItemCoList.Add(oratervCo); } return oratervItemCoList; }); return result; } public List GetOratervTantargyCoList() { List result = Dal.CustomConnection.Run(ConnectionType, dalHandler => { DataSet dataSet = dalHandler.OratervDal().GetOratervTantargyDataSet(TanevId); var oratervTantargyItemCoList = new List(); foreach (DataRow dataRow in dataSet.Tables[0].AsEnumerable()) { var oratervTantargyCo = new OratervTantargyCO { OratervTantargyId = SDAConvert.ToInt32(dataRow["Id"]), OratervId = SDAConvert.ToInt32(dataRow["OratervId"]), Tantargy = SDAConvert.ToInt32(dataRow["TantargyId"]), EvesOraszam = SDAConvert.ToDouble(dataRow["EvesOraszam"]), OratervNev = SDAConvert.ToString(dataRow["OratervNev"]), TantargyNev = SDAConvert.ToString(dataRow["TantargyNev"]), }; oratervTantargyItemCoList.Add(oratervTantargyCo); } return oratervTantargyItemCoList; }); List oratervCoList = GetOratervCoList(); foreach (OratervTantargyCO co in result) { OratervCO oratervCo = oratervCoList.Single(x => x.OratervId == co.OratervId); co.TantervNev = oratervCo.TantervNev; co.EvfolyamNev = oratervCo.EvfolyamNev; } return result; } } }