Files
kreta/Kreta.WebApi/Naplo/Kreta.Naplo.Domain/V3/Orarend/SzamonkeresRequest.cs
T
2024-03-13 00:33:46 +01:00

36 lines
1.4 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using Kreta.Enums.ManualEnums;
using Kreta.Naplo.Domain.V3.Interfaces;
using Kreta.Naplo.Domain.V3.UniqueIdentifier;
using Kreta.Resources;
namespace Kreta.Naplo.Domain.V3.Orarend
{
public class SzamonkeresRequest : IValidatableObject, IModelValidacio<SzamonkeresRequest>
{
public SzamonkeresRequest(string orarendElemUid)
{
OrarendElemUid = new OrarendElemUid(orarendElemUid);
}
public OrarendElemUid OrarendElemUid { get; set; }
public int ErtekelesMod { get; set; }
public string Tema { get; set; }
public bool ForceSave { get; set; }
public Dictionary<Predicate<SzamonkeresRequest>, string> ModelValidaciok => new Dictionary<Predicate<SzamonkeresRequest>, string>
{
{ x => x.OrarendElemUid != null && x.OrarendElemUid.Tipus != CalendarOraTypeEnum.OrarendiOra, OrarendResource.CsakOrarendiOraAdhatoMeg },
{ x => x.OrarendElemUid.Datum.Date <= DateTime.Now.Date, OrarendResource.SzamonkeresLeghamarabbAHolnapiNaptolRogzitheto }
};
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
}
}