77 lines
2.7 KiB
C#
77 lines
2.7 KiB
C#
using Microsoft.Extensions.Logging;
|
||
using PARR.Constants;
|
||
using PARR.EsppApi.Settings;
|
||
using System.Globalization;
|
||
using System.Text.Json.Serialization;
|
||
|
||
namespace PARR.EsppApi.Models
|
||
{
|
||
/// <summary>
|
||
/// Модель наряда из еспп
|
||
/// </summary>
|
||
public class EsppOrder
|
||
{
|
||
[JsonPropertyName("recordid")]
|
||
public string Number { get; set; } = string.Empty;
|
||
|
||
[JsonPropertyName("assignment")]
|
||
public string? WorkGroup { get; set; }
|
||
|
||
/// <summary>
|
||
/// Статус наряда в формате строки
|
||
/// </summary>
|
||
[JsonPropertyName("status")]
|
||
public string Status { get; set; } = string.Empty;
|
||
|
||
[JsonPropertyName("title")]
|
||
public string ShortName { get; set; } = string.Empty;
|
||
|
||
[JsonPropertyName("templateName")]
|
||
public string TemplateName { get; set; } = string.Empty;
|
||
|
||
[JsonPropertyName("expirationDate")]
|
||
public string ExpirationDate { get; set; } = string.Empty;
|
||
|
||
public DateTimeOffset ExpirationDateUTC
|
||
{
|
||
get
|
||
{
|
||
var dateTime = DateTime.ParseExact(ExpirationDate, "dd.MM.yyyy HH:mm:ss", CultureInfo.InvariantCulture);
|
||
var utc = dateTime.AddHours(-EsppUserTimeZoneSettings.TimeZone);
|
||
|
||
//TODO: костыль!!!
|
||
// странное поведение даты, разница с еспп 13 часов.
|
||
// считаем часовой пояс УЗ ЕСПП 10 часов ЮТС
|
||
// в качестве костыля прибавляем 3
|
||
utc = dateTime.AddHours(-3);
|
||
|
||
return new DateTimeOffset(utc, new TimeSpan(0));
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Статус наряда в формате OrderStatusEnum
|
||
/// </summary>
|
||
public OrderStatusEnum StatusEnum
|
||
{
|
||
get
|
||
{
|
||
switch (Status.Trim())
|
||
{
|
||
case "1-Направлен в группу":
|
||
return OrderStatusEnum.New;
|
||
case "2-В работе":
|
||
return OrderStatusEnum.InWork;
|
||
case "3-Приостановлен":
|
||
return OrderStatusEnum.Stop;
|
||
case "4-Выполнен":
|
||
return OrderStatusEnum.Complete;
|
||
case "5-Закрыт":
|
||
return OrderStatusEnum.Closed;
|
||
default:
|
||
return OrderStatusEnum.New;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
} |