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 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 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 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 }, egyszerAdhatoErtekelesTipusIds); } if (!firstItem.IsMagatartasSzorgalom) { IsValidTanuloMentesseg(tanuloErtekelesCo, tanuloMentessegValidationDataSet); IsValidErtekelesSzazalek(tanuloErtekelesCo); IsValidSzorgalomTargykategoriaErtekeles(tanuloErtekelesCo, tantargyCoList); IsValidErtekelesSzoveg(tanuloErtekelesCo); } } } } }