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(); 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 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 GetEvesOraszamForTantargyAndOsztaly(int itezmenyId, int osztalyCsoportId, int tantargyId) { return Dal.CustomConnection.Run(ConnectionType, h => { IOraSorszamozasHalmazDAL dal = h.OraSorszamozasHalmaz(); return dal.GetEvesOraszamForTantargyAndOsztaly(TanevId, itezmenyId, osztalyCsoportId, tantargyId); }); } } }