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

178 lines
5.4 KiB
C#

using System.Data;
using Kreta.Core;
using Kreta.DataAccess.Interfaces;
using Kreta.DataAccessManual.Interfaces;
using Kreta.DataAccessManual.Util;
using Kreta.Framework;
using Kreta.Framework.Util;
using SDA.DataProvider;
using SDA.Kreta.Entities;
namespace Kreta.DataAccessManual
{
internal class JelszoModositasLinkDal : DataAccessBase, IJelszoModositasLinkDal
{
public JelszoModositasLinkDal(DalHandler handler, GridParameters parameters)
: base(handler, parameters)
{
}
public JelszoModositasLinkDal(DalHandler handler) : base(handler)
{
}
public IJelszoModositasLink Get()
{
return JelszoModositasLink.GiveAnInstance();
}
public IJelszoModositasLink Get(int id)
{
var entity = JelszoModositasLink.GiveAnInstance();
entity.LoadByID(id);
return entity;
}
public int? GetId(string guid)
{
if (!string.IsNullOrWhiteSpace(guid))
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add(nameof(guid), guid);
command.CommandText = $@"
SELECT link.ID
FROM T_JELSZOMODOSITASLINK link
INNER JOIN T_TANEV tanev ON tanev.ID = link.C_TANEVID AND tanev.C_INTEZMENYID = link.C_INTEZMENYID AND tanev.C_AKTIV = 'T' AND tanev.TOROLT = 'F'
WHERE link.C_AZONOSITO = @{nameof(guid)}
AND link.TOROLT = 'F'
";
var result = command.ExecuteScalar();
if (int.TryParse(result?.ToString(), out int res))
{
return res;
}
}
}
return null;
}
public void FullUpdate(IJelszoModositasLink dto)
{
var entity = dto as JelszoModositasLink;
entity.FullUpdate(true);
DalHelper.Commit();
}
public void Update(IJelszoModositasLink dto)
{
var entity = dto as JelszoModositasLink;
entity.FullUpdate();
DalHelper.Commit();
}
public void Insert(IJelszoModositasLink dto)
{
var entity = dto as JelszoModositasLink;
entity.Insert(true);
dto.ID = entity.ID;
DalHelper.Commit();
}
public void Delete(int id)
{
var entity = JelszoModositasLink.GiveAnInstance();
entity.LoadByID(id);
Delete(entity);
}
public void Delete(IJelszoModositasLink dto)
{
var entity = dto as JelszoModositasLink;
entity.Delete();
DalHelper.Commit();
}
public string GetGuidByGondviseloId(int gondviseloId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add(nameof(gondviseloId), gondviseloId);
command.CommandText = $@"
SELECT link.C_AZONOSITO
FROM T_JELSZOMODOSITASLINK link
INNER JOIN T_TANEV tanev ON tanev.ID = link.C_TANEVID AND tanev.C_INTEZMENYID = link.C_INTEZMENYID AND tanev.C_AKTIV = 'T' AND tanev.TOROLT = 'F'
WHERE link.C_GONDVISELOID = @{nameof(gondviseloId)}
AND link.TOROLT = 'F'
";
var result = command.ExecuteScalar();
return result?.ToString() ?? null;
}
}
public void DeleteIfExists(int felhasznaloId, int? gondviseloId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add(nameof(felhasznaloId), felhasznaloId);
var gondviseloSzures = string.Empty;
if (gondviseloId.IsEntityId())
{
command.Parameters.Add(nameof(gondviseloId), gondviseloId);
gondviseloSzures = $" AND link.C_GONDVISELOID = @{nameof(gondviseloId)} ";
}
else
{
gondviseloSzures = $" AND link.C_GONDVISELOID IS NULL ";
}
command.CommandText = $@"
UPDATE link
SET link.TOROLT = 'T'
FROM T_JELSZOMODOSITASLINK link
INNER JOIN T_TANEV tanev ON tanev.ID = link.C_TANEVID AND tanev.C_INTEZMENYID = link.C_INTEZMENYID AND tanev.C_AKTIV = 'T' AND tanev.TOROLT = 'F'
WHERE link.C_FELHASZNALOID = @{nameof(felhasznaloId)}
AND link.TOROLT = 'F'
{gondviseloSzures}
";
int numberOfUpdatedRows = command.ExecuteNonQuery();
}
}
public void DeleteInvalidLinks()
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspDeleteInvalidLinks";
command.ExecuteNonQuery();
DalHelper.Commit();
}
}
}
}