using System.Collections.Generic; using System.Data; using System.Linq; using Kreta.BusinessLogic.Classes; using Kreta.Client.CoreApi; using Kreta.Client.CoreApi.Response; using Kreta.Core; using Kreta.Core.ConnectionType; using Kreta.Core.Exceptions; using Kreta.DataAccess.Interfaces; using Kreta.DataAccessManual; using Kreta.DataAccessManual.Util; using Kreta.Enums; using Kreta.Resources; namespace Kreta.BusinessLogic.Helpers { public class FeltarGondviseloHelper : FeltarHelper { #region Constructors public FeltarGondviseloHelper(IConnectionType connectionType) : base(connectionType) { } #endregion Constructors public bool IsEszkozIgenyelheto(ICoreApiClient coreApiClient, int gondviseloId) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var intezmenyDal = h.IntezmenyDal(); var tanevDal = h.TanevDal(); var intezmenyAdatok = intezmenyDal.Get(IntezmenyId); var tanevAdatok = tanevDal.Get(TanevId); var eszkozAdatok = new EszkozIgenylesHelper(new DalHandlerConnectionType(ConnectionType, h)).EszkozIgenylesGet(coreApiClient, intezmenyAdatok.Guid.ToString(), tanevAdatok.Sorszam.Value, null, gondviseloId); return !eszkozAdatok.Any(x => x.ElfogadottAszf); }); } public bool IsEszkozIgenyelheto(int tanuloId) { return Dal.CustomConnection.Run(ConnectionType, (h) => { return h.EszkozigenylesDal().GetGondviseloEszkozIgenylesAdat(IntezmenyId, TanevId, tanuloId).Tables[0].Rows.Count < 1; }); } public bool? IsRegisztralt(int tanuloId, int gondviseloId) { var dataSet = Dal.CustomConnection.Run(ConnectionType, (h) => { return h.EszkozigenylesDal().GetGondviseloEszkozIgenylesAdat(IntezmenyId, TanevId, tanuloId); }); return dataSet.Tables[0].Rows.Count < 1 ? (bool?)null : SDAConvert.ToInt32(dataSet.Tables[0].Rows[0]["C_GONDVISELOID"]) == gondviseloId; } public bool EszkozIgenyles(ICoreApiClient coreApiClient, int gondviseloId) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var intezmenyDal = h.IntezmenyDal(); var tanevDal = h.TanevDal(); var intezmenyAdatok = intezmenyDal.Get(IntezmenyId); var tanevAdatok = tanevDal.Get(TanevId); var eszkozIgenylesDto = new EszkozIgenylesCreateDto() { GondviseloId = gondviseloId, ElfogadottAszf = true }; var response = new EszkozIgenylesHelper(new DalHandlerConnectionType(ConnectionType, h)).EszkozIgenylesInsert(coreApiClient, eszkozIgenylesDto, intezmenyAdatok.Guid.ToString(), tanevAdatok.Sorszam.Value); if (response.IsEntityId()) { return true; } else { throw new BlException(ErrorResource.SikertelenMentes); } }); } public void EszkozIgenyles(int tanuloId, int gondviseloId) { Dal.CustomConnection.Run(ConnectionType, (h) => { var tanuloOsztalyCsoportjai = h.OsztalyCsoport().GetTanuloOsztalyCsoportjai(tanuloId); var egyediFeladatEllatasiHelyIdSorrend = new List { (int)OktNevelesiKategoriaEnum.NevelesOktatas, (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas, (int)OktNevelesiKategoriaEnum.EGYMI, (int)OktNevelesiKategoriaEnum.Kollegium, (int)OktNevelesiKategoriaEnum.Felnottkepzes }; IEszkozIgenyles eszkozIgenyles = h.EszkozigenylesDal().Get(); eszkozIgenyles.IntezmenyId = IntezmenyId; eszkozIgenyles.TanevId = TanevId; eszkozIgenyles.TanuloId = tanuloId; eszkozIgenyles.GondviseloId = gondviseloId; eszkozIgenyles.IsElfogadottAszf = true; var list = tanuloOsztalyCsoportjai.Where(x => Core.Constants.FeltarEvfolyamList.Contains(x.EvfolyamTipusa)); if (list.Any()) { eszkozIgenyles.FeladatEllatasiHelyId = list.OrderBy(x => egyediFeladatEllatasiHelyIdSorrend.IndexOf(x.FeladatKategoriaId.Value)).FirstOrDefault().FeladatEllatasiHelyId; } else { var tanulo = new TanuloHelper(ConnectionType).GetTanuloiAdatok(tanuloId, null, true, true); if (tanulo.IsOsszevontOsztaly && Core.Constants.FeltarEvfolyamList.Contains(tanulo.TanuloEvfolyamTipus.Value)) { eszkozIgenyles.FeladatEllatasiHelyId = h.OsztalyCsoport().Get(tanulo.OsztalyId.Value).FeladatEllatasiHelyId; } } eszkozIgenyles.EszkozIgenylesStatuszId = (int)EszkozIgenylesStatuszEnum.regisztraciot_benyujtotta; h.EszkozigenylesDal().Insert(eszkozIgenyles); }); } public int? GetTanuloOsztalyaEszkozigenyles(int tanuloId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.OsztalyCsoport(); var ds = dal.GetTanuloOsztalyEsFeladatkategoriaList(tanuloId, TanevId, IntezmenyId); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { var tanuloOsztalyCsoportjai = ds.Tables[0].AsEnumerable().Select(x => new { ID = x.Field("ID"), FeladatKategoriaId = x.Field("FeladatKategoriaId") }); var egyediFeladatEllatasiHelyIdSorrend = new List { (int)OktNevelesiKategoriaEnum.NevelesOktatas, (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas, (int)OktNevelesiKategoriaEnum.EGYMI, (int)OktNevelesiKategoriaEnum.Kollegium, (int)OktNevelesiKategoriaEnum.Felnottkepzes }; return tanuloOsztalyCsoportjai.OrderBy(x => egyediFeladatEllatasiHelyIdSorrend.IndexOf(x.FeladatKategoriaId)).FirstOrDefault().ID; } return (int?)null; }); } } }