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

60 lines
1.7 KiB
C#
Raw Normal View History

using System;
using System.ComponentModel.DataAnnotations;
namespace AsbCloudApp.Requests;
/// <summary>
/// Параметры запроса телеметрии
/// </summary>
public class TelemetryDataRequest
{
/// <summary>
/// Максимально допустимое кол-во строк данных
/// </summary>
public const int MaxTake = 3072;
/// <summary>
/// greater or equal then Date
/// </summary>
public DateTimeOffset? GeDate { get; set; }
/// <summary>
/// less or equal then Date
/// </summary>
public DateTimeOffset? LeDate { get; set; }
/// <summary>
/// Делитель для прореживания выборки.
/// <list type="bullet">
/// <item>1 - без прореживания (default); </item>
/// <item>2 - каждое 2-е значение; </item>
/// <item>10 - каждое 10-е значение; </item>
/// </list>
/// </summary>
[Range(0, 300)]
public int Divider { get; set; } = 1;
/// <summary>
/// сортировка/выравнивание данных в запросе по дате
/// <list type="bullet">
/// <item>0 - более ранние данные вперед; </item>
/// <item>1 - более поздние данные вперед; </item>
/// </list>
/// </summary>
[Range(0, 1)]
public int Order { get; set; } = 0;
/// <summary>
/// Пропустить с начала
/// </summary>
[Range(0, int.MaxValue)]
public int Skip { get; set; } = 0;
/// <summary>
/// Кол-во возвращаемых, но не больше MaxTake
/// </summary>
[Range(1, MaxTake)]
public int Take { get; set; } = 1024;
}