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

247 lines
7.3 KiB
C#

using System.Collections.Generic;
using System.Data;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Utils;
using Kreta.Core;
using Kreta.Core.ConnectionType;
using Kreta.Core.Exceptions;
using Kreta.DataAccess.Interfaces;
using Kreta.DataAccessManual;
using Kreta.DataAccessManual.Interfaces;
using Kreta.Resources;
namespace Kreta.BusinessLogic.Helpers
{
public class TantervHelper : LogicBase
{
public TantervHelper(IConnectionType connectionType) : base(connectionType) { }
public TantervCO GetCo(int id)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TantervDAL();
var oTanterv = dal.Get(id);
var tantervCo = new TantervCO()
{
ID = id,
CsoportTipusa = oTanterv.CsoportTipusa,
Evfolyamig = oTanterv.Evfolyamig,
Evfolyamtol = oTanterv.Evfolyamtol,
KerettantervreEpulo = oTanterv.KerettantervreEpulo,
Megjegyzes = oTanterv.Megjegyzes,
Nev = oTanterv.Nev,
IsKerettanterv = oTanterv.IsKerettanterv
};
return tantervCo;
});
}
public IDictionary<string, string> GetTanterv(string baseText)
{
var result = Dal.CustomConnection.Run(ConnectionType, h =>
LogicUtil.CreateDropdownContent(h.TantervDAL(GridParameters).GetAktivTantervek(TanevId), "ID", "Nev", baseText));
return result;
}
public DataSet GetAktivTantervDataSet()
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TantervDAL();
return dal.GetAktivTantervek(TanevId);
});
}
public void Insert(TantervCO co)
{
if (!IsValid(co))
return;
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TantervDAL();
var oTanterv = Convert_CO_to_Entity(dal, co, false);
oTanterv.TanevId = TanevId;
dal.Insert(oTanterv);
});
}
public void Update(TantervCO co)
{
if (!IsValid(co))
return;
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TantervDAL();
var oTanterv = Convert_CO_to_Entity(dal, co, true);
oTanterv.TanevId = TanevId;
dal.Update(oTanterv);
});
}
public void Delete(int id)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TantervDAL();
var oTanterv = dal.Get(id);
dal.Delete(oTanterv);
});
}
public DataSet GetTantervOsztalyai(int tantervId)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TantervDAL(GridParameters);
return dal.GetTantervOsztalyai(tantervId, TanevId);
});
}
public DataSet GetTantervTanuloi(int tantervId)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TantervDAL(GridParameters);
return dal.GetTantervTanuloi(tantervId, TanevId);
});
}
public DataSet TantervKereses(string tantervNev = null,
int? jellemzoCsopTipId = null,
int? kezdoEvfolyamId = null,
int? vegzoEvfolyamId = null,
int? isKerettantervreEpul = null,
int? isKerettanterv = null
)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TantervDAL(GridParameters);
return dal.TantervKereses(TanevId, tantervNev, jellemzoCsopTipId, kezdoEvfolyamId, vegzoEvfolyamId, isKerettantervreEpul, isKerettanterv);
});
}
public void TantervTobbesModify(TantervTobbesModCO co)
{
if (!co.ID.HasValue)
{
throw new BlException(TantargyResource.NemLetezoTanterv);
}
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TantervDAL();
var tanterv = dal.Get(co.ID.Value);
if (co.CsoportTipusa.HasValue)
{
tanterv.CsoportTipusa = co.CsoportTipusa.Value;
}
if (co.Evfolyamtol.HasValue)
{
tanterv.Evfolyamtol = co.Evfolyamtol.Value;
}
if (co.Evfolyamig.HasValue)
{
tanterv.Evfolyamig = co.Evfolyamig.Value;
}
if (co.KerettantervreEpulo.HasValue)
{
tanterv.KerettantervreEpulo = co.KerettantervreEpulo.ToBool();
}
if (co.IsKerettanterv.HasValue)
{
tanterv.IsKerettanterv = co.IsKerettanterv.ToBool();
}
dal.FullUpdate(tanterv);
});
}
private bool IsValid(TantervCO co)
{
bool ret = true;
try
{
if (string.IsNullOrWhiteSpace(co.Nev))
{
ret = false;
}
else if (co.CsoportTipusa < 0)
{
ret = false;
}
else if (co.Evfolyamig < 0)
{
ret = false;
}
else if (co.Evfolyamtol < 0)
{
ret = false;
}
}
catch
{
ret = false;
}
return ret;
}
private ITanterv Convert_CO_to_Entity(ITantervDAL dal, TantervCO co, bool isUpdate = false)
{
var oTanterv = dal.Get();
if (isUpdate)
{
if (co.ID != null)
{
oTanterv = dal.Get(co.ID.Value);
}
else
{
throw new BlException("Update esetén a ID megadása kötelező");
}
}
oTanterv.CsoportTipusa = co.CsoportTipusa;
oTanterv.Evfolyamig = co.Evfolyamig;
oTanterv.Evfolyamtol = co.Evfolyamtol;
if (co.KerettantervreEpulo.HasValue)
oTanterv.KerettantervreEpulo = co.KerettantervreEpulo.Value;
else
oTanterv.KerettantervreEpulo = null;
oTanterv.IsKerettanterv = co.IsKerettanterv.Value;
if (!string.IsNullOrWhiteSpace(co.Megjegyzes))
oTanterv.Megjegyzes = co.Megjegyzes;
else
oTanterv.Megjegyzes = null;
oTanterv.Nev = co.Nev;
return oTanterv;
}
public int GetTop1TantervId()
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TantervDAL();
return dal.GetTop1TantervId(TanevId);
});
}
}
}