37 lines
1.9 KiB
C#
37 lines
1.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.Linq;
|
|
using Kreta.Naplo.Domain.V3.Interfaces;
|
|
using Kreta.Resources;
|
|
|
|
namespace Kreta.Naplo.Domain.V3.OsztalyCsoport
|
|
{
|
|
public class TanuloErtekelesMentesRequest : IValidatableObject, IModelValidacio<TanuloErtekelesMentesRequest>
|
|
{
|
|
public DateTime ErtekelesDatum { get; set; }
|
|
|
|
public int ErtekelesModId { get; set; }
|
|
|
|
public string ErtekelesTema { get; set; }
|
|
|
|
public int? ErtekelesOsztalyzatId { get; set; }
|
|
|
|
public string ErtekelesSzoveg { get; set; }
|
|
|
|
public int? ErtekelesSzazalek { get; set; }
|
|
|
|
public Dictionary<Predicate<TanuloErtekelesMentesRequest>, string> ModelValidaciok => new Dictionary<Predicate<TanuloErtekelesMentesRequest>, string>
|
|
{
|
|
{ x => x.ErtekelesOsztalyzatId == null && string.IsNullOrWhiteSpace(x.ErtekelesSzoveg) && x.ErtekelesSzazalek == null, TanuloErtekelesResource.EgyErtekelesFajtaMegadasaKotelezo },
|
|
{ x => (x.ErtekelesOsztalyzatId != null && (!string.IsNullOrWhiteSpace(x.ErtekelesSzoveg) || x.ErtekelesSzazalek != null)) ||
|
|
(!string.IsNullOrWhiteSpace(x.ErtekelesSzoveg) && (x.ErtekelesOsztalyzatId != null || x.ErtekelesSzazalek != null)) ||
|
|
(x.ErtekelesSzazalek != null && (x.ErtekelesOsztalyzatId != null || !string.IsNullOrWhiteSpace(x.ErtekelesSzoveg))),
|
|
TanuloErtekelesResource.HibasanMegadottErtekelesEgyszerreCsakEgyFajtaErtekelesAdhatoMeg
|
|
},
|
|
{ x => x.ErtekelesSzazalek != null && (x.ErtekelesSzazalek < 0 || x.ErtekelesSzazalek > 100), TanuloErtekelesResource.SzazalekosErtekNincsAMegengedettTartomanyban }
|
|
};
|
|
|
|
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
|
|
}
|
|
}
|