using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using Kreta.Ellenorzo.Domain.VN.Interfaces; using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier; using Kreta.Enums.ManualEnums; namespace Kreta.Ellenorzo.Domain.VN.Orarend { public class OrarendElemGetRequest : IValidatableObject, IModelValidacio { public OrarendElemGetRequest(string orarendElemUid) { OrarendElemUid = new OrarendElemUid(orarendElemUid); } public OrarendElemGetRequest(CalendarOraTypeEnum tipus, int id, DateTime datum) { OrarendElemUid = new OrarendElemUid(id, tipus, datum); } public Dictionary, string> ModelValidaciok => new Dictionary, 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 Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value)); } }