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

146 lines
5.4 KiB
C#

using System.Collections.Generic;
using System.Data;
using System.Linq;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.Core.ConnectionType;
using Kreta.DataAccessManual;
using Kreta.DataAccessManual.Interfaces;
using Kreta.DataAccessManual.Util;
namespace Kreta.BusinessLogic.Helpers
{
public class OraSorszamozasHalmazHelper : LogicBase
{
public OraSorszamozasHalmazHelper(IConnectionType connectionType) : base(connectionType) { }
public DataSet GetAllPaged(OraSorszamozasHalmazSearchCO co)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
IOraSorszamozasHalmazDAL dal = h.OraSorszamozasHalmaz(GridParameters);
return dal.GetAllPaged(TanevId, co.ConvertToPCO());
});
}
public DataSet GetOsszerendelesek(int halmazId, bool forDetail = false)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
IOraSorszamozasHalmazDAL dal = h.OraSorszamozasHalmaz();
return dal.GetOsszerendelesek(halmazId, forDetail);
});
}
public void Delete(int id)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
IOraSorszamozasHalmazDAL dal = h.OraSorszamozasHalmaz();
dal.Delete(id, IntezmenyId, TanevId);
});
}
public void DeleteOsszerendeles(int osszerendelesId)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
IOraSorszamozasHalmazDAL dal = h.OraSorszamozasHalmaz();
dal.DeleteOsszerendeles(osszerendelesId, IntezmenyId, TanevId);
});
}
public OraSorszamozasHalmazCO Get(int id)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
IOraSorszamozasHalmazDAL dal = h.OraSorszamozasHalmaz();
var entity = dal.Get(id);
var co = OraSorszamozasHalmazCO.ConvertEntityToCo(entity);
var ds = GetOsszerendelesek(id);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
var osszerendelesek = new List<OraSorszamozasHalmazOsszerendelesCO>();
foreach (DataRow dr in ds.Tables[0].Rows)
{
var osszerendeles = new OraSorszamozasHalmazOsszerendelesCO
{
ID = SDAConvert.ToInt32(dr["ID"]),
OsztalyCsoportId = SDAConvert.ToInt32(dr["OsztalyCsoportId"]),
OsztalyCsoport = SDAConvert.ToString(dr["OsztalyCsoport"]),
TantargyId = SDAConvert.ToInt32(dr["TantargyId"]),
Tantargy = SDAConvert.ToString(dr["Tantargy"])
};
osszerendelesek.Add(osszerendeles);
}
co.Osszerendelesek = osszerendelesek;
}
return co;
});
}
public bool NevExists(string nev, int id)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
IOraSorszamozasHalmazDAL dal = h.OraSorszamozasHalmaz();
return dal.NevExists(TanevId, nev, id);
});
}
public bool OsszerendelesExists(int osztalyCsoportId, int tantargyId, int halmazId, List<int> deletedOsszerendeslIds)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
IOraSorszamozasHalmazDAL dal = h.OraSorszamozasHalmaz();
return dal.OsszerendelesExists(TanevId, osztalyCsoportId, tantargyId, halmazId, deletedOsszerendeslIds);
});
}
public void Save(OraSorszamozasHalmazCO co)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
IOraSorszamozasHalmazDAL dal = h.OraSorszamozasHalmaz();
var halmazId = dal.Save(TanevId, co.ID, co.Nev, co.KozosOraSorszamozasElteroTanarnal, co.Tipus, co.Kezdoertek);
var idsInGrid = co.Osszerendelesek.Select(x => x.ID).ToList();
dal.DeleteOsszerendelesek(halmazId, idsInGrid, IntezmenyId, TanevId);
foreach (var m in co.Osszerendelesek)
{
var osszerendelesId = dal.SaveOsszerendeles(TanevId, m.OsztalyCsoportId, m.TantargyId, halmazId);
if (m.Selected)
{
dal.SetHalmazOsszerendeles(halmazId, osszerendelesId);
}
}
var oraSorszamozasDal = dal.Get(halmazId);
var oraSorszamozasOsszerendelesList = oraSorszamozasDal.OraSorszamozasHalmazOsszerendelesList.Where(x => !x.Torolt).ToList();
new TanoraHelper(new DalHandlerConnectionType(ConnectionType, h)).UpdateTanitasiOraEvesSorszamTeljesTanev();
});
}
public List<int> GetEvesOraszamForTantargyAndOsztaly(int itezmenyId, int osztalyCsoportId, int tantargyId)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
IOraSorszamozasHalmazDAL dal = h.OraSorszamozasHalmaz();
return dal.GetEvesOraszamForTantargyAndOsztaly(TanevId, itezmenyId, osztalyCsoportId, tantargyId);
});
}
}
}