using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Requests; /// /// Параметры для создания отчёта и получения прогнозируемого количества страниц будущего отчета /// public class ReportParametersRequest: IValidatableObject { /// /// Шаг интервала /// [Range(1, 86400)] public int StepSeconds { get; set; } /// /// формат отчета (0-PDF, 1-LAS) /// [Range(0, 1)] public int Format { get; set; } /// /// Дата начала интервала /// public DateTimeOffset Begin { get; set; } = default; /// /// Дата окончания интервала /// public DateTimeOffset End { get; set; } = default; /// public IEnumerable Validate(ValidationContext validationContext) { if (End < Begin) yield return new("End mast be less then begin"); if (Begin < new DateTimeOffset(2000, 1, 1, 0, 0, 0, TimeSpan.Zero)) yield return new("Begin mast be > 2000-1-1"); } }