DD.WellWorkover.Cloud/AsbCloudApp/Requests/ReportParametersRequest.cs

43 lines
1.3 KiB
C#

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");
}
}