forked from ddrilling/AsbCloudServer
43 lines
1.2 KiB
C#
43 lines
1.2 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");
|
|
}
|
|
} |