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