97 lines
4.1 KiB
C#
97 lines
4.1 KiB
C#
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.Core.ConnectionType;
|
|
using Kreta.DataAccessManual;
|
|
|
|
namespace Kreta.BusinessLogic.Logic.TanuloErtekeles
|
|
{
|
|
public class TanuloErtekelesValidacioWeb : TanuloErtekelesValidacioBase
|
|
{
|
|
public TanuloErtekelesValidacioWeb(IConnectionType connectionType) : base(connectionType)
|
|
{
|
|
}
|
|
|
|
public void Validate(List<TanuloErtekelesCo> tanuloErtekelesCoList)
|
|
{
|
|
//NOTE: A validációhoz szükséges közös adatok, minden egyes item-nél benne vannak és ezek megegyeznek, ezért elég ha csak a firstItem-et vizsgáljuk
|
|
TanuloErtekelesCo firstItem = tanuloErtekelesCoList.FirstOrDefault();
|
|
var tanuloIdList = tanuloErtekelesCoList.Select(x => x.TanuloId).ToList();
|
|
//NOTE: Levalidáljuk, hogy van-e egyáltalán menteni való elem!
|
|
IsExists(firstItem);
|
|
if (!IsValid)
|
|
{
|
|
return;
|
|
}
|
|
|
|
//NOTE: Levalidáljuk a közös, alap adatokat!
|
|
IsValidOsztalyCsoportId(firstItem);
|
|
IsValidTipusId(firstItem);
|
|
IsValidDatum(firstItem);
|
|
|
|
List<int> egyszerAdhatoErtekelesTipusIds = EnumExtensions.GetErtekelesTipusDictionaryItems(ConnectionType.TanevId, true).Select(x => x.Id).ToList();
|
|
if (!firstItem.IsMagatartasSzorgalom)
|
|
{
|
|
IsValidSpecialisErtekelesOsztalyzatId(tanuloErtekelesCoList, egyszerAdhatoErtekelesTipusIds, firstItem.TipusId);
|
|
IsValidErtekelesFajta(tanuloErtekelesCoList);
|
|
IsValidTantargyId(firstItem);
|
|
IsValidErtekelesTema(firstItem);
|
|
}
|
|
else
|
|
{
|
|
IsValidMagatartasSzorgalomFajta(tanuloErtekelesCoList);
|
|
}
|
|
if (!IsValid)
|
|
{
|
|
return;
|
|
}
|
|
|
|
//NOTE: Levalidáljuk a közös, alap adatokra épülő dolgokat!
|
|
IsValidDatumIsTanitasiNap(firstItem);
|
|
IsValidUtolsoTanitasiNapUtanErtekeles(firstItem);
|
|
if (!firstItem.IsMagatartasSzorgalom)
|
|
{
|
|
IsValidErtekelesModId(firstItem);
|
|
}
|
|
if (!IsValid)
|
|
{
|
|
return;
|
|
}
|
|
|
|
DataSet tanuloMentessegValidationDataSet = null;
|
|
if (!firstItem.IsMagatartasSzorgalom)
|
|
{
|
|
var helper = new TanuloErtekelesHelper(ConnectionType);
|
|
tanuloMentessegValidationDataSet = helper.ValidateTanuloListTanuloMentesseg(tanuloIdList, firstItem.TantargyId.Value, firstItem.Datum);
|
|
}
|
|
var osztalyCsoportHelper = new OsztalyCsoportHelper(ConnectionType);
|
|
List<TantargyItemCo> tantargyCoList = new TantargyHelper(ConnectionType).GetTantargyCoList();
|
|
//NOTE: Levalidáljuk az összes bejövő tanuló értékelést!
|
|
|
|
foreach (TanuloErtekelesCo tanuloErtekelesCo in tanuloErtekelesCoList)
|
|
{
|
|
//NOTE: Az egyszer adható tanuló értékelés validációra csak akkor van szükség, ha a tanuló az osztály/csoport tagja.
|
|
var isTanuloOsztalyCsoportTagja = Dal.CustomConnection.Run(ConnectionType, dalHandler =>
|
|
{
|
|
return IsValidTanuloOsztalyCsoportTagja(dalHandler, tanuloErtekelesCo, osztalyCsoportHelper);
|
|
});
|
|
|
|
if (isTanuloOsztalyCsoportTagja)
|
|
{
|
|
IsValidEgyszerAdhatoTanuloErtekeles(firstItem, new List<TanuloErtekelesCo> { tanuloErtekelesCo }, egyszerAdhatoErtekelesTipusIds);
|
|
}
|
|
|
|
if (!firstItem.IsMagatartasSzorgalom)
|
|
{
|
|
IsValidTanuloMentesseg(tanuloErtekelesCo, tanuloMentessegValidationDataSet);
|
|
IsValidErtekelesSzazalek(tanuloErtekelesCo);
|
|
IsValidSzorgalomTargykategoriaErtekeles(tanuloErtekelesCo, tantargyCoList);
|
|
IsValidErtekelesSzoveg(tanuloErtekelesCo);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|