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

108 lines
4 KiB
C#

using System;
using Kreta.DataAccessManual.Interfaces;
using Kreta.DataAccessManual.Util;
using Kreta.Enums;
using Kreta.Framework;
using SDA.DataProvider;
namespace Kreta.DataAccessManual
{
internal class OktatasNevelesiFeladatDal : DataAccessBase, IOktatasNevelesiFeladatDal
{
public OktatasNevelesiFeladatDal(DalHandler handler) : base(handler) { }
public bool IsAMIModuleActive(int tanevId)
{
return IsModuleActive(tanevId, (int)OktatasiNevelesiFeladatEnum.AlapfokuMuveszetoktatas, (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas);
}
public bool IsKollegiumModuleActive(int tanevId)
{
return IsModuleActive(tanevId, (int)OktatasiNevelesiFeladatEnum.kollegium, (int)OktNevelesiKategoriaEnum.Kollegium);
}
public bool IsEGYMIModuleActive(int tanevId)
{
return IsModuleActive(tanevId, (int)OktatasiNevelesiFeladatEnum.OvodaGyogypedagogia, (int)OktNevelesiKategoriaEnum.EGYMI);
}
private bool IsModuleActive(int tanevId, int nevelesiFeladatId, int nevelesiKategoriaId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add("pTanevId", tanevId);
command.Parameters.Add("pId", nevelesiFeladatId);
command.Parameters.Add("pFeladatKategoriaId", nevelesiKategoriaId);
command.CommandText = @"
IF EXISTS
(
SELECT 1
FROM T_OKTATASINEVELESIFELADAT_OSSZES o
WHERE o.C_ALTANEVID = :pTanevId AND o.TOROLT = 'F'
AND ID = :pId AND C_FELADATKATEGORIAID = :pFeladatKategoriaId
)
SELECT 1
ELSE
SELECT 0
";
return Convert.ToBoolean(command.ExecuteScalar());
}
}
public bool IsAzonosKategoria(int oldId, int newId)
{
using (var command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add(nameof(newId), newId);
command.Parameters.Add(nameof(oldId), oldId);
command.CommandText = $@"
IF EXISTS
(
SELECT 1
FROM T_OKTATASINEVELESIFELADAT_OSSZES old
INNER JOIN T_OKTATASINEVELESIFELADAT_OSSZES new on new.ID = @{nameof(newId)}
WHERE old.ID = @{nameof(oldId)}
AND old.C_FELADATKATEGORIAID = new.C_FELADATKATEGORIAID
)
SELECT 1
ELSE
SELECT 0
";
return Convert.ToBoolean(command.ExecuteScalar());
}
}
public int GetFeladatKategoriaId(int id, int tanevId)
{
using (SDACommand command = new SDACommand())
{
command.Connection = UserContext.Instance.SDAConnection;
command.Transaction = UserContext.Instance.SDATransaction;
command.Parameters.Add(nameof(id), id);
command.Parameters.Add(nameof(tanevId), tanevId);
command.CommandText = $@"
SELECT TOP 1
C_FELADATKATEGORIAID
FROM T_OKTATASINEVELESIFELADAT_OSSZES
WHERE ID = @{nameof(id)}
AND C_ALTANEVID = @{nameof(tanevId)}
AND TOROLT = 'F'
";
var result = command.ExecuteScalar();
return result != DBNull.Value ? Convert.ToInt32(result) : 0;
}
}
}
}