kreta/Kreta.BusinessLogic/Helpers/FeltarGondviseloHelper.cs
2024-03-13 00:33:46 +01:00

137 lines
6.1 KiB
C#

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> { (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<int>("ID"), FeladatKategoriaId = x.Field<int>("FeladatKategoriaId") });
var egyediFeladatEllatasiHelyIdSorrend = new List<int> { (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;
});
}
}
}