using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Requests; /// <summary> /// Параметры для создания отчёта и получения прогнозируемого количества страниц будущего отчета /// </summary> public class ReportParametersRequest: IValidatableObject { /// <summary> /// Шаг интервала /// </summary> [Range(1, 86400)] public int StepSeconds { get; set; } /// <summary> /// формат отчета (0-PDF, 1-LAS) /// </summary> [Range(0, 1)] public int Format { get; set; } /// <summary> /// Дата начала интервала /// </summary> public DateTimeOffset Begin { get; set; } = default; /// <summary> /// Дата окончания интервала /// </summary> public DateTimeOffset End { get; set; } = default; /// <inheritdoc/> public IEnumerable<ValidationResult> 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"); } }