Files
parr_api/PARR.EsppApi/Models/EsppOrder.cs

77 lines
2.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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