25 lines
1.1 KiB
C#
25 lines
1.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.Linq;
|
|
using Kreta.Naplo.Domain.V3.Interfaces;
|
|
|
|
namespace Kreta.Naplo.Domain.V3.HaziFeladat
|
|
{
|
|
public class HaziFeladatUpdateRequest : IValidatableObject, IModelValidacio<HaziFeladatUpdateRequest>
|
|
{
|
|
public string Szoveg { get; set; }
|
|
|
|
public DateTime HataridoDatuma { get; set; }
|
|
|
|
public int? CsatolmanyId { get; set; }
|
|
|
|
public Dictionary<Predicate<HaziFeladatUpdateRequest>, string> ModelValidaciok => new Dictionary<Predicate<HaziFeladatUpdateRequest>, string>
|
|
{
|
|
{ x => string.IsNullOrWhiteSpace(x.Szoveg), "Házi feladata szöveg nem lehet üres!" },
|
|
{ x => x.HataridoDatuma < DateTime.Today.AddDays(1), "Házi feladat nem rögzíthető korábbi határidővel, mint a holnapi!" }
|
|
};
|
|
|
|
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
|
|
}
|
|
}
|