kreta/Kreta.WebApi/Naplo/Kreta.Naplo.Domain/V3/HaziFeladat/HaziFeladatUpdateRequest.cs
2024-03-13 00:33:46 +01:00

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));
}
}