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