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 { public OrarendElemRequest(string orarendElemUid) { OrarendElemUid = new OrarendElemUid(orarendElemUid); } public OrarendElemRequest(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)); } }