129 lines
5.4 KiB
C#
129 lines
5.4 KiB
C#
using PARR.BLL.Domain;
|
||
using PARR.DAL.Extensions;
|
||
using System.ComponentModel.DataAnnotations.Schema;
|
||
using System.Text.Json;
|
||
|
||
namespace PARR.DAL.Contracts
|
||
{
|
||
/// <summary>
|
||
/// Настройки из БД
|
||
/// </summary>
|
||
public class SettingsFromDb
|
||
{
|
||
// При добавлении свойств, добавлять в миграцию: PARR.DAL.Context.DataContext
|
||
|
||
/// <summary>
|
||
/// Инициатор регламентной работы, указывается при создании шаблона в ЕСПП.
|
||
/// </summary>
|
||
public string Initiator { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// Код закрытия регламентной работы, указывается при создании шаблона в ЕСПП.
|
||
/// </summary>
|
||
public string ClosingCode { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// Категория создаваемого объекта в ЕСПП
|
||
/// </summary>
|
||
public string Category { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// Префикс имени шаблона в ЕСПП с динамичным префиксом %PREFIX%-
|
||
/// </summary>
|
||
public string TemplatePrefixName { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// Префикс имени шаблона в ЕСПП без динамичного префикса (используется для подстановки в полное описание наряда/шаблона)
|
||
/// </summary>
|
||
public string TemplatePrefixWithoutVariable => TemplatePrefixName.Replace("%PREFIX%-", "");
|
||
|
||
public string TemplateNameConstantParts { get; set; } = string.Empty;
|
||
|
||
[NotMapped]
|
||
public List<TemplateNameConstantPart> TemplateNameConstantPartsList
|
||
{
|
||
get
|
||
{
|
||
if (!string.IsNullOrEmpty(TemplateNameConstantParts))
|
||
{
|
||
try
|
||
{
|
||
return JsonSerializer.Deserialize<List<TemplateNameConstantPart>>(TemplateNameConstantParts) ?? new List<TemplateNameConstantPart>();
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
// В будущем можно добавить логирование ошибки десериализации
|
||
return new List<TemplateNameConstantPart>();
|
||
}
|
||
}
|
||
|
||
return new List<TemplateNameConstantPart>();
|
||
}
|
||
set
|
||
{
|
||
if (value != null)
|
||
TemplateNameConstantParts = value.ToJson() ?? string.Empty;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Количество попыток выполнения задания роботом
|
||
/// </summary>
|
||
public int RobotAttemptsNumber { get; set; }
|
||
|
||
/// <summary>
|
||
/// Время ожидания выполнения роботом задания
|
||
/// </summary>
|
||
public TimeSpan RobotWaitTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// Расписание регламентной работы, В каком часовом поясе
|
||
/// </summary>
|
||
public string EsppScheduleTimezone { get; set; } = string.Empty;
|
||
|
||
///// <summary>
|
||
///// Расписание регламентной работы - Тип исключения
|
||
///// </summary>
|
||
//public string ScheduleExcludeType { get; set; } = string.Empty;
|
||
|
||
///// <summary>
|
||
///// Расписание регламентной работы - Календарь
|
||
///// </summary>
|
||
//public string ScheduleExcludeCalendar { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// Расписание регламентной работы - Диапазон повторов
|
||
/// </summary>
|
||
public string ScheduleRepeatRange { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// Промежуток времени для поиска нарядов в ЕСПП
|
||
/// </summary>
|
||
public TimeSpan OrderSearchDeltaDate { get; set; }
|
||
|
||
/// <summary>
|
||
/// Таймзона УЗ роботов в ЕСПП, в часах (может быть положительным и отрицательным)
|
||
/// </summary>
|
||
public int EsppRobotAccountTimeZoneHour { get; set; }
|
||
|
||
/// <summary>
|
||
/// Время хранения в кэше данных о выходных и рабочих днях
|
||
/// </summary>
|
||
public TimeSpan WeekendCacheTtl { get; set; } = new TimeSpan(0, 5, 0);
|
||
|
||
/// <summary>
|
||
/// Префикс тега в поле ЭК "Дополнительная информация"
|
||
/// </summary>
|
||
public string EsppUnitTag { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// Job в который перемещаем ниспользованные шаблоны
|
||
/// </summary>
|
||
public Guid JobIdForUnusedTemplates { get; set; }
|
||
|
||
/// <summary>
|
||
/// Зона ответственности для получения тайм зоны по умолчанию для расписаний
|
||
/// </summary>
|
||
public string DefaultResponseAreaToTimeOffset { get; set; } = string.Empty;
|
||
}
|
||
} |