using System; using System.Data; using System.Linq; using Kreta.DataAccess.Interfaces; using Kreta.DataAccessManual.Interfaces; using Kreta.DataAccessManual.Util; using Kreta.Framework; using Kreta.Framework.Entities; using Kreta.Framework.Util; using SDA.DataProvider; using SDA.Kreta.Entities; namespace Kreta.DataAccessManual { internal class CimDal : DataAccessBase, ICimDal { [Obsolete("Tároltra kell cserélni minél hamarabb")] public ICim GetSpecific(string condition, int tanevId) { var entity = Cim.LoadWithFilter(condition + $" AND C_TANEVID = {tanevId}").FirstOrDefault(); return entity; } public void Delete(int id) { var entity = Cim.GiveAnInstance(); entity.LoadByID(id); entity.Delete(); DalHelper.Commit(); } public void FullUpdate(ICim dto) { var entity = dto as Cim; entity.FullUpdate(); DalHelper.Commit(); } public void Update(ICim dto) { var entity = dto as Cim; entity.Update(); DalHelper.Commit(); } public ICim Get() { return Cim.GiveAnInstance(); } public ICim Get(int id) { var entity = Cim.GiveAnInstance(); entity.LoadByID(id); return entity; } public void Insert(ICim dto) { var entity = dto as Cim; entity.Insert(); dto.ID = entity.ID; DalHelper.Commit(); } public void Delete(ICim dto) { var entity = dto as Cim; entity.Delete(); DalHelper.Commit(); } public DataSet GetCimDataSet(int tanevId, int tanuloId, string filter = null) { using (var sdaCommand = new SDACommand()) { string commandText = @" SELECT cim.ID Id ,cim.C_CIMTIPUSA TipusId ,cim.C_IRANYITOSZAM Iranyitoszam ,cim.C_VAROS Telepules ,cim.C_KOZTERULET Kozterulet ,cim.C_KOZTERULETJELLEGENEV KozteruletJellegNev ,cim.C_HAZSZAM Hazszam ,cim.C_EMELET Emelet ,cim.C_AJTO Ajto ,cim.C_GONDVISELOID GondviseloId ,tanulo.ID TanuloId ,cim.C_ALAPERTELMEZETT Alapertelmezett ,cim.C_ORSZAG Orszag FROM T_CIM_OSSZES cim INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON felhasznalo.TOROLT = 'F' AND felhasznalo.C_TANEVID = cim.C_TANEVID AND felhasznalo.ID = cim.C_FELHASZNALOID LEFT JOIN T_FELHASZNALO_OSSZES tanulo ON tanulo.TOROLT = 'F' AND tanulo.C_TANEVID = felhasznalo.C_TANEVID AND tanulo.ID = felhasznalo.ID WHERE cim.TOROLT = 'F' AND cim.C_TANEVID = :pTanevId AND cim.C_FELHASZNALOID = :pTanuloId"; commandText += filter ?? string.Empty; sdaCommand.Connection = UserContext.Instance.SDAConnection; sdaCommand.Transaction = UserContext.Instance.SDATransaction; sdaCommand.CommandType = CommandType.Text; sdaCommand.CommandText = commandText; sdaCommand.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId; sdaCommand.Parameters.Add("pTanuloId", SDADBType.Int).Value = tanuloId; var dataSet = new DataSet(); using (var adapter = new SDADataAdapter()) { adapter.SelectCommand = sdaCommand; adapter.Fill(dataSet); } DataTable dataTable = dataSet.Tables[0]; SetDNAME(dataTable, "TipusId"); DataTable result = SortingAndPaging(dataTable, GridParameters); return result.AsDataSet(); } } public CimDal(DalHandler handler) : base(handler) { } public CimDal(DalHandler handler, GridParameters gridParameters) : base(handler, gridParameters) { } public void AddFelhasznaloCim(IFelhasznalo felhasznalo, ICim cim) { ((Felhasznalo)felhasznalo).Cim.Add((Cim)cim); } public void SetAlapertelmezett(int felhasznaloId, int userId, int tanevId, int? gondviseloId = null) { var commandText = @" UPDATE T_CIM_OSSZES SET C_ALAPERTELMEZETT = 'F', SERIAL = SERIAL + 1, LASTCHANGED = GETDATE(), MODIFIER = :pUserId WHERE TOROLT = 'F' AND C_FELHASZNALOID = :pFelhasznaloId AND C_TANEVID = :pTanevId"; if (gondviseloId.HasValue) { commandText += ($" AND C_GONDVISELOID = :pGondviseloId"); } else { commandText += ($" AND C_GONDVISELOID IS NULL"); } using (SDACommand command = DAUtil.CreateCommand(commandText)) { command.Parameters.Add("pUserId", SDADBType.Int).Value = userId; command.Parameters.Add("pFelhasznaloId", SDADBType.Int).Value = felhasznaloId; command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId; if (gondviseloId.HasValue) { command.Parameters.Add("pGondviseloId", SDADBType.Int).Value = gondviseloId; } command.ExecuteNonQuery(); } } } }