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

218 lines
6.7 KiB
C#

using System.Collections.Generic;
using System.Data;
using Kreta.Core;
using Kreta.DataAccess.Interfaces;
using Kreta.DataAccessManual.Interfaces;
using Kreta.DataAccessManual.Util;
using Kreta.Framework;
using SDA.DataProvider;
using SDA.Kreta.Entities;
namespace Kreta.DataAccessManual
{
internal class ZaradekDal : DataAccessBase, IZaradekDal
{
public ZaradekDal(DalHandler handler) : base(handler)
{
}
public void Delete(int id)
{
var entity = Zaradek.GiveAnInstance();
entity.LoadByID(id);
Delete(entity);
}
public void Delete(IZaradek dto)
{
var entity = dto as Zaradek;
entity.ZaradekNyelv?.DeleteAll();
entity.Delete();
DalHelper.Commit();
}
public void DeleteIdegenNyelv(int id)
{
var entity = ZaradekNyelv.GiveAnInstance();
entity.LoadByID(id);
DeleteIdegenNyelv(entity);
}
public void DeleteIdegenNyelv(IZaradekNyelv dto)
{
var entity = dto as ZaradekNyelv;
entity.Delete();
DalHelper.Commit();
}
public void DeleteAll(List<int> tanuloCsoportIdList, int felhasznaloId, bool isOsztalyList)
{
if (tanuloCsoportIdList.Count > 0)
{
using (SDACommand command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspDeleteAllZaradekokAndZaradekNyelvekByTanulocsoportok";
command.Parameters.Add("pModifierId", felhasznaloId);
command.Parameters.Add("pTanuloCsoportIdList", string.Join(",", tanuloCsoportIdList));
command.Parameters.Add("pIsOsztalyList", isOsztalyList);
command.ExecuteNonQuery();
DalHelper.Commit();
}
}
}
public void DeleteLasts(List<int> tanuloCsoportIdList, int felhasznaloId, bool isOsztalyList)
{
if (tanuloCsoportIdList.Count > 0)
{
using (SDACommand command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspDeleteLastsZaradekokAndZaradekNyelvekByTanulocsoportok";
command.Parameters.Add("pModifierId", felhasznaloId);
command.Parameters.Add("pTanuloCsoportIdList", string.Join(",", tanuloCsoportIdList));
command.Parameters.Add("pIsOsztalyList", isOsztalyList);
command.ExecuteNonQuery();
DalHelper.Commit();
}
}
}
public IZaradek Get(int id)
{
var entity = Zaradek.GiveAnInstance();
entity.LoadByID(id);
return entity;
}
public IZaradek Get()
{
return Zaradek.GiveAnInstance();
}
public IZaradekNyelv GetIdegenNyelv(int id)
{
var entity = ZaradekNyelv.GiveAnInstance();
entity.LoadByID(id);
return entity;
}
public IZaradekNyelv GetIdegenNyelv()
{
return ZaradekNyelv.GiveAnInstance();
}
public int Insert(IZaradek dto)
{
var entity = dto as Zaradek;
entity.Insert();
dto.ID = entity.ID;
DalHelper.Commit();
return dto.ID;
}
public int InsertIdegenNyelv(IZaradekNyelv dto)
{
var entity = dto as ZaradekNyelv;
entity.Insert();
dto.ID = entity.ID;
DalHelper.Commit();
return dto.ID;
}
public void Update(IZaradek dto)
{
var entity = dto as Zaradek;
entity.Update();
DalHelper.Commit();
}
public void FullUpdate(IZaradek dto)
{
var entity = dto as Zaradek;
entity.FullUpdate();
DalHelper.Commit();
}
public void UpdateIdegenNyelv(IZaradekNyelv dto)
{
var entity = dto as ZaradekNyelv;
entity.Update();
DalHelper.Commit();
}
public DataSet GetZaradekok(int tanevId, int intezmenyId, List<int> nemzetiDokumentumNyelvek, int tanuloCsoportId, int? tanuloId = null)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspGetZaradekok";
command.Parameters.Add(nameof(tanevId), tanevId);
command.Parameters.Add(nameof(intezmenyId), intezmenyId);
command.Parameters.Add(nameof(tanuloCsoportId), SDADBType.Int).Value = tanuloCsoportId;
if (nemzetiDokumentumNyelvek.Count > 0)
{
command.Parameters.Add(nameof(nemzetiDokumentumNyelvek), string.Join(",", nemzetiDokumentumNyelvek));
}
if (tanuloId.IsEntityId())
{
command.Parameters.Add(nameof(tanuloId), SDADBType.Int).Value = tanuloId.Value;
}
var dts = new DataSet();
using (var adapter = new SDADataAdapter())
{
adapter.SelectCommand = command;
adapter.Fill(dts);
}
return dts;
}
}
public DataSet GetTanuloKiVagyAtsorolasiZaradekai(int tanuloCsoportId, int zaradekId)
{
var parameters = new List<CommandParameter>
{
new CommandParameter("pTanuloCsoportId", tanuloCsoportId),
new CommandParameter("pZaradekId", zaradekId)
};
const string command = @"
SELECT
Id
FROM T_ZARADEK_OSSZES
WHERE
C_ISKIVAGYATSOROLASIZARADEK = 'T'
AND TOROLT = 'F'
AND T_ZARADEK_OSSZES.C_TANULOCSOPORTID = :pTanuloCsoportId
AND Id <> :pZaradekId
";
return GetData(command, parameters);
}
}
}