kreta/Kreta.DataAccessManual/CimDAL.cs
2024-03-13 00:33:46 +01:00

187 lines
6.4 KiB
C#

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();
}
}
}
}