Files
2024-03-13 00:33:46 +01:00

38 lines
1.5 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;
namespace Kreta.Naplo.Domain.V3.Orarend
{
public class OrarendElemRequest : IValidatableObject, IModelValidacio<OrarendElemRequest>
{
public OrarendElemRequest(string orarendElemUid)
{
OrarendElemUid = new OrarendElemUid(orarendElemUid);
}
public OrarendElemRequest(CalendarOraTypeEnum tipus, int id, DateTime datum)
{
OrarendElemUid = new OrarendElemUid(id, tipus, datum);
}
public Dictionary<Predicate<OrarendElemRequest>, string> ModelValidaciok => new Dictionary<Predicate<OrarendElemRequest>, string>
{
{ x => x.OrarendElemUid != null
&& x.OrarendElemUid.Tipus != CalendarOraTypeEnum.OrarendiOra
&& x.OrarendElemUid.Tipus != CalendarOraTypeEnum.TanitasiOra
&& x.OrarendElemUid.Tipus != CalendarOraTypeEnum.UresOra
, "Csak órarendi, tanítási és elmaradt óra kérhető le!" }
};
[Required]
public OrarendElemUid OrarendElemUid { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
}
}