This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,225 @@
using System;
using System.Collections.Generic;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.Core;
using Kreta.DataAccess.Interfaces;
using Kreta.Enums;
using Kreta.Resources;
namespace Kreta.BusinessLogic.Logic.TanuloErtekeles
{
public class TanuloErtekelesLogicBase
{
#region Fields
public static List<int> NyelviesithetoTanuloErtekelesTipusIdList => new List<int>
{
//NOTE: Egyelőre ez azért egy elemű lista, mert a jövőben bővülni fog és így csak itt kell kiegészíteni nem sok helyen átírni.
// Ha 1-nél több eleme van, akkor törölni ezt a NOTE-ot!
(int) ErtekelesTipusEnum.evvegi_jegy_ertekeles
};
public static List<int> HaviAtlagbaNemSzamitoErtekelesTipusIdList => new List<int>
{
(int) ErtekelesTipusEnum.muveszeti_alapvizsga,
(int) ErtekelesTipusEnum.muveszeti_zarovizsga
};
#endregion Fields
/// INFO @DevKornel: Mobil használja
public static string GetOsztalyzatTextShort(int? osztalyzat, List<int> egyszerAdhatoErtekelesTipusIds, bool isDefaultReturnValueNull = false, int? tipusId = null, string tema = null)
{
switch (osztalyzat)
{
case (int)OsztalyzatTipusEnum.elegtelen_1_:
return "1";
case (int)OsztalyzatTipusEnum.elegseges_2_:
return "2";
case (int)OsztalyzatTipusEnum.kozepes_3_:
return "3";
case (int)OsztalyzatTipusEnum.jo_4_:
return "4";
case (int)OsztalyzatTipusEnum.jeles_5_:
var jeles = "5";
if (tipusId.IsEntityId() && egyszerAdhatoErtekelesTipusIds.Contains(tipusId.Value))
{
if (tema.ReplaceMultipleSpacesAndTrim(string.Empty).ToLower() == TanuloErtekelesResource.Dicseret.ReplaceMultipleSpacesAndTrim()?.ToLower())
{
jeles = TanuloErtekelesResource.DicseretRovidNev;
}
else if (tema.ReplaceMultipleSpacesAndTrim(string.Empty).ToLower() == TanuloErtekelesResource.Kituno.ReplaceMultipleSpacesAndTrim()?.ToLower())
{
jeles = TanuloErtekelesResource.KitunoRovidNev;
}
}
return jeles;
default:
return isDefaultReturnValueNull ? null : "-";
}
}
public static void SetDefaultTanuloErtekelesProperties(ITanuloErtekeles entity, TanuloErtekelesCo tanuloErtekelesCo, DateTime datum, bool isMagatartasSzorgalom, bool isNew)
{
int tipusId = tanuloErtekelesCo.TipusId;
entity.TipusId = tipusId;
entity.Datum = datum;
entity.IsFromMobil = tanuloErtekelesCo.IsFromMobil;
if (!isMagatartasSzorgalom)
{
SetErtekelesProperties(entity, tanuloErtekelesCo, isNew, tipusId);
}
else
{
SetMagatartasSzorgalomProperties(entity, tanuloErtekelesCo);
}
if (tanuloErtekelesCo.IntezmenyId.IsEntityId())
{
entity.IntezmenyId = tanuloErtekelesCo.IntezmenyId.Value;
}
}
private static void SetErtekelesProperties(ITanuloErtekeles entity, TanuloErtekelesCo tanuloErtekelesCo, bool isNew, int tipusId)
{
if (isNew)
{
entity.TantargyId = tanuloErtekelesCo.TantargyId.Value;
}
if (tanuloErtekelesCo.ErtekelesOsztalyzatId.IsEntityId())
{
entity.ErtekelesOsztalyzatId = tanuloErtekelesCo.ErtekelesOsztalyzatId.Value;
}
else
{
entity.ErtekelesOsztalyzatId = null;
}
if (!string.IsNullOrWhiteSpace(tanuloErtekelesCo.ErtekelesSzoveg))
{
entity.ErtekelesSzoveg = tanuloErtekelesCo.ErtekelesSzoveg;
entity.ErtekelesSzovegFormazott = tanuloErtekelesCo.ErtekelesSzovegFormazott;
string ertekelesSzovegRovidNev = tanuloErtekelesCo.ErtekelesSzovegRovidNev;
entity.ErtekelesSzovegRovidNev = !string.IsNullOrWhiteSpace(ertekelesSzovegRovidNev) ? ertekelesSzovegRovidNev : null;
}
else
{
entity.ErtekelesSzoveg = null;
entity.ErtekelesSzovegFormazott = null;
entity.ErtekelesSzovegRovidNev = null;
}
if (tanuloErtekelesCo.ErtekelesSzazalek.HasValue)
{
entity.ErtekelesSzazalek = tanuloErtekelesCo.ErtekelesSzazalek.Value;
}
else
{
entity.ErtekelesSzazalek = null;
}
if (tipusId == (int)ErtekelesTipusEnum.evkozi_jegy_ertekeles && tanuloErtekelesCo.ErtekelesModId.IsEntityId())
{
entity.ErtekelesModId = tanuloErtekelesCo.ErtekelesModId.Value;
}
else
{
entity.ErtekelesModId = null;
}
entity.ErtekelesTema = !string.IsNullOrWhiteSpace(tanuloErtekelesCo.ErtekelesTema) ? tanuloErtekelesCo.ErtekelesTema : null;
}
private static void SetMagatartasSzorgalomProperties(ITanuloErtekeles entity, TanuloErtekelesCo tanuloErtekelesCo)
{
if (tanuloErtekelesCo.MagatartasOsztalyzatId.IsEntityId())
{
entity.MagatartasOsztalyzatId = tanuloErtekelesCo.MagatartasOsztalyzatId.Value;
}
else
{
entity.MagatartasOsztalyzatId = null;
}
if (!string.IsNullOrWhiteSpace(tanuloErtekelesCo.MagatartasSzoveg))
{
entity.MagatartasSzoveg = tanuloErtekelesCo.MagatartasSzoveg;
entity.MagatartasSzovegFormazott = tanuloErtekelesCo.MagatartasSzovegFormazott;
string magatartasSzovegRovidNev = tanuloErtekelesCo.MagatartasSzovegRovidNev;
entity.MagatartasSzovegRovidNev = !string.IsNullOrWhiteSpace(magatartasSzovegRovidNev) ? magatartasSzovegRovidNev : null;
}
else
{
entity.MagatartasSzoveg = null;
entity.MagatartasSzovegFormazott = null;
entity.MagatartasSzovegRovidNev = null;
}
if (tanuloErtekelesCo.MagatartasErtekId.IsEntityId())
{
entity.MagatartasErtekId = tanuloErtekelesCo.MagatartasErtekId.Value;
}
else
{
entity.MagatartasErtekId = null;
}
if (tanuloErtekelesCo.SzorgalomOsztalyzatId.IsEntityId())
{
entity.SzorgalomOsztalyzatId = tanuloErtekelesCo.SzorgalomOsztalyzatId.Value;
}
else
{
entity.SzorgalomOsztalyzatId = null;
}
if (!string.IsNullOrWhiteSpace(tanuloErtekelesCo.SzorgalomSzoveg))
{
entity.SzorgalomSzoveg = tanuloErtekelesCo.SzorgalomSzoveg;
entity.SzorgalomSzovegFormazott = tanuloErtekelesCo.SzorgalomSzovegFormazott;
string szorgalomSzovegRovidNev = tanuloErtekelesCo.SzorgalomSzovegRovidNev;
entity.SzorgalomSzovegRovidNev = !string.IsNullOrWhiteSpace(szorgalomSzovegRovidNev) ? szorgalomSzovegRovidNev : null;
}
else
{
entity.SzorgalomSzoveg = null;
entity.SzorgalomSzovegFormazott = null;
entity.SzorgalomSzovegRovidNev = null;
}
if (tanuloErtekelesCo.SzorgalomErtekId.IsEntityId())
{
entity.SzorgalomErtekId = tanuloErtekelesCo.SzorgalomErtekId.Value;
}
else
{
entity.SzorgalomErtekId = null;
}
}
public static void SetNewTanuloErtekelesProperties(ITanuloErtekeles entity, TanuloErtekelesCo tanuloErtekelesCo, int felhasznaloId, bool isMagatartasSzorgalom, int? rogziteskoriTanuloOsztalyId)
{
entity.TanuloId = tanuloErtekelesCo.TanuloId;
entity.ErtekeloId = tanuloErtekelesCo.ErtekeloId ?? felhasznaloId;
entity.RogzitesDatum = DateTime.Now;
entity.OsztalyCsoportId = tanuloErtekelesCo.OsztalyCsoportId.Value;
entity.IsMagatartasSzorgalom = isMagatartasSzorgalom;
if (tanuloErtekelesCo.OsszefuggoSzakGyakId.IsEntityId())
{
entity.OsszefuggoSzakGyakId = tanuloErtekelesCo.OsszefuggoSzakGyakId.Value;
}
if (rogziteskoriTanuloOsztalyId.IsEntityId())
{
entity.RogziteskoriTanuloOsztalyId = rogziteskoriTanuloOsztalyId.Value;
}
}
}
}

View file

@ -0,0 +1,97 @@
using System.Collections.Generic;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.Ertekeles;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Utils;
using Kreta.Core.Validation.Exceptions;
using Kreta.Core.Validation.Exceptions.Enum;
using Kreta.Enums;
using Kreta.Resources;
namespace Kreta.BusinessLogic.Logic.TanuloErtekeles
{
public class TanuloErtekelesLogicMobil : TanuloErtekelesLogicBase
{
/// INFO @DevKornel: Mobil használja
public static List<TanuloErtekelesCo> GetTanuloErtekelesCoListV2(int intezmenyId, int felhasznaloId, OsztalyCsoportErtekelesRequestCo osztalyCsoportErtekelesRequestCo)
{
var tanuloErtekelesCoList = new List<TanuloErtekelesCo>();
foreach (var item in osztalyCsoportErtekelesRequestCo.TanuloLista)
{
var tanuloErtekelesCo = new TanuloErtekelesCo
{
MobilId = item.MobilId,
TanuloId = item.TanuloId,
ErtekelesModId = osztalyCsoportErtekelesRequestCo.Mod?.Id,
TipusId = osztalyCsoportErtekelesRequestCo.Tipus.Id,
ErtekeloId = felhasznaloId,
IntezmenyId = intezmenyId,
OsztalyCsoportId = osztalyCsoportErtekelesRequestCo.OsztalyCsoportId,
TantargyId = osztalyCsoportErtekelesRequestCo.TantargyId,
ErtekelesOsztalyzatId = item.Ertekeles.OsztalyzatTipus?.Id,
ErtekelesSzazalek = item.Ertekeles.Szazalek,
ErtekelesTema = osztalyCsoportErtekelesRequestCo.Tema,
Datum = osztalyCsoportErtekelesRequestCo.Datum,
IsFromMobil = true
};
if (!string.IsNullOrWhiteSpace(item.Ertekeles.Szoveg))
{
string ertekelesSzovegFormazott = RichTextLogic.GetLegalHtmlString(item.Ertekeles.Szoveg, RichTextLogic.LegalFastReportHtmlTagList, true);
tanuloErtekelesCo.ErtekelesSzovegFormazott = ertekelesSzovegFormazott;
tanuloErtekelesCo.ErtekelesSzoveg = CommonUtils.RemoveAllHtmlTags(ertekelesSzovegFormazott);
}
tanuloErtekelesCoList.Add(tanuloErtekelesCo);
}
return tanuloErtekelesCoList;
}
public static List<TanuloErtekelesCo> GetTanuloErtekelesCoList(int intezmenyId, int felhasznaloId, Classes.MobileApi.Naplo.V3.Co.Ertekeles.OsztalyCsoportErtekelesRequestCo osztalyCsoportErtekelesRequestCo)
{
var tanuloErtekelesCoList = new List<TanuloErtekelesCo>();
foreach (var item in osztalyCsoportErtekelesRequestCo.TanuloLista)
{
var tanuloErtekelesCo = new TanuloErtekelesCo
{
TanuloId = item.TanuloId,
ErtekelesModId = osztalyCsoportErtekelesRequestCo.Mod?.Id,
TipusId = (int)ErtekelesTipusEnum.evkozi_jegy_ertekeles, // Direkt van beégetve, mobilról csak évközi jegy értékelés lehet
ErtekeloId = felhasznaloId,
IntezmenyId = intezmenyId,
OsztalyCsoportId = osztalyCsoportErtekelesRequestCo.OsztalyCsoportId,
TantargyId = osztalyCsoportErtekelesRequestCo.TantargyId,
ErtekelesOsztalyzatId = item.Ertekeles.OsztalyzatTipus?.Id,
ErtekelesSzazalek = int.TryParse(item.Ertekeles.Szazalek, out var szam) ? (int?)szam : null,
ErtekelesTema = osztalyCsoportErtekelesRequestCo.Tema,
Datum = osztalyCsoportErtekelesRequestCo.Datum,
IsFromMobil = true
};
if (!string.IsNullOrWhiteSpace(item.Ertekeles.Szoveg))
{
var ertekelesSzovegFormazott = RichTextLogic.GetLegalHtmlString(item.Ertekeles.Szoveg, RichTextLogic.LegalFastReportHtmlTagList, true);
tanuloErtekelesCo.ErtekelesSzovegFormazott = ertekelesSzovegFormazott;
tanuloErtekelesCo.ErtekelesSzoveg = CommonUtils.RemoveAllHtmlTags(ertekelesSzovegFormazott);
}
tanuloErtekelesCoList.Add(tanuloErtekelesCo);
}
return tanuloErtekelesCoList;
}
public static ValidationException GetValidationException(List<ValidationExceptionItem> errors)
{
var validationException = new ValidationException(ValidationErrorType.Undefined, TanuloErtekelesResource.HibasErtekeles);
foreach (var item in errors)
{
validationException.AddValidationItem(item);
}
return validationException;
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,580 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlTypes;
using System.Linq;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.DokumentumHelpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.BusinessLogic.Utils;
using Kreta.Core;
using Kreta.Core.ConnectionType;
using Kreta.DataAccess.Interfaces;
using Kreta.DataAccessManual.Interfaces;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
namespace Kreta.BusinessLogic.Logic.TanuloErtekeles
{
public abstract class TanuloErtekelesValidacioBase
{
#region Fields
public readonly List<string> ErrorMessageList = new List<string>();
protected bool IsValid = true;
private const int ErtekelesTemaMaxLength = 2000;
protected IConnectionType ConnectionType;
#endregion Fields
#region Constructors
protected TanuloErtekelesValidacioBase(IConnectionType connectionType)
{
ConnectionType = connectionType;
}
#endregion Constructors
protected void IsExists(TanuloErtekelesCo tanuloErtekelesCo)
{
if (tanuloErtekelesCo == null)
{
ErrorMessageList.Add(TanuloErtekelesResource.NincsKitoltveEgyetlenErtekelesSem);
IsValid = false;
}
}
protected void IsValidOsztalyCsoportId(TanuloErtekelesCo tanuloErtekelesCo)
{
if (!tanuloErtekelesCo.OsztalyCsoportId.IsEntityId())
{
ErrorMessageList.Add(TanuloErtekelesResource.OsztalyCsoportKivalasztasaKotelezo);
IsValid = false;
}
else
{
if (new NaplozarasLogic(ConnectionType).GetLezartOsztalyokEsBontottCsoportjaik().Contains(tanuloErtekelesCo.OsztalyCsoportId.Value))
{
ErrorMessageList.Add(tanuloErtekelesCo.Id.HasValue ? TanuloErtekelesResource.AKivalasztottOsztalyNaplojaLezartNemModosithatoErtekelesAzOsztalyTanuloinaknak : TanuloErtekelesResource.AKivalasztottOsztalyNaplojaLezartNemAdhatoErtekelesAzOsztalyTanuloinaknak);
IsValid = false;
}
}
}
protected void IsValidTanoraiCeluOsztalyCsoport(TanuloErtekelesCo tanuloErtekelesCo)
{
if (tanuloErtekelesCo.OsztalyCsoportId.IsEntityId())
{
bool nemTanoraiCeluCsoportokErtekelesiLehetosege = new SystemSettingsHelper(ConnectionType).GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.nem_tanorai_celu_csoportok_ertekelesi_lehetosege);
bool isOsztalyCsoportNemTanoraiCeluCsoport = new OsztalyCsoportHelper(ConnectionType).IsOsztalyCsoportNemTanoraiCeluCsoport(tanuloErtekelesCo.OsztalyCsoportId.Value);
if (!nemTanoraiCeluCsoportokErtekelesiLehetosege && isOsztalyCsoportNemTanoraiCeluCsoport)
{
ErrorMessageList.Add(TanuloErtekelesResource.NemTanoraiCeluCsoporthozNemLehetErtekelestRogziteni);
IsValid = false;
}
}
}
protected void IsValidTipusId(TanuloErtekelesCo tanuloErtekelesCo)
{
if (!tanuloErtekelesCo.TipusId.IsEntityId())
{
ErrorMessageList.Add(TanuloErtekelesResource.ErtekelesTipusanakMegadasaKotelezo);
IsValid = false;
}
}
protected void IsValidDatum(TanuloErtekelesCo tanuloErtekelesCo)
{
DateTime datum = tanuloErtekelesCo.Datum;
if (datum == default)
{
ErrorMessageList.Add(string.Format(CommonResource.Required, $"\"{TanuloErtekelesResource.BejegyzesDatuma}\""));
IsValid = false;
}
else
{
if (datum > DateTime.Today)
{
ErrorMessageList.Add(TanuloErtekelesResource.BejegyzesDatumaNemlehetKesobbiMintAMaiNap);
IsValid = false;
}
var isCsakNaplozasZarasa = new SystemSettingsHelper(ConnectionType).GetSystemSettingValue<NaplozarasErvenyessegiKoreEnum>(RendszerBeallitasTipusEnum.elektronikus_naplo_zarasanak_datuma_beallitas_ervenyesegi_kore) == NaplozarasErvenyessegiKoreEnum.CsakNaplozasZarasa;
if (!isCsakNaplozasZarasa && datum < new OrarendHelper(ConnectionType).GetNaplozarasDate(startDate: null))
{
ErrorMessageList.Add(TanuloErtekelesResource.BejegyzesDatumaNemLehetKorabbiMintAMegengedett);
IsValid = false;
}
}
}
protected void IsValidSpecialisErtekelesOsztalyzatId(List<TanuloErtekelesCo> model, List<int> egyszerAdhatoErtekelesTipusIds, int tipusId)
{
foreach (TanuloErtekelesCo item in model)
{
if (item.SpecialisErtekelesOsztalyzatId.IsEntityId())
{
if (item.SpecialisErtekelesOsztalyzatId.Value == (int)SpecialisErtekelesOsztalyzatEnum.NemIrt &&
egyszerAdhatoErtekelesTipusIds.Contains(tipusId))
{
ErrorMessageList.Add(string.Format(
TanuloErtekelesResource.NemKaphatTipusuErtekelesOsztalyzatotAKovetkezoTanulonal,
tipusId.GetDisplayName<ErtekelesTipusEnum>(ConnectionType.TanevId),
item.SpecialisErtekelesOsztalyzatId.Value.GetDisplayName<SpecialisErtekelesOsztalyzatEnum>(ConnectionType.TanevId),
item.TanuloSzuletesiNev));
IsValid = false;
}
else if ((item.SpecialisErtekelesOsztalyzatId.Value == (int)SpecialisErtekelesOsztalyzatEnum.Dicseret ||
item.SpecialisErtekelesOsztalyzatId.Value == (int)SpecialisErtekelesOsztalyzatEnum.Kituno ||
item.SpecialisErtekelesOsztalyzatId.Value == (int)SpecialisErtekelesOsztalyzatEnum.Mentesitve) &&
!egyszerAdhatoErtekelesTipusIds.Contains(tipusId))
{
ErrorMessageList.Add(string.Format(
TanuloErtekelesResource.NemKaphatTipusuErtekelesOsztalyzatotAKovetkezoTanulonal,
tipusId.GetDisplayName<ErtekelesTipusEnum>(ConnectionType.TanevId),
item.SpecialisErtekelesOsztalyzatId.Value.GetDisplayName<SpecialisErtekelesOsztalyzatEnum>(ConnectionType.TanevId),
item.TanuloSzuletesiNev));
IsValid = false;
}
}
}
}
protected void IsValidErtekelesFajta(List<TanuloErtekelesCo> model)
{
bool isOsztalyzattalErtekelheto = false;
bool isSzovegesenErtekelheto = false;
bool isSzazalekosanErtekelheto = false;
if (model != null && model.Count > 0 && model[0].TantargyId.HasValue)
{
(isOsztalyzattalErtekelheto, isSzovegesenErtekelheto, isSzazalekosanErtekelheto) = new TantargyHelper(ConnectionType).GetErtekelesKorlatozasok(model[0].TantargyId.Value);
}
foreach (TanuloErtekelesCo item in model)
{
bool hasErtekelesOsztalyzat = false;
bool hasErtekelesSzoveges = false;
bool hasErtekelesSzazalekos = false;
int? specialisErtekelesOsztalyzatId = item.SpecialisErtekelesOsztalyzatId;
if (item.ErtekelesOsztalyzatId.IsEntityId() || specialisErtekelesOsztalyzatId.IsEntityId())
{
if (!isOsztalyzattalErtekelheto)
{
ErrorMessageList.Add(TanuloErtekelesResource.ErtekelesFajtajaNemLehetOsztalyzat);
IsValid = false;
break;
}
hasErtekelesOsztalyzat = true;
}
// NOTE: A Mentesitve és a NemIrt speciális osztályzat esetén szöveges értékelés jön létre osztályzat helyett, viszont az osztályzatok tabfülről jön,
// így ezt nem vesszük szöveges értékelésnek validációkor. Emiatt nem is dobunk validációs hibát, mert olyan mintha osztályzat lenne.
// Ezt az ErtekelesListSaveModel.cs-ben állítjuk ToCoList függvényben.
if (!string.IsNullOrWhiteSpace(item.ErtekelesSzoveg) &&
(!specialisErtekelesOsztalyzatId.IsEntityId() ||
(specialisErtekelesOsztalyzatId.IsEntityId() &&
specialisErtekelesOsztalyzatId != (int)SpecialisErtekelesOsztalyzatEnum.Mentesitve &&
specialisErtekelesOsztalyzatId != (int)SpecialisErtekelesOsztalyzatEnum.NemIrt)))
{
if (!isSzovegesenErtekelheto)
{
ErrorMessageList.Add(TanuloErtekelesResource.ErtekelesFajtajaNemLehetSzoveges);
IsValid = false;
break;
}
hasErtekelesSzoveges = true;
}
if (item.ErtekelesSzazalek.HasValue)
{
if (!isSzazalekosanErtekelheto)
{
ErrorMessageList.Add(TanuloErtekelesResource.ErtekelesFajtajaNemLehetSzazalek);
IsValid = false;
break;
}
hasErtekelesSzazalekos = true;
}
if (!hasErtekelesOsztalyzat &&
!hasErtekelesSzoveges &&
!hasErtekelesSzazalekos)
{
ErrorMessageList.Add(TanuloErtekelesResource.ErtekelesFajtajaNemLehetNull);
IsValid = false;
}
else
{
if (!CommonUtils.TernaryXor(
hasErtekelesOsztalyzat,
hasErtekelesSzoveges,
hasErtekelesSzazalekos))
{
ErrorMessageList.Add(TanuloErtekelesResource.ErtekelesFajtajaNemLehetKulonbozo);
IsValid = false;
}
}
}
}
protected void IsValidTantargyId(TanuloErtekelesCo tanuloErtekelesCo)
{
if (!tanuloErtekelesCo.TantargyId.IsEntityId())
{
ErrorMessageList.Add(TanuloErtekelesResource.TantargyKivalasztasaKotelezo);
IsValid = false;
}
}
protected void IsValidErtekelesTema(TanuloErtekelesCo tanuloErtekelesCo)
{
string ertekelesTema = tanuloErtekelesCo.ErtekelesTema;
if (!string.IsNullOrWhiteSpace(ertekelesTema))
{
if (ertekelesTema.Length > ErtekelesTemaMaxLength)
{
ErrorMessageList.Add(TanuloErtekelesResource.ErtekelesTemaTulHosszu);
IsValid = false;
}
List<int> nemzetiDokumentumNyelvek = new SystemSettingsHelper(ConnectionType).GetSystemSettingValue<List<int>>(RendszerBeallitasTipusEnum.Nemzeti_Nyelvi_Dokumentum_Nyelvek);
if (nemzetiDokumentumNyelvek.Any() && TanuloErtekelesLogicBase.NyelviesithetoTanuloErtekelesTipusIdList.Contains(tanuloErtekelesCo.TipusId))
{
if (DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(nemzetiDokumentumNyelvek, AnyanyelvEnum.nemet))
{
string ertekelesTemaNemet = tanuloErtekelesCo.ErtekelesTemaNemet;
if (!string.IsNullOrWhiteSpace(ertekelesTemaNemet) && ertekelesTemaNemet.Length > ErtekelesTemaMaxLength)
{
ErrorMessageList.Add(TanuloErtekelesResource.ErtekelesTemaNemetTulHosszu);
IsValid = false;
}
}
if (DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(nemzetiDokumentumNyelvek, AnyanyelvEnum.horvat))
{
string ertekelesTemaHorvat = tanuloErtekelesCo.ErtekelesTemaHorvat;
if (!string.IsNullOrWhiteSpace(ertekelesTemaHorvat) && ertekelesTemaHorvat.Length > ErtekelesTemaMaxLength)
{
ErrorMessageList.Add(TanuloErtekelesResource.ErtekelesTemaHorvatTulHosszu);
IsValid = false;
}
}
if (DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(nemzetiDokumentumNyelvek, AnyanyelvEnum.roman))
{
string ertekelesTemaRoman = tanuloErtekelesCo.ErtekelesTemaRoman;
if (!string.IsNullOrWhiteSpace(ertekelesTemaRoman) && ertekelesTemaRoman.Length > ErtekelesTemaMaxLength)
{
ErrorMessageList.Add(TanuloErtekelesResource.ErtekelesTemaRomanTulHosszu);
IsValid = false;
}
}
if (DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(nemzetiDokumentumNyelvek, AnyanyelvEnum.szerb))
{
string ertekelesTemaSzerb = tanuloErtekelesCo.ErtekelesTemaSzerb;
if (!string.IsNullOrWhiteSpace(ertekelesTemaSzerb) && ertekelesTemaSzerb.Length > ErtekelesTemaMaxLength)
{
ErrorMessageList.Add(TanuloErtekelesResource.ErtekelesTemaSzerbTulHosszu);
IsValid = false;
}
}
}
}
}
protected void IsValidMagatartasSzorgalomFajta(List<TanuloErtekelesCo> model)
{
bool hasMagatartasSzorgalomOsztalyzat = false;
bool hasMagatartasSzorgalomSzoveges = false;
bool hasMagatartasSzorgalomErtek = false;
foreach (TanuloErtekelesCo item in model)
{
if (item.MagatartasOsztalyzatId.IsEntityId() || item.SzorgalomOsztalyzatId.IsEntityId())
{
hasMagatartasSzorgalomOsztalyzat = true;
}
if (!string.IsNullOrWhiteSpace(item.MagatartasSzoveg) || !string.IsNullOrWhiteSpace(item.SzorgalomSzoveg))
{
hasMagatartasSzorgalomSzoveges = true;
}
if (item.MagatartasErtekId.IsEntityId() || item.SzorgalomErtekId.IsEntityId())
{
hasMagatartasSzorgalomErtek = true;
}
}
if (!hasMagatartasSzorgalomOsztalyzat && !hasMagatartasSzorgalomSzoveges && !hasMagatartasSzorgalomErtek)
{
ErrorMessageList.Add(TanuloErtekelesResource.MagatartasSzorgalomFajtajaNemLehetNull);
IsValid = false;
}
else
{
if (!CommonUtils.TernaryXor(
hasMagatartasSzorgalomOsztalyzat,
hasMagatartasSzorgalomSzoveges,
hasMagatartasSzorgalomErtek))
{
ErrorMessageList.Add(TanuloErtekelesResource.MagatartasSzorgalomFajtajaNemLehetKulonbozo);
IsValid = false;
}
}
}
protected void IsValidDatumIsTanitasiNap(TanuloErtekelesCo tanuloErtekelesCo)
{
DateTime datum = tanuloErtekelesCo.Datum;
int? osztalyCsoportId = tanuloErtekelesCo.OsztalyCsoportId;
if (!IsTanitasiNap(datum, osztalyCsoportId))
{
ErrorMessageList.Add(TanuloErtekelesResource.CsakTanitasiNapraVehetoFelErtekeles);
IsValid = false;
}
}
protected void IsValidEgyszerAdhatoTanuloErtekeles(TanuloErtekelesCo tanuloErtekelesCo, List<TanuloErtekelesCo> tanuloErtekelesCoList, List<int> egyszerAdhatoErtekelesTipusIds)
{
int tipusId = tanuloErtekelesCo.TipusId;
int? tantargyId = tanuloErtekelesCo.TantargyId;
DateTime datum = tanuloErtekelesCo.Datum;
int feladatKategoriaId = new OsztalyCsoportHelper(ConnectionType).GetOsztalyCsoportFeladatKategoria(tanuloErtekelesCo.OsztalyCsoportId.Value);
if (egyszerAdhatoErtekelesTipusIds.Contains(tipusId))
{
var helper = new TanuloErtekelesHelper(ConnectionType);
Dictionary<int, int?> tanuloErtekelesDictionary = tanuloErtekelesCoList.Select(x => new { x.TanuloId, x.Id }).ToDictionary(x => x.TanuloId, x => x.Id);
if (helper.CheckTanuloListEgyszerAdhatoTanuloErtekelesValidation(tanuloErtekelesDictionary, tipusId, tantargyId, datum, feladatKategoriaId))
{
var message = string.Format(TanuloErtekelesResource.AzErtekelesTipusbolNemLehetTobbATanevben, tipusId.GetDisplayName<ErtekelesTipusEnum>(ConnectionType.TanevId));
if (!ErrorMessageList.Contains(message))
{
ErrorMessageList.Add(message);
}
IsValid = false;
}
}
}
protected void IsValidErtekelesModId(TanuloErtekelesCo tanuloErtekelesCo)
{
int tipusId = tanuloErtekelesCo.TipusId;
int? ertekelesModId = tanuloErtekelesCo.ErtekelesModId;
if (tipusId == (int)ErtekelesTipusEnum.evkozi_jegy_ertekeles)
{
if (!ertekelesModId.IsEntityId())
{
ErrorMessageList.Add(string.Format(CommonResource.Required, $"\"{TanuloErtekelesResource.ErtekelesModja}\""));
IsValid = false;
}
}
else
{
if (ertekelesModId.IsEntityId())
{
ErrorMessageList.Add(TanuloErtekelesResource.ErtekelesModjaCsakEvkozinélTolthetoKi);
IsValid = false;
}
}
}
protected void IsValidUtolsoTanitasiNapUtanErtekeles(TanuloErtekelesCo tanuloErtekelesCo)
{
var tanevCo = new TanevHelper(ConnectionType).GetTanevInfo();
DateTime datum = tanuloErtekelesCo.Datum;
int tipusId = tanuloErtekelesCo.TipusId;
int? osztalyCsoportId = tanuloErtekelesCo.OsztalyCsoportId;
if (tanevCo.UtolsoTanitasiNap < datum)
{
List<TanevrendOsztalycsoportCO> osztalyTanevrendjei = new TanevrendHelper(ConnectionType).GetOsztalycsoportTanevrendje(datum, osztalyCsoportId ?? 0);
if (osztalyTanevrendjei.All(x => x.Naptipus != (int)NapTipusEnum.RendkivuliTanitasiNap))
{
if (tipusId == (int)ErtekelesTipusEnum.na || tipusId == (int)ErtekelesTipusEnum.evkozi_jegy_ertekeles)
{
ErrorMessageList.Add(string.Format(
TanuloErtekelesResource.ErtekelesUtolsoTanitasiNapUtanValidacio,
tanevCo.UtolsoTanitasiNap.ToString(Constants.ToStringPattern.HungarianDate),
tipusId.GetDisplayName<ErtekelesTipusEnum>(ConnectionType.TanevId)));
IsValid = false;
}
else
{
if (osztalyTanevrendjei.All(x => x.Naptipus != (int)NapTipusEnum.vizsganap))
{
ErrorMessageList.Add(string.Format(TanuloErtekelesResource.ErtekelesUtolsoTanitasiNapUtanValidacioEgyszerAdhato,
tanevCo.UtolsoTanitasiNap.ToString(Constants.ToStringPattern.HungarianDate),
tipusId.GetDisplayName<ErtekelesTipusEnum>(ConnectionType.TanevId),
NapTipusEnum.RendkivuliTanitasiNap.GetDisplayName(ConnectionType.TanevId),
NapTipusEnum.vizsganap.GetDisplayName(ConnectionType.TanevId)));
IsValid = false;
}
}
}
}
}
protected void IsValidTanuloMentesseg(TanuloErtekelesCo tanuloErtekelesCo, DataSet tanuloMentessegValidationDataSet)
{
if (!string.IsNullOrWhiteSpace(tanuloErtekelesCo.ErtekelesSzoveg))
{
if (tanuloErtekelesCo.ErtekelesSzoveg.ReplaceMultipleSpacesAndTrim()?.ToLower() != TanuloErtekelesResource.Mentesitve.ToLower() ||
tanuloErtekelesCo.ErtekelesSzovegRovidNev.ReplaceMultipleSpacesAndTrim()?.ToLower() != TanuloErtekelesResource.MentesitveRovidNev.ToLower())
{
foreach (var tanuloMentessegValidationDataRow in tanuloMentessegValidationDataSet.Tables[0].AsEnumerable())
{
if (SDAConvert.ToInt32(tanuloMentessegValidationDataRow["ID"]) == tanuloErtekelesCo.TanuloId &&
SDAConvert.ToBoolean(tanuloMentessegValidationDataRow["ErtkelesMentesseg_BOOL"]) &&
!SDAConvert.ToBoolean(tanuloMentessegValidationDataRow["SzovegesenErtekelheto_BOOL"]))
{
ErrorMessageList.Add(string.Format(TanuloErtekelesResource.ValidateErtekelesSzovegesFelmentes, tanuloMentessegValidationDataRow["Nev"], tanuloErtekelesCo.Datum.ToShortDateString()));
IsValid = false;
}
}
}
}
else
{
foreach (var tanuloMentessegValidationDataRow in tanuloMentessegValidationDataSet.Tables[0].AsEnumerable())
{
if (SDAConvert.ToInt32(tanuloMentessegValidationDataRow["ID"]) == tanuloErtekelesCo.TanuloId &&
SDAConvert.ToBoolean(tanuloMentessegValidationDataRow["ErtkelesMentesseg_BOOL"]))
{
ErrorMessageList.Add(string.Format(TanuloErtekelesResource.ValidateErtekelesFelmentes, tanuloMentessegValidationDataRow["Nev"], tanuloErtekelesCo.Datum.ToShortDateString()));
IsValid = false;
}
}
}
}
protected bool IsValidTanuloOsztalyCsoportTagja(IDalHandler dalHandler, TanuloErtekelesCo tanuloErtekelesCo, OsztalyCsoportHelper osztalyCsoportHelper)
{
var isTanuloOsztalyCsoportTagja = osztalyCsoportHelper.IsTanuloOsztalyCsoportTagja(tanuloErtekelesCo.TanuloId, tanuloErtekelesCo.OsztalyCsoportId.Value, tanuloErtekelesCo.Datum);
if (!isTanuloOsztalyCsoportTagja)
{
ITanulo tanulo = dalHandler.Tanulo().Get(tanuloErtekelesCo.TanuloId);
ErrorMessageList.Add(string.Format(TanuloErtekelesResource.AdottNaponATanuloNemTagjaAzOsztalyCsoportnak, tanulo.SzuletesiNev));
IsValid = false;
}
return isTanuloOsztalyCsoportTagja;
}
protected void IsValidErtekelesSzazalek(TanuloErtekelesCo model)
{
if (model.ErtekelesSzazalek.HasValue && (model.ErtekelesSzazalek < 0 || model.ErtekelesSzazalek > 100))
{
ErrorMessageList.Add(TanuloErtekelesResource.SzazalekosErtekNincsAMegengedettTartomanyban);
IsValid = false;
}
}
protected void IsValidSzorgalomTargykategoriaErtekeles(TanuloErtekelesCo model, List<TantargyItemCo> tantargyCoList)
{
var tantargyCo = tantargyCoList.SingleOrDefault(x => x.Id == model.TantargyId);
if (tantargyCo != null &&
tantargyCo.TargykategoriaTipusId == (int)TargyKategoriaTipusEnum.Szorgalom &&
model.ErtekelesOsztalyzatId == (int)OsztalyzatTipusEnum.elegtelen_1_)
{
ErrorMessageList.Add(string.IsNullOrWhiteSpace(model.TanuloSzuletesiNev) ?
TanuloErtekelesResource.SzorgalomTargykategoriabaTartozoTantargybolNemAhatoElegtelenOsztalyzat :
string.Format(TanuloErtekelesResource.TanulonakElegelenOsztalyzatotAdtakSzorgalomTargykategoriabaTartozoTantargybolNemAhatoElegtelenOsztalyzat, model.TanuloSzuletesiNev));
IsValid = false;
}
}
protected void IsValidErtekelesSzoveg(TanuloErtekelesCo model)
{
if (!string.IsNullOrWhiteSpace(model.ErtekelesSzoveg) && (model.ErtekelesSzoveg.Length > Constants.MinMaxValues.MaxSzovegesErtekelesHossz))
{
ErrorMessageList.Add(string.Format(ErrorResource.ASzovegNemLehetHosszabbMint0Karakter, Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
IsValid = false;
}
List<int> nemzetiDokumentumNyelvek = new SystemSettingsHelper(ConnectionType).GetSystemSettingValue<List<int>>(RendszerBeallitasTipusEnum.Nemzeti_Nyelvi_Dokumentum_Nyelvek);
if (nemzetiDokumentumNyelvek.Any() && TanuloErtekelesLogicBase.NyelviesithetoTanuloErtekelesTipusIdList.Contains(model.TipusId))
{
if (DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(nemzetiDokumentumNyelvek, AnyanyelvEnum.nemet))
{
string ertekelesSzovegNemet = model.ErtekelesSzovegNemet;
if (!string.IsNullOrWhiteSpace(ertekelesSzovegNemet) && ertekelesSzovegNemet.Length > Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
ErrorMessageList.Add(string.Format(ErrorResource.ASzovegNemetNemLehetHosszabbMint0Karakter, Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
IsValid = false;
}
}
if (DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(nemzetiDokumentumNyelvek, AnyanyelvEnum.horvat))
{
string ertekelesSzovegHorvat = model.ErtekelesSzovegHorvat;
if (!string.IsNullOrWhiteSpace(ertekelesSzovegHorvat) && ertekelesSzovegHorvat.Length > Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
ErrorMessageList.Add(string.Format(ErrorResource.ASzovegHorvatNemLehetHosszabbMint0Karakter, Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
IsValid = false;
}
}
if (DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(nemzetiDokumentumNyelvek, AnyanyelvEnum.roman))
{
string ertekelesSzovegRoman = model.ErtekelesSzovegRoman;
if (!string.IsNullOrWhiteSpace(ertekelesSzovegRoman) && ertekelesSzovegRoman.Length > Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
ErrorMessageList.Add(string.Format(ErrorResource.ASzovegRomanNemLehetHosszabbMint0Karakter, Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
IsValid = false;
}
}
if (DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(nemzetiDokumentumNyelvek, AnyanyelvEnum.szerb))
{
string ertekelesSzovegSzerb = model.ErtekelesSzovegSzerb;
if (!string.IsNullOrWhiteSpace(ertekelesSzovegSzerb) && ertekelesSzovegSzerb.Length > Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
ErrorMessageList.Add(string.Format(ErrorResource.ASzovegSzerbNemLehetHosszabbMint0Karakter, Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
IsValid = false;
}
}
}
}
private bool IsTanitasiNap(DateTime date, int? osztalycsoportId)
{
var sqlMinDate = SqlDateTime.MinValue.Value.Date;
var sqlMaxDate = SqlDateTime.MaxValue.Value.Date;
if (date < sqlMinDate || date > sqlMaxDate)
{
throw new OverflowException(string.Format(ErrorResource.ADatumNemLehetKisebbMintVagyNagyobbMint, sqlMinDate.ToShortDateString(), sqlMaxDate.ToShortDateString()));
}
var osztalyTanevrendjei = new TanevrendHelper(ConnectionType).GetOsztalycsoportTanevrendje(date, osztalycsoportId ?? 0);
if (osztalyTanevrendjei.Any(x => x.Naptipus == (int)NapTipusEnum.vizsganap))
{
return true;
}
bool result = new TanevrendHelper(ConnectionType).IsTanitasiNap(date, osztalycsoportId);
return result;
}
}
}

View file

@ -0,0 +1,140 @@
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;
using Kreta.Core.ConnectionType;
using Kreta.Core.Validation.Exceptions;
using Kreta.Core.Validation.Exceptions.Enum;
using Kreta.DataAccessManual.Interfaces;
using Kreta.Resources;
namespace Kreta.BusinessLogic.Logic.TanuloErtekeles
{
public class TanuloErtekelesValidacioMobil : TanuloErtekelesValidacioBase
{
#region Constructors
public TanuloErtekelesValidacioMobil(IConnectionType connectionType) : base(connectionType)
{
}
#endregion Constructors
public List<TanuloErtekelesCo> Validate(IDalHandler dalHandler, List<TanuloErtekelesCo> tanuloErtekelesCoList, out List<ValidationExceptionItem> validationExceptionItemList)
{
//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)
{
ThrowExeption(tanuloErtekelesCoList);
}
//NOTE: Levalidáljuk a közös, alap adatokat!
IsValidOsztalyCsoportId(firstItem);
IsValidTanoraiCeluOsztalyCsoport(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)
{
ThrowExeption(tanuloErtekelesCoList);
}
//NOTE: Levalidáljuk a közös, alap adatokra épülő dolgokat!
IsValidDatumIsTanitasiNap(firstItem);
IsValidUtolsoTanitasiNapUtanErtekeles(firstItem);
if (!firstItem.IsMagatartasSzorgalom)
{
IsValidErtekelesModId(firstItem);
}
if (!IsValid)
{
ThrowExeption(tanuloErtekelesCoList);
}
validationExceptionItemList = new List<ValidationExceptionItem>();
var result = new List<TanuloErtekelesCo>();
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)
{
IsValid = true;
//IsValidDuplikaltErtekeles(dalHandler, tanuloErtekelesCo); // web-en nincs ilyen vizsgálat és enged teljesen ugyan olyan értékelést menteni
//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 = 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);
}
if (IsValid)
{
result.Add(tanuloErtekelesCo);
}
else
{
validationExceptionItemList.Add(new ValidationExceptionItem(tanuloErtekelesCo.TanuloId.ToString(), string.Join("; ", ErrorMessageList)));
ErrorMessageList.Clear();
}
}
return result;
}
private void ThrowExeption(List<TanuloErtekelesCo> tanuloErtekelesCoList)
{
var validationItems = new List<ValidationExceptionItem>();
foreach (TanuloErtekelesCo tanuloErtekelesCo in tanuloErtekelesCoList)
{
validationItems.Add(new ValidationExceptionItem(tanuloErtekelesCo.TanuloId.ToString(), string.Join("; ", ErrorMessageList)));
}
throw new ValidationException(ValidationErrorType.Undefined, TanuloErtekelesResource.HibasErtekelesElem, validationItems.DistinctBy(v => v.Id));
}
private void IsValidDuplikaltErtekeles(IDalHandler dalHandler, TanuloErtekelesCo tanuloErtekelesCo)
{
bool isTanuloErtekelt = dalHandler.TanuloErtekelesDal().IsTanuloErtekelt(ConnectionType.IntezmenyId, ConnectionType.TanevId, tanuloErtekelesCo.Datum, tanuloErtekelesCo.ErtekelesModId, tanuloErtekelesCo.TipusId, tanuloErtekelesCo.TantargyId.Value, tanuloErtekelesCo.ErtekelesTema, tanuloErtekelesCo.TanuloId, tanuloErtekelesCo.ErtekelesOsztalyzatId, tanuloErtekelesCo.ErtekelesSzazalek, tanuloErtekelesCo.ErtekelesSzoveg);
if (isTanuloErtekelt)
{
ErrorMessageList.Add(TanuloErtekelesResource.ATanulonakEzAzErtekelesMarRogzitesreKerultKorabban);
IsValid = false;
}
}
}
}

View file

@ -0,0 +1,97 @@
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);
}
}
}
}
}