42 lines
1.7 KiB
C#
42 lines
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.Linq;
|
|
using Kreta.BusinessLogic.Logic.Naplozas;
|
|
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 OraNaplozasTorlesRequest : IValidatableObject, IModelValidacio<OraNaplozasTorlesRequest>
|
|
{
|
|
public OraNaplozasTorlesRequest(string orarendElemUid)
|
|
{
|
|
OrarendElemUid = new OrarendElemUid(orarendElemUid);
|
|
}
|
|
|
|
public OraNaplozasTorlesRequest(CalendarOraTypeEnum tipus, int id, DateTime datum)
|
|
{
|
|
OrarendElemUid = new OrarendElemUid(id, tipus, datum);
|
|
}
|
|
|
|
public Dictionary<Predicate<OraNaplozasTorlesRequest>, string> ModelValidaciok => new Dictionary<Predicate<OraNaplozasTorlesRequest>, string>
|
|
{
|
|
{ x => x.OrarendElemUid != null && x.OrarendElemUid.Tipus != CalendarOraTypeEnum.TanitasiOra, ErrorResource.ATorolniKivantOraNemTanitasiOra }
|
|
};
|
|
|
|
[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));
|
|
|
|
public void ConvertTo(NaplozasMobilCo co)
|
|
{
|
|
co.OraAdat.Datum = OrarendElemUid.Datum;
|
|
co.OraAdat.OrarendiOraId = OrarendElemUid.Tipus == CalendarOraTypeEnum.OrarendiOra ? OrarendElemUid.Id : (int?)null;
|
|
co.OraAdat.TanitasiOraId = OrarendElemUid.Tipus == CalendarOraTypeEnum.TanitasiOra ? OrarendElemUid.Id : (int?)null;
|
|
}
|
|
}
|
|
}
|