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

148 lines
4.4 KiB
C#

using System.Collections.Generic;
using System.Data;
using System.Linq;
using Kreta.Core.Logic;
using Kreta.DataAccess.Interfaces;
using Kreta.DataAccessManual.Interfaces;
using Kreta.DataAccessManual.Util;
using Kreta.Ellenorzo.Dao.VN.Telefon;
using Kreta.Framework.Entities;
using Kreta.Framework.Util;
using SDA.DataProvider;
using SDA.Kreta.Entities;
namespace Kreta.DataAccessManual
{
internal class TelefonDal : DataAccessBase, ITelefonDal
{
public TelefonDal(DalHandler handler) : base(handler)
{
}
public TelefonDal(DalHandler handler, GridParameters gridParameters) : base(handler, gridParameters)
{
}
public void SetTelefonAlapertelmezett(int tanuloId, int userId, int tanevId)
{
var commandText = @"
UPDATE
T_TELEFON_OSSZES
SET
C_ALAPERTELMEZETT = 'F',
SERIAL = SERIAL + 1,
LASTCHANGED = GETDATE(),
MODIFIER = :pUserId
WHERE
C_FELHASZNALOID = :pTanuloId
AND C_TANEVID = :pTanevId
AND C_GONDVISELOID IS NULL";
using (SDACommand command = DAUtil.CreateCommand(commandText))
{
command.Parameters.Add("pUserId", SDADBType.Int).Value = userId;
command.Parameters.Add("pTanuloId", SDADBType.Int).Value = tanuloId;
command.Parameters.Add("pTanevId", SDADBType.Int).Value = tanevId;
command.ExecuteNonQuery();
}
}
/// INFO @DevKornel: Mobil használja
public List<TelefonResponseDao> ListTelefon(List<int> felhasznaloIds, bool? isPublic)
{
var parameters = new List<CommandParameter>();
if (isPublic.HasValue)
{
parameters.Add(new CommandParameter("pIsPublic", isPublic.Value ? 'T' : 'F'));
}
var felhasznaloIdsString = SqlLogic.ParseListToParameter(felhasznaloIds).ToString();
var command = @"
SELECT
t.ID AS ID
,t.C_TELEFONSZAM AS Telefonszam
,t.C_TELEFONTIPUSA AS Tipus
,t.C_ALAPERTELMEZETT AS Alapertelmezett
,t.C_FELHASZNALOID AS FelhasznaloId
,t.C_GONDVISELOID AS GondviseloId
FROM T_TELEFON t
WHERE 1 = 1
" + (!string.IsNullOrWhiteSpace(felhasznaloIdsString) ? $@"AND t.C_FELHASZNALOID IN({felhasznaloIdsString}) " : "")
+ (isPublic.HasValue ? $@" AND t.C_ISPUBLIC = :pIsPublic " : "");
var dataSet = GetData(command, parameters);
DataTable dataTable = dataSet.Tables[0];
SetDNAME(dataTable, "Tipus");
return dataTable.AsDataSet().ToDaoList<TelefonResponseDao>();
}
public void Delete(int id)
{
var entity = Telefon.GiveAnInstance();
entity.LoadByID(id);
entity.Delete();
DalHelper.Commit();
}
public void Delete(ITelefon dto)
{
var entity = (Telefon)dto;
entity.Delete();
DalHelper.Commit();
}
public void FullUpdate(ITelefon dto)
{
var entity = dto as Telefon;
entity.FullUpdate();
DalHelper.Commit();
}
public void Update(ITelefon dto)
{
var entity = dto as Telefon;
entity.Update();
DalHelper.Commit();
}
public ITelefon Get()
{
return Telefon.GiveAnInstance();
}
public ITelefon GetSpecific(string condition, int tanevId)
{
var entity = Telefon.LoadWithFilter(condition + $" AND C_TANEVID = {tanevId}").FirstOrDefault();
return entity;
}
public ITelefon Get(int id)
{
var entity = Telefon.GiveAnInstance();
entity.LoadByID(id);
return entity;
}
public void Insert(ITelefon dto)
{
var entity = dto as Telefon;
entity.Insert();
dto.ID = entity.ID;
DalHelper.Commit();
}
public void AddFelhasznaloTelefon(IFelhasznalo felhasznalo, ITelefon telefon)
{
((Felhasznalo)felhasznalo).Telefon.Add((Telefon)telefon);
}
}
}