Files
jinko.yikatong/Src/Dlhis.Basic/WorkGrids/Request/WorkGridTimePeriodSaveRequest.cs

51 lines
1.2 KiB
C#

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; }
/// <summary>
/// 班次, eg: 禁止编辑
/// </summary>
public WorkGridTimePeriodEnumType Type { get; set; }
/// <summary>
/// 前(min)
/// </summary>
[Range(1, int.MaxValue)]
public int Before { get; set; }
/// <summary>
/// 后(min)
/// </summary>
[Range(1, int.MaxValue)]
public int After { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public TimeOnly Start { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public TimeOnly End { get; set; }
/// <inheritdoc />
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (Type != WorkGridTimePeriodEnumType.Day)
{
yield break;
}
if (End.AddMinutes(After) < End)
{
yield return new ValidationResult(WorkGridTimePeriodEnumType.Day.GetDescription() + "禁止跨天,请检查时间段配置", new[] { nameof(Type) });
}
}
}