using System; using System.Collections.Generic; using System.Data; using System.Linq; using Kreta.BusinessLogic.Exceptions; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Utils; using Kreta.Core.ConnectionType; using Kreta.DataAccessManual; using Kreta.Enums; using Kreta.KretaServer.Exceptions; using Kreta.Resources; namespace Kreta.BusinessLogic.Helpers { public class MukodesiHelyHelper : LogicBase { public MukodesiHelyHelper(IConnectionType connectionType) : base(connectionType) { } public IDictionary GetMukodesiHelyekDDL(string baseText) { return Dal.CustomConnection.Run(ConnectionType, h => { return LogicUtil.CreateDropdownContent(h.MukodesiHelyDAL(GridParameters).GetMukodesiHelyekForDropDown(TanevId), "ID", "C_NEV", baseText); }); } public List GetMukodesiHelyekForFelhelyValaszto() { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.MukodesiHelyDAL(GridParameters); var ds = dal.GetMukodesiHelyekForFelhelyValaszto(TanevId, (int)OktatasiNevelesiFeladatEnum.PedagogiaiSzakszolgaltatas); var result = new List() { new FelHelyValasztoItemCo { MukodesiHelyID = 0, FelhelyId = 0, MukodesiHelyNev = CommonResource.Minden } }; if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { foreach (DataRow dataRow in ds.Tables[0].Rows) { var item = new FelHelyValasztoItemCo(dataRow); result.Add(item); } } return result; }); } public DataSet GetMukodesiHelyek() { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.MukodesiHelyDAL(GridParameters); var ds = dal.GetMukodesiHelyek(TanevId); return ds; }); } public MukodesiHelyCO GetMukodesiHelyAdatok(int ID) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.MukodesiHelyDAL(); var mukodesiHely = dal.Get(ID); return new MukodesiHelyCO(mukodesiHely); }); } public void SaveMukodesiHely(MukodesiHelyCO model) { if (string.IsNullOrWhiteSpace(model.Nev)) { throw new ArgumentNullException("Nev"); } if (model.Telefonszam != null && model.Telefonszam.Length > 50) { throw new FormatException("Telefonszam"); } Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.MukodesiHelyDAL(); bool isModification = model.ID.HasValue; var mukodesiHely = dal.Get(); if (isModification) { mukodesiHely = dal.Get(model.ID.Value); } else // Új felvétele (lehet hogy már volt ilyen nevű, ami ki lett törölve és ez esetben Update-eljük azt és legyen újra TOROLT = 'F') { var entity = dal.GetMukodesiHelyByNev(model.Nev, TanevId); if (entity != null) { mukodesiHely = entity; mukodesiHely.Torolt = false; isModification = true; } } var intezmeny = h.IntezmenyDal().Get(model.IntezmenyID); var intAdatokId = intezmeny.IntezmenyAdatok.Where(x => x.Torolt == false && x.TanevId == TanevId).Select(y => y.ID).FirstOrDefault(); mukodesiHely.IntezmenyAdatokId = intAdatokId; mukodesiHely.Nev = model.Nev; mukodesiHely.MukodesiHelyAzonosito = model.MukodesiHelyAzonosito; mukodesiHely.MukodesiHelyTipusa = model.MukodesiHelyTipusa; mukodesiHely.Telefonszam = model.Telefonszam; mukodesiHely.Varos = model.Varos; mukodesiHely.VezetoNeve = model.VezetoNeve; mukodesiHely.IntezmenyId = model.IntezmenyID; mukodesiHely.IranyitoSzam = model.Iranyitoszam; mukodesiHely.EmailCim = model.Email; mukodesiHely.Fax = model.Fax; mukodesiHely.Szekhely = model.MukodesiHelyTipusa == (int)MukodesiHelyTipusEnum.Szekhely; mukodesiHely.Ajto = model.Ajto; mukodesiHely.Emelet = model.Emelet; mukodesiHely.KozteruletNev = model.Kozterulet; mukodesiHely.KozteruletJellegeNev = model.KozteruletJellegeNev; mukodesiHely.Hazszam = model.Szam; mukodesiHely.TanevId = model.TanevId.Value; if (model.TelephelyAnyaintezmeny.HasValue && model.MukodesiHelyTipusa == (int)MukodesiHelyTipusEnum.Telephely) { mukodesiHely.TelephelyAnyaintezmenyId = model.TelephelyAnyaintezmeny.Value; } else if (isModification) { mukodesiHely.TelephelyAnyaintezmeny = null; } if (dal.MukodesiHelyAzonositoExists(mukodesiHely)) { throw new KretaException(ErrorResource.AMegadottMukodesiHelyAzonositoMarLetezik); } if (!isModification) { dal.Insert(mukodesiHely); } else { dal.FullUpdate(mukodesiHely); } }); } public bool MukodesiHelyAzonositoExists(MukodesiHelyCO model) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.MukodesiHelyDAL(); bool isModification = model.ID.HasValue; var mukodesiHely = dal.Get(); if (isModification) { mukodesiHely = dal.Get(model.ID.Value); } else // Új felvétele (lehet hogy már volt ilyen nevű, ami ki lett törölve és ez esetben Update-eljük azt és legyen újra TOROLT = 'F') { var entity = dal.GetMukodesiHelyByNev(model.Nev, TanevId); if (entity != null) { mukodesiHely = entity; mukodesiHely.Torolt = false; isModification = true; } } mukodesiHely.MukodesiHelyAzonosito = model.MukodesiHelyAzonosito; mukodesiHely.TanevId = model.TanevId.Value; return dal.MukodesiHelyAzonositoExists(mukodesiHely); }); } public void DeleteMukodesiHely(int ID) { Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.MukodesiHelyDAL(); var mukodesihely = dal.Get(ID); if (mukodesihely.FeladatEllatasiHely.Count > 0 && mukodesihely.FeladatEllatasiHely.Any(x => x.Torolt == false)) { throw new CannotBeDeletedException(message: IntezmenyResource.MukodesihelyNemTorolheto); } dal.Delete(mukodesihely); }); } public void SetSzekhely(int mukodesiHelyID) { Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.MukodesiHelyDAL(); dal.SetSzekhely(mukodesiHelyID); }); } } }