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

333 lines
12 KiB
C#

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<string, string> GetTantargyak(int ID)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
Dictionary<string, string> result = new Dictionary<string, string>();
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<string, string> GetTantargyakModOraTervTantargy(int ID, int OraTervTantargyId)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
Dictionary<string, string> result = new Dictionary<string, string>();
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<OratervCO> GetOratervCoList()
{
List<OratervCO> result = Dal.CustomConnection.Run(ConnectionType, dalHandler =>
{
DataSet dataSet = dalHandler.OratervDal().GetOratervDataSet(TanevId);
var oratervItemCoList = new List<OratervCO>();
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<OratervTantargyCO> GetOratervTantargyCoList()
{
List<OratervTantargyCO> result = Dal.CustomConnection.Run(ConnectionType, dalHandler =>
{
DataSet dataSet = dalHandler.OratervDal().GetOratervTantargyDataSet(TanevId);
var oratervTantargyItemCoList = new List<OratervTantargyCO>();
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<OratervCO> 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;
}
}
}