using System.Collections.Generic; using System.Data; using Kreta.BusinessLogic.HelperClasses; using Kreta.Core; using Kreta.Core.ConnectionType; using Kreta.DataAccess.Interfaces; using Kreta.DataAccessManual; using Kreta.DataAccessManual.Interfaces; namespace Kreta.BusinessLogic.Helpers { public class EszkozHelper : LogicBase { public EszkozHelper(IConnectionType connectionType) : base(connectionType) { } public DataSet EszkozKereses(EszkozokSearchCo co) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.EszkozDal(GridParameters); return dal.EszkozKereses(co.ConvertToPco()); }); } public EszkozCO GetEszkozCo(int id) { return Dal.CustomConnection.Run(ConnectionType, h => { var oEszkoz = h.EszkozDal().Get(id); EszkozCO co = new EszkozCO { Berelt = oEszkoz.Berelt.ToNullableInt(), BeszerzesDatum = oEszkoz.BeszerzesDatum, BeszerzesiAr = oEszkoz.BeszerzesiAr, Darabszam = oEszkoz.Darabszam, FokonyviSzam = oEszkoz.FokonyviSzam, GyariSzam = oEszkoz.GyariSzam, GyartasiEv = oEszkoz.GyartasiEv, HalozatiKapcsolat = oEszkoz.HalozatiKapcsolat.ToNullableInt(), Hordozhato = oEszkoz.Hordozhato.ToNullableInt(), ID = oEszkoz.ID, InternetKapcsolat = oEszkoz.InternetKapcsolat.ToNullableInt(), Jelleg = oEszkoz.Jellege, Kategoria = oEszkoz.Kategoria, LeltariSzam = oEszkoz.LeltariSzam, Megjegyzes = oEszkoz.Megjegyzes, MennyisegiEgyseg = oEszkoz.MennyisegiEgyseg, NemMukodik = oEszkoz.NemMukodik.ToNullableInt(), Multimedias = oEszkoz.Multimedias.ToNullableInt(), Nev = oEszkoz.Nev, PedagogusHozzaferhet = oEszkoz.PedagogusHozzaferhet.ToNullableInt(), Szallito = oEszkoz.Szallito, SzemelyiFelelos = oEszkoz.Felelos == null ? (int?)null : oEszkoz.FelelosId, FelelosNev = oEszkoz.Felelos == null ? "" : oEszkoz.Felelos.NyomtatasiNev, TanuloHozzaferhet = oEszkoz.TanuloHozzaferhet.ToNullableInt(), Tartozek = oEszkoz.Tartozek ?? false, TartozekHivatkozas = oEszkoz.TartozekHivatkozas, TeremID = oEszkoz.TeremId, TeremNev = oEszkoz.Terem.Nev, Tipus = oEszkoz.Tipus, Celja = oEszkoz.Celja, Vonalkod = oEszkoz.Vonalkod }; return co; }); } public bool GetEszkozByName(string eszkozName, int? id, int teremId, int jelleg) { return Dal.CustomConnection.Run(ConnectionType, h => { var helper = h.EszkozDal(); return helper.GetEszkozByName(eszkozName, TanevId, id, teremId, jelleg); }); } public bool GetEszkozByIds(string eszkozIdString, int teremId) { return Dal.CustomConnection.Run(ConnectionType, h => { var helper = h.EszkozDal(); return helper.GetEszkozByIds(eszkozIdString, TanevId, teremId); }); } public void InsertEszkozCo(EszkozCO eszkozCo) { Dal.CustomConnection.Run(ConnectionType, h => { if (IsValid(eszkozCo)) { var dal = h.EszkozDal(GridParameters); var oEszkoz = ConvertEszkozCOToEszkoz(h, eszkozCo); oEszkoz.TanevId = TanevId; dal.Insert(oEszkoz); } }); } public void UpdateEszkozCo(EszkozCO eszkozCo) { Dal.CustomConnection.Run(ConnectionType, h => { if (IsValid(eszkozCo)) { var dal = h.EszkozDal(GridParameters); var oEszkoz = ConvertEszkozCOToEszkoz(h, eszkozCo, true); oEszkoz.TanevId = TanevId; dal.FullUpdate(oEszkoz); } }); } public void UpdateCsopEszkoz(EszkozCO co) { Dal.CustomConnection.Run(ConnectionType, h => { var entity = h.EszkozDal().Get(co.ID.Value); if (co.TeremID.HasValue) { entity.TeremId = co.TeremID.Value; } if (co.Tipus.HasValue) { entity.Tipus = co.Tipus.Value; } if (co.Kategoria.HasValue) { entity.Kategoria = co.Kategoria.Value; } if (co.BeszerzesDatum.HasValue) { entity.BeszerzesDatum = co.BeszerzesDatum.Value; } if (co.Darabszam.HasValue) { entity.Darabszam = co.Darabszam.Value; } if (co.SzemelyiFelelos.HasValue) { entity.FelelosId = co.SzemelyiFelelos.Value; } if (co.GyartasiEv.HasValue) { entity.GyartasiEv = co.GyartasiEv.Value; } if (co.PedagogusHozzaferhet.HasValue) { entity.PedagogusHozzaferhet = co.PedagogusHozzaferhet.ToBool(); } if (co.TanuloHozzaferhet.HasValue) { entity.TanuloHozzaferhet = co.TanuloHozzaferhet.ToBool(); } if (co.Multimedias.HasValue) { entity.Multimedias = co.Multimedias.ToBool(); } if (co.HalozatiKapcsolat.HasValue) { entity.HalozatiKapcsolat = co.HalozatiKapcsolat.ToBool(); } if (co.InternetKapcsolat.HasValue) { entity.InternetKapcsolat = co.InternetKapcsolat.ToBool(); } if (co.Hordozhato.HasValue) { entity.Hordozhato = co.Hordozhato.ToBool(); } if (co.Berelt.HasValue) { entity.Berelt = co.Berelt.ToBool(); } if (co.Celja.HasValue) { entity.Celja = co.Celja.Value; } entity.Tartozek = co.Tartozek; entity.TartozekHivatkozas = co.TartozekHivatkozas; if (co.NemMukodik.HasValue) { entity.NemMukodik = co.NemMukodik.ToBool(); } var dal = h.EszkozDal(GridParameters); dal.FullUpdate(entity); }); } public void DeleteEszkoz(int id) { Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.EszkozDal(GridParameters); dal.Delete(id); }); } public DataSet GetEszkozokForTerem(int teremId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.EszkozDal(GridParameters); return dal.GetEszkozokWhereTeremID(teremId, TanevId); }); } private bool IsValid(EszkozCO eszkozCo) { bool ret = true; try { if (string.IsNullOrWhiteSpace(eszkozCo.Nev)) { ret = false; } else if (eszkozCo.TeremID < 1) { ret = false; } } catch { ret = false; } return ret; } private IEszkoz ConvertEszkozCOToEszkoz(IDalHandler h, EszkozCO eszkozCo, bool isUpdate = false) { var dal = h.EszkozDal(); var oEszkoz = dal.Get(); if (isUpdate) { oEszkoz = dal.Get(eszkozCo.ID.Value); } //- TOKNOW: nem szükséges megnézni, hogy az eddigi értékhez képest változott-e, mert Framework szinten ezt még ellenőrizni fogja és nem módosít, ha nem változik az érték oEszkoz.Berelt = eszkozCo.Berelt.ToBool(); if (eszkozCo.BeszerzesDatum.HasValue) { oEszkoz.BeszerzesDatum = eszkozCo.BeszerzesDatum.Value; } if (eszkozCo.BeszerzesiAr.HasValue) { oEszkoz.BeszerzesiAr = eszkozCo.BeszerzesiAr.Value; } if (eszkozCo.Celja.HasValue) { oEszkoz.Celja = eszkozCo.Celja.Value; } if (eszkozCo.Darabszam.HasValue) { oEszkoz.Darabszam = eszkozCo.Darabszam.Value; } oEszkoz.FokonyviSzam = eszkozCo.FokonyviSzam; oEszkoz.GyariSzam = eszkozCo.GyariSzam; if (eszkozCo.GyartasiEv.HasValue) { oEszkoz.GyartasiEv = eszkozCo.GyartasiEv.Value; } oEszkoz.HalozatiKapcsolat = eszkozCo.HalozatiKapcsolat.ToBool(); oEszkoz.Hordozhato = eszkozCo.Hordozhato.ToBool(); oEszkoz.InternetKapcsolat = eszkozCo.InternetKapcsolat.ToBool(); if (eszkozCo.Jelleg.HasValue) { oEszkoz.Jellege = eszkozCo.Jelleg.Value; } if (eszkozCo.Kategoria.HasValue) { oEszkoz.Kategoria = eszkozCo.Kategoria.Value; } oEszkoz.LeltariSzam = eszkozCo.LeltariSzam; oEszkoz.Megjegyzes = eszkozCo.Megjegyzes; if (eszkozCo.MennyisegiEgyseg.HasValue) { oEszkoz.MennyisegiEgyseg = eszkozCo.MennyisegiEgyseg.Value; } oEszkoz.Multimedias = eszkozCo.Multimedias.ToBool(); oEszkoz.Nev = eszkozCo.Nev; oEszkoz.PedagogusHozzaferhet = eszkozCo.PedagogusHozzaferhet.ToBool(); oEszkoz.Szallito = eszkozCo.Szallito; oEszkoz.TanuloHozzaferhet = eszkozCo.TanuloHozzaferhet.ToBool(); oEszkoz.Tartozek = eszkozCo.Tartozek; oEszkoz.TartozekHivatkozas = eszkozCo.TartozekHivatkozas; if (eszkozCo.Tipus.HasValue) { oEszkoz.Tipus = eszkozCo.Tipus.Value; } oEszkoz.Vonalkod = eszkozCo.Vonalkod; oEszkoz.NemMukodik = eszkozCo.NemMukodik.ToBool(); //- TOKNOW: Update esetén vagy ID mezőt és Entitást is kap, vagy (a jobb megoldás, hogy) elég lehet az egyik is, de akkor FullUpdate()-et kell hívni! if (eszkozCo.SzemelyiFelelos.HasValue) { oEszkoz.FelelosId = eszkozCo.SzemelyiFelelos.Value; } else { oEszkoz.FelelosId = -1; } if (eszkozCo.TeremID.HasValue && !eszkozCo.TeremID.Equals(oEszkoz.TeremId)) { oEszkoz.TeremId = eszkozCo.TeremID.Value; } return oEszkoz; } public List GetEszkozCoList() { DataSet dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.EszkozDal().GetEszkozDataSet(TanevId)); var result = new List(); foreach (DataRow dataRow in dataSet.Tables[0].Rows) { var item = new EszkozItemCo(dataRow); result.Add(item); } return result; } public IList GetEszkozKeresesExport(EszkozokSearchCo co) { DataSet dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.EszkozDal().EszkozKeresesExport(co.ConvertToPco())); var result = new List(); foreach (DataRow dataRow in dataSet.Tables[0].Rows) { var item = new EszkozItemCo(dataRow); result.Add(item); } return result; } } }