using System.ComponentModel.DataAnnotations; using Dlhis.Entity.Basic.Enums; using Kurisu.AspNetCore.Utils.Extensions; namespace Dlhis.Basic.WorkGrids.Request; public class WorkGridTimePeriodSaveRequest : IValidatableObject { public long? Id { get; set; } /// /// 班次, eg: 禁止编辑 /// public WorkGridTimePeriodEnumType Type { get; set; } /// /// 前(min) /// [Range(1, int.MaxValue)] public int Before { get; set; } /// /// 后(min) /// [Range(1, int.MaxValue)] public int After { get; set; } /// /// 开始时间 /// public TimeOnly Start { get; set; } /// /// 结束时间 /// public TimeOnly End { get; set; } /// public IEnumerable Validate(ValidationContext validationContext) { if (Type != WorkGridTimePeriodEnumType.Day) { yield break; } if (End.AddMinutes(After) < End) { yield return new ValidationResult(WorkGridTimePeriodEnumType.Day.GetDescription() + "禁止跨天,请检查时间段配置", new[] { nameof(Type) }); } } }