using System.Collections.Generic; using System.Data; using System.Text; using Kreta.DataAccess.Interfaces; using Kreta.DataAccessManual.Interfaces; using Kreta.DataAccessManual.Util; using Kreta.Framework.Util; using SDA.Kreta.Entities; namespace Kreta.DataAccessManual { internal class MerohelyDal : DataAccessBase, IMerohelyDal { public MerohelyDal(DalHandler handler, GridParameters parameters) : base(handler, parameters) { } public MerohelyDal(DalHandler handler) : base(handler) { } public IMerohely GetMerohely() { return Merohely.GiveAnInstance(); } public IMeroallas GetMeroallas() { return Meroallas.GiveAnInstance(); } public void FullUpdate(IMerohely dto) { var entity = dto as Merohely; entity.FullUpdate(true); DalHelper.Commit(); } public void Update(IMerohely dto) { var entity = dto as Merohely; entity.FullUpdate(); DalHelper.Commit(); } public void Insert(IMerohely dto) { var entity = dto as Merohely; entity.Insert(true); dto.ID = entity.ID; DalHelper.Commit(); } public void Delete(int id) { Merohely entity = Merohely.GiveAnInstance(); entity.LoadByID(id); entity.Delete(); DalHelper.Commit(); } public DataSet MerohelyKereses(int tanevId, int intezmenyId, string merohelyNev, int? merohelyTipusId, int? keresesMerohelyMukodesiHelyId, int? isMeroallasFrissiteseSzukseges) { var paramsList = new List(); paramsList.Add(new CommandParameter("pTanevId", tanevId)); paramsList.Add(new CommandParameter("pIntezmenyId", intezmenyId)); var command = new StringBuilder(@" SELECT merohely.ID MerohelyId ,merohely.C_NEV Nev ,merohely.C_MEROALLASFRISSITESESZUKSEGES MeroallasFrissiteseSzukseges ,merohely.C_MEROHELYTIPUSID MerohelyTipus ,merohely.C_MUKODESIHELYID MukodesiHelyId ,mukodesiHely.C_NEV MukodesihelyNev ,merohely.C_MEROORAAZONOSITO MerooraAzonosito FROM T_MEROHELY_OSSZES Merohely LEFT JOIN T_DICTIONARYITEMBASE_OSSZES Dictionary ON Dictionary.ID = Merohely.C_MEROHELYTIPUSID AND Dictionary.C_TANEVID = :pTanevId LEFT JOIN T_MUKODESIHELY_OSSZES MukodesiHely ON MukodesiHely.ID = Merohely.C_MUKODESIHELYID AND MukodesiHely.TOROLT = 'F' WHERE Mukodesihely.C_TANEVID = :pTanevId AND Merohely.C_TANEVID = :pTanevId AND Merohely.C_INTEZMENYID = :pIntezmenyId AND Merohely.TOROLT='F' "); if (!string.IsNullOrWhiteSpace(merohelyNev)) { command.Append($" AND LOWER(Merohely.C_NEV) like '%' + @{nameof(merohelyNev)} + '%'"); paramsList.Add(new CommandParameter(nameof(merohelyNev), merohelyNev.ToLowerInvariant())); } if (merohelyTipusId.HasValue) { command.Append(@" AND Merohely.C_MEROHELYTIPUSID = :pMerohelyTipusId"); paramsList.Add(new CommandParameter("pMerohelyTipusId", merohelyTipusId)); } if (keresesMerohelyMukodesiHelyId.HasValue) { command.Append(@" AND Merohely.C_MUKODESIHELYID = :pKeresesMerohelyMukodesiHelyId"); paramsList.Add(new CommandParameter("pKeresesMerohelyMukodesiHelyId", keresesMerohelyMukodesiHelyId)); } if (isMeroallasFrissiteseSzukseges.HasValue) { if (isMeroallasFrissiteseSzukseges.Value == 1) { command.Append(@" AND Merohely.C_MEROALLASFRISSITESESZUKSEGES = 'T'"); } if (isMeroallasFrissiteseSzukseges.Value == 0) { command.Append(@" AND Merohely.C_MEROALLASFRISSITESESZUKSEGES = 'F'"); } } var ds = this.GetData(command.ToString(), paramsList, dictionaryItemColumns: "MerohelyTipus", booleanColumns: "MeroallasFrissiteseSzukseges"); return ds; } public DataSet GetNemToroltMerohelyek(int tanevId, int intezmenyId) { var paramsList = new List(); paramsList.Add(new CommandParameter("pTanevId", tanevId)); paramsList.Add(new CommandParameter("pIntezmenyId", intezmenyId)); var command = new StringBuilder(@" SELECT merohely.ID MerohelyId ,merohely.C_NEV Nev FROM T_MEROHELY_OSSZES Merohely WHERE Merohely.C_TANEVID = :pTanevId AND Merohely.C_INTEZMENYID = :pIntezmenyId AND Merohely.TOROLT = 'F' "); var ds = this.GetData(command.ToString(), paramsList); return ds; } public DataSet GetMeroallasListByMerohelyId(int merohelyId) { var paramsList = new List(); paramsList.Add(new CommandParameter("pMerohelyId", merohelyId)); var command = new StringBuilder(@" SELECT meroallas.ID MeroallasId ,meroallas.C_MEROHELYID MerohelyId ,meroallas.C_ERTEK Ertek ,meroallas.C_LEOLVASASDATUMA LeolvasasDatuma ,IIF(f.C_MEROALLASID IS NOT NULL, 'T', 'F' ) KeppelRendelkezik FROM T_MEROALLAS_OSSZES meroallas LEFT JOIN T_FELTOLTOTTFAJL_MEROALLAS f On f.C_MEROALLASID = meroallas.ID WHERE C_MEROHELYID = :pMerohelyId AND meroallas.TOROLT = 'F' "); DataSet ds = this.GetData(command.ToString(), paramsList, booleanColumns: "KeppelRendelkezik"); return ds; } public IMerohely GetMerohelyById(int id) { Merohely entity = Merohely.GiveAnInstance(); entity.LoadByID(id); return entity; } public IMeroallas GetMeroallasById(int id) { Meroallas entity = Meroallas.GiveAnInstance(); entity.LoadByID(id); return entity; } } }