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 { 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, string> ModelValidaciok => new Dictionary, string> { { x => x.OrarendElemUid != null && x.OrarendElemUid.Tipus != CalendarOraTypeEnum.OrarendiOra, OrarendResource.CsakOrarendiOraAdhatoMeg }, { x => x.OrarendElemUid.Datum.Date <= DateTime.Now.Date, OrarendResource.SzamonkeresLeghamarabbAHolnapiNaptolRogzitheto } }; public IEnumerable Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value)); } }