diff --git a/PARR.API/Contracts/V1/Responses/TemplateResponse.cs b/PARR.API/Contracts/V1/Responses/TemplateResponse.cs
index ba278d57..9b027a7f 100644
--- a/PARR.API/Contracts/V1/Responses/TemplateResponse.cs
+++ b/PARR.API/Contracts/V1/Responses/TemplateResponse.cs
@@ -16,6 +16,12 @@
public DateTimeOffset NextRun { get; set; }
+ ///
+ /// NextRun с учетом ЗО
+ ///
+ public DateTimeOffset? NextRunWithResponseAreaOffset { get; set; }
+
+ public bool IsResponseAreaTimezone { get; set; }
///
/// Рабочая группа (формируется из шорткода)
diff --git a/PARR.API/Controllers/V1/AgentTaskController.cs b/PARR.API/Controllers/V1/AgentTaskController.cs
index 6ce19693..b9b2f709 100644
--- a/PARR.API/Controllers/V1/AgentTaskController.cs
+++ b/PARR.API/Controllers/V1/AgentTaskController.cs
@@ -1,17 +1,12 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
-using Microsoft.EntityFrameworkCore;
using PARR.API.Contracts.V1;
using PARR.API.Contracts.V1.Requests.Queries;
-using PARR.API.Contracts.V1.Responses;
-using PARR.API.Contracts.V1.Responses.Base;
using PARR.API.Controllers.V1.Base;
using PARR.API.Services.Interfaces;
using PARR.Constants;
-using PARR.DAL.Contracts;
using PARR.DAL.Services.Interfaces;
using PARR.DAL.Services.Interfaces.Unit;
-using PARR.DAL.TransformServices;
namespace PARR.API.Controllers.V1
{
diff --git a/PARR.API/Controllers/V1/JobGroupController.cs b/PARR.API/Controllers/V1/JobGroupController.cs
index 8adb2e04..a9608703 100644
--- a/PARR.API/Controllers/V1/JobGroupController.cs
+++ b/PARR.API/Controllers/V1/JobGroupController.cs
@@ -18,8 +18,10 @@ using PARR.DAL.DomainModels;
using PARR.DAL.DomainServices.Interfaces;
using PARR.DAL.Models;
using PARR.DAL.Models.Job;
+using PARR.DAL.NextRunServices;
using PARR.DAL.Services.Interfaces;
using PARR.DAL.Services.Interfaces.Job;
+using PARR.DAL.Services.Interfaces.Schedule;
namespace PARR.API.Controllers.V1
{
@@ -39,6 +41,7 @@ namespace PARR.API.Controllers.V1
private readonly IJobGroupTypeService jobGroupTypeService;
private readonly SettingsFromDb settingsFromDb;
private readonly IMatchingStatusService matchingStatusService;
+ private readonly IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService;
public JobGroupController(
ILogger logger,
@@ -50,7 +53,8 @@ namespace PARR.API.Controllers.V1
IValidator validator,
IJobGroupTypeService jobGroupTypeService,
SettingsFromDb settingsFromDb,
- IMatchingStatusService matchingStatusService
+ IMatchingStatusService matchingStatusService,
+ IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService
)
{
this.logger = logger;
@@ -63,6 +67,7 @@ namespace PARR.API.Controllers.V1
this.jobGroupTypeService = jobGroupTypeService;
this.settingsFromDb = settingsFromDb;
this.matchingStatusService = matchingStatusService;
+ this.scheduleResponseAreaTimeOffsetService = scheduleResponseAreaTimeOffsetService;
}
@@ -166,7 +171,7 @@ namespace PARR.API.Controllers.V1
ScheduleExcludeTypeId = request.ScheduleExcludeTypeId,
ScheduleExcludeTypeCalendarId = request.ScheduleExcludeTypeCalendarId,
IsAutoDistributionEnabled = request.IsAutoDistributionEnabled,
- IsWorkGroupTimezone = request.IsWorkGroupTimezone
+ IsResponseAreaTimezone = request.IsWorkGroupTimezone
//IsAgent = request.IsAgent,
//AgentName = request.AgentName,
//AgentTimeOutSec = request.AgentTimeOutSec,
@@ -260,7 +265,7 @@ namespace PARR.API.Controllers.V1
orig.ScheduleExcludeTypeId = request.ScheduleExcludeTypeId;
orig.ScheduleExcludeTypeCalendarId = request.ScheduleExcludeTypeCalendarId;
orig.IsAutoDistributionEnabled = request.IsAutoDistributionEnabled;
- orig.IsWorkGroupTimezone = request.IsWorkGroupTimezone;
+ orig.IsResponseAreaTimezone = request.IsWorkGroupTimezone;
//orig.IsAgent = request.IsAgent;
//orig.AgentName = request.AgentName;
//orig.AgentTimeOutSec = request.AgentTimeOutSec;
@@ -445,7 +450,8 @@ namespace PARR.API.Controllers.V1
var scheduleResponse = new JobGroupScheduleResponse
{
- Timezone = settingsFromDb.ScheduleTimezone,
+ //Timezone = settingsFromDb.ScheduleTimezone,
+ Timezone = scheduleResponseAreaTimeOffsetService.GetDefault.EsppValue,
TypeSchedule = mapper.Map(schedule.TypeSchedule),
Values = mapper.Map>(schedule.Values).OrderBy(t => t.Order).ToList()
};
diff --git a/PARR.API/Controllers/V1/RobotTaskController.cs b/PARR.API/Controllers/V1/RobotTaskController.cs
index 787a9be3..b86a4e33 100644
--- a/PARR.API/Controllers/V1/RobotTaskController.cs
+++ b/PARR.API/Controllers/V1/RobotTaskController.cs
@@ -8,6 +8,7 @@ using PARR.API.Contracts.V1.Responses;
using PARR.API.Contracts.V1.Responses.Base;
using PARR.API.Controllers.V1.Base;
using PARR.API.Services.Interfaces;
+using PARR.BLL.Helpers;
using PARR.Common.Domain;
using PARR.Constants;
using PARR.DAL.Contracts;
@@ -200,17 +201,11 @@ namespace PARR.API.Controllers.V1
{ //RobotTaskTemplateResponse
var robotTaskTemplateResponse = mapper.Map(task);
- //if (shortcodesService.IsAnyShortcodes(robotTaskTemplateResponse.FullDescription))
robotTaskTemplateResponse.FullDescription = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.FullDescription, task.Template!);
- //if (shortcodesService.IsAnyShortcodes(robotTaskTemplateResponse.ShortDescription))
robotTaskTemplateResponse.ShortDescription = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.ShortDescription, task.Template!);
- //if (shortcodesService.IsAnyShortcodes(robotTaskTemplateResponse.Solution))
robotTaskTemplateResponse.Solution = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.Solution, task.Template!);
- //if (shortcodesService.IsAnyShortcodes(robotTaskTemplateResponse.TnkName))
robotTaskTemplateResponse.TnkName = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.TnkName, task.Template!);
- //if (shortcodesService.IsAnyShortcodes(robotTaskTemplateResponse.WorkName))
robotTaskTemplateResponse.WorkName = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.WorkName, task.Template!);
- //if (shortcodesService.IsAnyShortcodes(robotTaskTemplateResponse.WorkGroup))
robotTaskTemplateResponse.WorkGroup = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.WorkGroup, task.Template!);
robotTaskTemplateResponse.ResponseArea = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.ResponseArea, task.Template!);
@@ -223,12 +218,15 @@ namespace PARR.API.Controllers.V1
//RobotTaskScheduleResponse
var robotTaskScheduleResponse = mapper.Map(task);
- robotTaskScheduleResponse.Timezone = await GetTimezoneForTemplateAsync(task.Template!);
+ robotTaskScheduleResponse.Timezone = GetTimezoneForTemplate(task.Template!);
robotTaskScheduleResponse.WorkGroup = await shortcodesService.ApplyShortcodesAsync(robotTaskScheduleResponse.WorkGroup, task.Template!);
robotTaskScheduleResponse.ResponseArea = await shortcodesService.ApplyShortcodesAsync(robotTaskScheduleResponse.ResponseArea, task.Template!);
+ var nextRunWithTimezone = nextRunService.GetNextRunWithTimezoneEsppAndResponseArea(task.Template!.NextRun, task.Template!.Job?.Group?.IsResponseAreaTimezone, robotTaskScheduleResponse.ResponseArea);
+ robotTaskScheduleResponse.NextStart = EsppScheduleHelpers.GetNextRun(nextRunWithTimezone);
+ robotTaskScheduleResponse.GenerationTime = EsppScheduleHelpers.GetGenerationTime(nextRunWithTimezone);
return Ok(new Response(robotTaskScheduleResponse, true));
}
@@ -240,6 +238,11 @@ namespace PARR.API.Controllers.V1
}
+ ///
+ /// Обоновить NextRun если он устарел
+ ///
+ ///
+ ///
private async Task UpdateLastNextRunDate(RobotConfiguration task)
{
var template = task.Template!;
@@ -251,9 +254,6 @@ namespace PARR.API.Controllers.V1
//var nextRun = await esppScheduleTransformService.GetNextDateAsync(template.Job!.GroupId, template.NextRun);
#endregion
- //пока у нас выключено автораспределение, считает по refDate
- //TODO: когда заработает автораспределение, будем думать!!!!!
-
//var nextRun = await esppScheduleTransformService.GetNextDateAsync(template.Job!.GroupId, template!.Job!.Group!.ReferenceDate);
var nextRun = await nextRunService.GetNextRunForTemplateAsync(template.Id, false);
@@ -261,11 +261,6 @@ namespace PARR.API.Controllers.V1
{
logger.LogDebug($"Для шаблона id {template.Id} обновляю nextRun, новое значение {nextRun}, старое значение {template.NextRun}");
- //if (template.NextRun < DateTimeOffset.UtcNow)
- //{
- // logger.LogDebug($"Для шаблона id {template.Id} обновляю lastRun, новое значение {template.NextRun}, старое значение {template.LastRun}");
- // template.LastRun = template.NextRun;
- //}
template.LastRun = template.NextRun;
template.NextRun = nextRun;
@@ -331,10 +326,17 @@ namespace PARR.API.Controllers.V1
return true;
}
- private async Task GetTimezoneForTemplateAsync(Template template)
+
+ ///
+ /// Получить таймзону для шаблона
+ ///
+ ///
+ ///
+ ///
+ private string GetTimezoneForTemplate(Template template)
{
- if (template.Job?.Group?.IsWorkGroupTimezone != true)
- return settingsFromDb.ScheduleTimezone;
+ if (template.Job?.Group?.IsResponseAreaTimezone != true)
+ return scheduleResponseAreaTimeOffsetService.GetDefault.EsppValue;
var responseArea = template.Unit?.BaseFields?.ResponseArea;
@@ -345,18 +347,7 @@ namespace PARR.API.Controllers.V1
"но включена настройка 'использовать часовой пояс рабочей группы'.");
}
- var offsets = await scheduleResponseAreaTimeOffsetService
- .Get()
- .ToDictionaryAsync(t => t.ResponseArea, t => t.TimeOffset);
-
- if (!offsets.TryGetValue(responseArea, out var offset))
- {
- throw new InvalidOperationException(
- $"Не найдено временное смещение для ResponseArea '{responseArea}' у шаблона Id={template.Id}, Name='{template.Name}'. " +
- "Проверьте наличие записи в таблице ScheduleResponseAreaTimeOffset.");
- }
-
- return offset;
+ return scheduleResponseAreaTimeOffsetService.GetByResponseAreaOrDefault(responseArea).EsppValue;
}
}
diff --git a/PARR.API/Controllers/V1/TemplateController.cs b/PARR.API/Controllers/V1/TemplateController.cs
index 8dcdb24f..3a093f56 100644
--- a/PARR.API/Controllers/V1/TemplateController.cs
+++ b/PARR.API/Controllers/V1/TemplateController.cs
@@ -17,8 +17,8 @@ using PARR.DAL.Contracts;
using PARR.DAL.DomainModels;
using PARR.DAL.DomainServices.Shortcodes;
using PARR.DAL.Models;
+using PARR.DAL.NextRunServices;
using PARR.DAL.Services.Interfaces;
-using System.Diagnostics;
namespace PARR.API.Controllers.V1
{
@@ -35,6 +35,7 @@ namespace PARR.API.Controllers.V1
private readonly ILogger logger;
private readonly IShortcodesService shortcodesService;
private readonly IOrderService orderService;
+ private readonly INextRunService nextRunService;
public TemplateController(
IMapper mapper,
@@ -43,7 +44,8 @@ namespace PARR.API.Controllers.V1
IClientService clientService,
ILogger logger,
IShortcodesService shortcodesService,
- IOrderService orderService
+ IOrderService orderService,
+ INextRunService nextRunService
)
{
this.mapper = mapper;
@@ -53,6 +55,7 @@ namespace PARR.API.Controllers.V1
this.logger = logger;
this.shortcodesService = shortcodesService;
this.orderService = orderService;
+ this.nextRunService = nextRunService;
}
@@ -135,7 +138,7 @@ namespace PARR.API.Controllers.V1
var templatesDict = templates.ToDictionary(t => t.Id);
var templateResponseDict = templateResponse.ToDictionary(t => t.Id);
- #region Заполняем шорткоды
+ #region Заполняем шорткоды и NextRunWithResponseAreaOffset
if (filter.ApplyShortcode == true)
{
//sw.Restart();
@@ -143,6 +146,7 @@ namespace PARR.API.Controllers.V1
{
//await ApplyTemplateShortcodesAsync(responseItem, templates.First(t => t.Id == responseItem.Id));
await ApplyTemplateShortcodesAsync(responseItem, templatesDict[responseItem.Id]);
+ FillNextRunWithResponseAreaOffset(responseItem);
}
//logger.LogDebug("Получение шорткодов: {ElapsedMs} мс", sw.ElapsedMilliseconds);
//sw.Stop();
@@ -187,6 +191,7 @@ namespace PARR.API.Controllers.V1
var response = mapper.Map(template);
await ApplyTemplateShortcodesAsync(response, template);
+ FillNextRunWithResponseAreaOffset(response);
var ordersCountResult = await GetOrdersCountAsync(new List { response.Id });
response.OrderCount = ordersCountResult.Count > 0 ? ordersCountResult.First().Value : 0;
@@ -280,6 +285,7 @@ namespace PARR.API.Controllers.V1
var response = mapper.Map(templateToResponse);
await ApplyTemplateShortcodesAsync(response, templateToResponse);
+ FillNextRunWithResponseAreaOffset(response);
var ordersCountResult = await GetOrdersCountAsync(new List { response.Id });
response.OrderCount = ordersCountResult.Count > 0 ? ordersCountResult.First().Value : 0;
@@ -324,5 +330,17 @@ namespace PARR.API.Controllers.V1
return templateWithOrders.ToDictionary(t => t.TemplateId!.Value, t => t.OrderCount);
}
+
+ ///
+ /// Заполнить NextRunWithResponseAreaOffset
+ ///
+ ///
+ private void FillNextRunWithResponseAreaOffset(TemplateBaseResponse response)
+ {
+ response.NextRunWithResponseAreaOffset = response.IsResponseAreaTimezone && !string.IsNullOrEmpty(response.ResponseArea)
+ ? nextRunService.GetNextRunWithResponseAreaOffset(response.NextRun, response.ResponseArea)
+ : response.NextRun;
+ }
+
}
}
diff --git a/PARR.API/Controllers/V1/TestController.cs b/PARR.API/Controllers/V1/TestController.cs
index 75770c1a..5c8f360b 100644
--- a/PARR.API/Controllers/V1/TestController.cs
+++ b/PARR.API/Controllers/V1/TestController.cs
@@ -17,7 +17,7 @@ using PARR.DAL.Models.Job;
using PARR.DAL.Services.Interfaces;
using PARR.DAL.Services.Interfaces.Job;
using PARR.DAL.Services.Interfaces.Unit;
-using PARR.DAL.TransformServices;
+
namespace PARR.API.Controllers.V1
{
diff --git a/PARR.API/MappingProfiles/DomainToResponseProfile.cs b/PARR.API/MappingProfiles/DomainToResponseProfile.cs
index 01ac6038..3dc51be0 100644
--- a/PARR.API/MappingProfiles/DomainToResponseProfile.cs
+++ b/PARR.API/MappingProfiles/DomainToResponseProfile.cs
@@ -26,7 +26,8 @@ namespace PARR.API.MappingProfiles
.ForMember(d => d.Agent, o => o.MapFrom(s => s.Job!.Group!))
.ForMember(d => d.SyncStatus, o => o.MapFrom(s => s.RobotConfigurations.OrderBy(t => t.RobotCode)))
.ForMember(d => d.OrderCount, o => o.MapFrom(s => s.Orders.Count()))
- .ForMember(d => d.IsAutoDistributionEnabled, o => o.MapFrom(s => s.Job!.Group!.IsAutoDistributionEnabled));
+ .ForMember(d => d.IsAutoDistributionEnabled, o => o.MapFrom(s => s.Job!.Group!.IsAutoDistributionEnabled))
+ .ForMember(d => d.IsResponseAreaTimezone, o => o.MapFrom(s => s.Job!.Group!.IsResponseAreaTimezone));
CreateMap();
@@ -246,13 +247,13 @@ namespace PARR.API.MappingProfiles
.ForMember(d => d.Exclude, o => o.MapFrom(s => s.Template!.Job!.Group!.ScheduleExcludeType!.EsppName))
//.ForMember(d => d.ExcludeCalendar, o => o.MapFrom())
.ForMember(d => d.ExcludeCalendar, o => o.MapFrom(s => s.Template!.Job!.Group!.ScheduleExcludeTypeCalendar != null ? s.Template!.Job!.Group!.ScheduleExcludeTypeCalendar.EsppName : null))
- .ForMember(d => d.Timezone, o => o.MapFrom())
+ //.ForMember(d => d.Timezone, o => o.MapFrom())
.ForMember(d => d.RepeatRange, o => o.MapFrom())
//todo: GenerationTime
//.ForMember(d => d.GenerationTime, o => o.MapFrom(s => EsppScheduleHelpers.GetGenerationTime(s.Template!.NextRun)))
- .ForMember(d => d.GenerationTime, o => o.MapFrom())
+ //.ForMember(d => d.GenerationTime, o => o.MapFrom())
//.ForMember(d => d.NextStart, o => o.MapFrom(s => EsppScheduleHelpers.GetNextRun(s.Template!.NextRun)))
- .ForMember(d => d.NextStart, o => o.MapFrom())
+ //.ForMember(d => d.NextStart, o => o.MapFrom())
.ForMember(d => d.ScheduleType, o => o.MapFrom(s =>
s.Template!.Job!.Group!.EsppSchValues!.First()!.EsppSchTypeConfig!.EsppSchTypeSchedule!.Description))
.ForMember(d => d.ScheduleTypeCode, o => o.MapFrom(s =>
@@ -372,7 +373,8 @@ namespace PARR.API.MappingProfiles
.Include()
.Include()
.ForMember(d => d.GroupType, o => o.MapFrom(s => s.GroupType))
- .ForMember(d => d.GroupingUnitField, o => o.MapFrom(s => s.GroupingUnitField));
+ .ForMember(d => d.GroupingUnitField, o => o.MapFrom(s => s.GroupingUnitField))
+ .ForMember(d => d.IsWorkGroupTimezone, o => o.MapFrom(s => s.IsResponseAreaTimezone));
CreateMap()
.ForMember(d => d.Name, o => o.MapFrom(s => s.GroupName));
diff --git a/PARR.API/MappingProfiles/Resolvers/ApplicationInWorkScheduleResolver.cs b/PARR.API/MappingProfiles/Resolvers/ApplicationInWorkScheduleResolver.cs
index 6abd3d85..c56493d2 100644
--- a/PARR.API/MappingProfiles/Resolvers/ApplicationInWorkScheduleResolver.cs
+++ b/PARR.API/MappingProfiles/Resolvers/ApplicationInWorkScheduleResolver.cs
@@ -3,6 +3,7 @@ using PARR.API.Contracts.V1.Responses;
using PARR.DAL.Contracts;
using PARR.DAL.Models;
using PARR.DAL.Services.Interfaces;
+using PARR.DAL.Services.Interfaces.Schedule;
namespace PARR.API.MappingProfiles.Resolvers
{
@@ -12,18 +13,21 @@ namespace PARR.API.MappingProfiles.Resolvers
private readonly ILogger logger;
private readonly IMapper mapper;
private readonly SettingsFromDb settingsFromDb;
+ private readonly IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService;
public ApplicationInWorkScheduleResolver(
IEsppSchTypeConfigService esppConfigService,
ILogger logger,
IMapper mapper,
- SettingsFromDb settingsFromDb
+ SettingsFromDb settingsFromDb,
+ IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService
)
{
this.esppConfigService = esppConfigService;
this.logger = logger;
this.mapper = mapper;
this.settingsFromDb = settingsFromDb;
+ this.scheduleResponseAreaTimeOffsetService = scheduleResponseAreaTimeOffsetService;
}
public ApplicationInWorkScheduleResponse? Resolve(ApplicationsInWork source, ApplicationInWorkResponse destination, ApplicationInWorkScheduleResponse? destMember, ResolutionContext context)
@@ -38,7 +42,8 @@ namespace PARR.API.MappingProfiles.Resolvers
var response = new ApplicationInWorkScheduleResponse
{
- Timezone = settingsFromDb.ScheduleTimezone,
+ //Timezone = settingsFromDb.ScheduleTimezone,
+ Timezone = scheduleResponseAreaTimeOffsetService.GetDefault.EsppValue,
TypeSchedule = mapper.Map(schedule.TypeSchedule),
Values = mapper.Map>(schedule.Values).OrderBy(t => t.Order).ToList()
};
diff --git a/PARR.API/MappingProfiles/Resolvers/JobGroupScheduleResolver.cs b/PARR.API/MappingProfiles/Resolvers/JobGroupScheduleResolver.cs
index 0ae2c0bb..ad41e576 100644
--- a/PARR.API/MappingProfiles/Resolvers/JobGroupScheduleResolver.cs
+++ b/PARR.API/MappingProfiles/Resolvers/JobGroupScheduleResolver.cs
@@ -3,6 +3,7 @@ using PARR.API.Contracts.V1.Responses;
using PARR.DAL.Contracts;
using PARR.DAL.Models.Job;
using PARR.DAL.Services.Interfaces;
+using PARR.DAL.Services.Interfaces.Schedule;
namespace PARR.API.MappingProfiles.Resolvers
{
@@ -12,18 +13,21 @@ namespace PARR.API.MappingProfiles.Resolvers
private readonly ILogger logger;
private readonly IMapper mapper;
private readonly SettingsFromDb settingsFromDb;
+ private readonly IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService;
public JobGroupScheduleResolver(
IEsppSchTypeConfigService esppConfigService,
ILogger logger,
IMapper mapper,
- SettingsFromDb settingsFromDb
+ SettingsFromDb settingsFromDb,
+ IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService
)
{
this.esppConfigService = esppConfigService;
this.logger = logger;
this.mapper = mapper;
this.settingsFromDb = settingsFromDb;
+ this.scheduleResponseAreaTimeOffsetService = scheduleResponseAreaTimeOffsetService;
}
@@ -39,7 +43,8 @@ namespace PARR.API.MappingProfiles.Resolvers
var response = new JobGroupScheduleResponse
{
- Timezone = settingsFromDb.ScheduleTimezone,
+ //Timezone = settingsFromDb.ScheduleTimezone,
+ Timezone = scheduleResponseAreaTimeOffsetService.GetDefault.EsppValue,
TypeSchedule = mapper.Map(schedule.TypeSchedule),
Values = mapper.Map>(schedule.Values).OrderBy(t => t.Order).ToList()
};
diff --git a/PARR.API/MappingProfiles/Resolvers/RobotTaskScheduleGenerationTimeResolver.cs b/PARR.API/MappingProfiles/Resolvers/RobotTaskScheduleGenerationTimeResolver.cs
index ff363f48..8d781750 100644
--- a/PARR.API/MappingProfiles/Resolvers/RobotTaskScheduleGenerationTimeResolver.cs
+++ b/PARR.API/MappingProfiles/Resolvers/RobotTaskScheduleGenerationTimeResolver.cs
@@ -3,26 +3,26 @@ using PARR.API.Contracts.V1.Responses;
using PARR.BLL.Helpers;
using PARR.DAL.Contracts;
using PARR.DAL.Models;
-using PARR.DAL.TransformServices;
+
namespace PARR.API.MappingProfiles.Resolvers
{
- public class RobotTaskScheduleGenerationTimeResolver : IValueResolver
- {
- private readonly SettingsFromDb settingsFromDb;
- private readonly INextRunModifierService nextRunModifierService;
+ //public class RobotTaskScheduleGenerationTimeResolver : IValueResolver
+ //{
+ // private readonly SettingsFromDb settingsFromDb;
+ // private readonly INextRunModifierService nextRunModifierService;
- public RobotTaskScheduleGenerationTimeResolver(SettingsFromDb settingsFromDb, INextRunModifierService nextRunModifierService)
- {
- this.settingsFromDb = settingsFromDb;
- this.nextRunModifierService = nextRunModifierService;
- }
+ // public RobotTaskScheduleGenerationTimeResolver(SettingsFromDb settingsFromDb, INextRunModifierService nextRunModifierService)
+ // {
+ // this.settingsFromDb = settingsFromDb;
+ // this.nextRunModifierService = nextRunModifierService;
+ // }
- public string Resolve(RobotConfiguration source, RobotTaskScheduleResponse destination, string destMember, ResolutionContext context)
- {
- var nextRunForRobot = nextRunModifierService.GetNextRunByAccountRobotTimeZone(source.Template!.NextRun);
+ // public string Resolve(RobotConfiguration source, RobotTaskScheduleResponse destination, string destMember, ResolutionContext context)
+ // {
+ // var nextRunForRobot = nextRunModifierService.GetNextRunByAccountRobotTimeZone(source.Template!.NextRun);
- return EsppScheduleHelpers.GetGenerationTime(nextRunForRobot);
- }
- }
+ // return EsppScheduleHelpers.GetGenerationTime(nextRunForRobot);
+ // }
+ //}
}
diff --git a/PARR.API/MappingProfiles/Resolvers/RobotTaskScheduleNextStartResolver.cs b/PARR.API/MappingProfiles/Resolvers/RobotTaskScheduleNextStartResolver.cs
index 6013463d..caa71726 100644
--- a/PARR.API/MappingProfiles/Resolvers/RobotTaskScheduleNextStartResolver.cs
+++ b/PARR.API/MappingProfiles/Resolvers/RobotTaskScheduleNextStartResolver.cs
@@ -3,26 +3,47 @@ using PARR.API.Contracts.V1.Responses;
using PARR.BLL.Helpers;
using PARR.DAL.Contracts;
using PARR.DAL.Models;
-using PARR.DAL.TransformServices;
+using PARR.DAL.Services.Interfaces.Schedule;
namespace PARR.API.MappingProfiles.Resolvers
{
- public class RobotTaskScheduleNextStartResolver : IValueResolver
- {
- private readonly SettingsFromDb settingsFromDb;
- private readonly INextRunModifierService nextRunModifierService;
+ //public class RobotTaskScheduleNextStartResolver : IValueResolver
+ //{
+ // private readonly SettingsFromDb settingsFromDb;
+ // private readonly INextRunModifierService nextRunModifierService;
+ // private readonly IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService;
- public RobotTaskScheduleNextStartResolver(SettingsFromDb settingsFromDb, INextRunModifierService nextRunModifierService)
- {
- this.settingsFromDb = settingsFromDb;
- this.nextRunModifierService = nextRunModifierService;
- }
+ // public RobotTaskScheduleNextStartResolver(
+ // SettingsFromDb settingsFromDb,
+ // INextRunModifierService nextRunModifierService,
+ // IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService
+ // )
+ // {
+ // this.settingsFromDb = settingsFromDb;
+ // this.nextRunModifierService = nextRunModifierService;
+ // this.scheduleResponseAreaTimeOffsetService = scheduleResponseAreaTimeOffsetService;
+ // }
- public string Resolve(RobotConfiguration source, RobotTaskScheduleResponse destination, string destMember, ResolutionContext context)
- {
- var nextRunForRobot = nextRunModifierService.GetNextRunByAccountRobotTimeZone(source.Template!.NextRun);
+ // public string Resolve(RobotConfiguration source, RobotTaskScheduleResponse destination, string destMember, ResolutionContext context)
+ // {
+ // var nextRunForRobot = nextRunModifierService.GetNextRunByAccountRobotTimeZone(source.Template!.NextRun);
- return EsppScheduleHelpers.GetNextRun(nextRunForRobot);
- }
- }
+ // // Сначала прибавляем офсет УЗ ЕСПП
+ // // потом прибаляем = офсет УЗ ЕСПП - offset ЗО
+
+ // // если включен - IsWorkGroupTimezone - группировка по таймозне группы, применяем тайм зону группы
+ // if (source.Template?.Job?.Group?.IsWorkGroupTimezone == true)
+ // {
+ // var responseArea = "TODO";
+ // var esppOffset = new TimeSpan(settingsFromDb.EsppRobotAccountTimeZoneHour, 0, 0);
+ // var workGroupOffset = scheduleResponseAreaTimeOffsetService.GetByResponseAreaOrDefault(responseArea).UtcTimeOffset;
+
+ // var resultOffset = esppOffset - workGroupOffset;
+
+ // nextRunForRobot = nextRunForRobot.Add(resultOffset);
+ // }
+
+ // return EsppScheduleHelpers.GetNextRun(nextRunForRobot);
+ // }
+ //}
}
diff --git a/PARR.API/MappingProfiles/Resolvers/RobotTaskScheduleSchResolver.cs b/PARR.API/MappingProfiles/Resolvers/RobotTaskScheduleSchResolver.cs
index 18561284..cf1e4958 100644
--- a/PARR.API/MappingProfiles/Resolvers/RobotTaskScheduleSchResolver.cs
+++ b/PARR.API/MappingProfiles/Resolvers/RobotTaskScheduleSchResolver.cs
@@ -1,9 +1,8 @@
using AutoMapper;
using PARR.API.Contracts.V1.Responses;
-using PARR.DAL.Contracts;
using PARR.DAL.Models;
using PARR.DAL.Services.Interfaces;
-using PARR.DAL.TransformServices;
+
namespace PARR.API.MappingProfiles.Resolvers
{
@@ -11,17 +10,14 @@ namespace PARR.API.MappingProfiles.Resolvers
{
private readonly IEsppSchTypeConfigService esppConfigService;
private readonly ILogger logger;
- private readonly INextRunModifierService nextRunModifierService;
public RobotTaskScheduleSchResolver(
IEsppSchTypeConfigService esppConfigService,
- ILogger logger,
- INextRunModifierService nextRunModifierService
+ ILogger logger
)
{
this.esppConfigService = esppConfigService;
this.logger = logger;
- this.nextRunModifierService = nextRunModifierService;
}
public List? Resolve(RobotConfiguration source, RobotTaskScheduleResponse destination, List? destMember, ResolutionContext context)
@@ -44,14 +40,15 @@ namespace PARR.API.MappingProfiles.Resolvers
Value = t.Value.Value
}).OrderBy(t => t.Order).ToList();
- //Если задача относится к распределенной модели исполнения за период месяц устанавливаем день равный NextRun
- if (source.Template!.Job!.Group!.IsAutoDistributionEnabled && schedule.TypeSchedule.Id == (int)EsppSchTypeScheduleEnum.Monthly)
- {
- var nextRunForRobot = nextRunModifierService.GetNextRunByAccountRobotTimeZone(source.Template.NextRun);
+ ////Если задача относится к распределенной модели исполнения за период месяц устанавливаем день равный NextRun
+ ////УСТАРЕВШЕЕ
+ //if (source.Template!.Job!.Group!.IsAutoDistributionEnabled && schedule.TypeSchedule.Id == (int)EsppSchTypeScheduleEnum.Monthly)
+ //{
+ // var nextRunForRobot = nextRunModifierService.GetNextRunByAccountRobotTimeZone(source.Template.NextRun);
- //response.First().Value = source.Template.NextRun.Day.ToString();
- response.First().Value = nextRunForRobot.Day.ToString();
- }
+ // //response.First().Value = source.Template.NextRun.Day.ToString();
+ // response.First().Value = nextRunForRobot.Day.ToString();
+ //}
return response;
}
diff --git a/PARR.API/MappingProfiles/Resolvers/RobotTaskScheduleTimezoneResolver.cs b/PARR.API/MappingProfiles/Resolvers/RobotTaskScheduleTimezoneResolver.cs
index 47f7cec1..2c62dfd3 100644
--- a/PARR.API/MappingProfiles/Resolvers/RobotTaskScheduleTimezoneResolver.cs
+++ b/PARR.API/MappingProfiles/Resolvers/RobotTaskScheduleTimezoneResolver.cs
@@ -5,18 +5,18 @@ using PARR.DAL.Models;
namespace PARR.API.MappingProfiles.Resolvers
{
- public class RobotTaskScheduleTimezoneResolver : IValueResolver
- {
- private readonly SettingsFromDb settingsFromDb;
+ //public class RobotTaskScheduleTimezoneResolver : IValueResolver
+ //{
+ // private readonly SettingsFromDb settingsFromDb;
- public RobotTaskScheduleTimezoneResolver(SettingsFromDb settingsFromDb)
- {
- this.settingsFromDb = settingsFromDb;
- }
+ // public RobotTaskScheduleTimezoneResolver(SettingsFromDb settingsFromDb)
+ // {
+ // this.settingsFromDb = settingsFromDb;
+ // }
- public string Resolve(RobotConfiguration source, RobotTaskScheduleResponse destination, string destMember, ResolutionContext context)
- {
- return settingsFromDb.ScheduleTimezone;
- }
- }
+ // public string Resolve(RobotConfiguration source, RobotTaskScheduleResponse destination, string destMember, ResolutionContext context)
+ // {
+ // return settingsFromDb.ScheduleTimezone;
+ // }
+ //}
}
diff --git a/PARR.API/MappingProfiles/Resolvers/TemplateScheduleResolver.cs b/PARR.API/MappingProfiles/Resolvers/TemplateScheduleResolver.cs
index a05b6be2..465a843b 100644
--- a/PARR.API/MappingProfiles/Resolvers/TemplateScheduleResolver.cs
+++ b/PARR.API/MappingProfiles/Resolvers/TemplateScheduleResolver.cs
@@ -3,6 +3,7 @@ using PARR.API.Contracts.V1.Responses;
using PARR.DAL.Contracts;
using PARR.DAL.Models;
using PARR.DAL.Services.Interfaces;
+using PARR.DAL.Services.Interfaces.Schedule;
namespace PARR.API.MappingProfiles.Resolvers
{
@@ -12,18 +13,21 @@ namespace PARR.API.MappingProfiles.Resolvers
private readonly ILogger logger;
private readonly IMapper mapper;
private readonly SettingsFromDb settingsFromDb;
+ private readonly IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService;
public TemplateScheduleResolver(
IEsppSchTypeConfigService esppConfigService,
ILogger logger,
IMapper mapper,
- SettingsFromDb settingsFromDb
+ SettingsFromDb settingsFromDb,
+ IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService
)
{
this.esppConfigService = esppConfigService;
this.logger = logger;
this.mapper = mapper;
this.settingsFromDb = settingsFromDb;
+ this.scheduleResponseAreaTimeOffsetService = scheduleResponseAreaTimeOffsetService;
}
public EsppScheduleResponse? Resolve(Template source, TemplateResponse destination, EsppScheduleResponse? destMember, ResolutionContext context)
@@ -42,7 +46,8 @@ namespace PARR.API.MappingProfiles.Resolvers
//LastRun = source.ApplicationsInWork.LastRun,
NextRun = source.NextRun,
LastRun = source.LastRun,
- Timezone = settingsFromDb.ScheduleTimezone,
+ // Timezone = settingsFromDb.ScheduleTimezone,
+ Timezone = scheduleResponseAreaTimeOffsetService.GetDefault.EsppValue,
TypeSchedule = mapper.Map(schedule.TypeSchedule),
Values = mapper.Map>(schedule.Values).OrderBy(t => t.Order).ToList()
};
diff --git a/PARR.BLL/Helpers/EsppScheduleHelpers.cs b/PARR.BLL/Helpers/EsppScheduleHelpers.cs
index f0f3323e..723f9b59 100644
--- a/PARR.BLL/Helpers/EsppScheduleHelpers.cs
+++ b/PARR.BLL/Helpers/EsppScheduleHelpers.cs
@@ -4,29 +4,6 @@ namespace PARR.BLL.Helpers
{
public static class EsppScheduleHelpers
{
- /////
- ///// Получить дату первого старта в формате ЕСПП
- /////
- /////
- /////
- /////
- //public static string GetFirstStart(DateOnly startDate, TimeSpan time)
- //{
- // var date = new DateTime(startDate.Year, startDate.Month, startDate.Day, time.Hours, time.Minutes, time.Seconds);
-
- // return date.ToString("dd/MM/yy HH:mm:ss", CultureInfo.InvariantCulture);
- //}
-
- /////
- ///// Получить дату следующего старта в формате для ЕСПП
- /////
- /////
- /////
- //public static string GetNextScheduleStart(DateTimeOffset date)
- //{
- // return date.ToString("dd/MM/yy HH:mm:ss", CultureInfo.InvariantCulture);
- //}
-
///
/// Получить время создания наряда в формате ЕСПП
///
diff --git a/PARR.DAL/Configurations/DbSettings/DBConfigurationProvider.cs b/PARR.DAL/Configurations/DbSettings/DBConfigurationProvider.cs
index 1c542296..de8f1405 100644
--- a/PARR.DAL/Configurations/DbSettings/DBConfigurationProvider.cs
+++ b/PARR.DAL/Configurations/DbSettings/DBConfigurationProvider.cs
@@ -1,4 +1,5 @@
-using Microsoft.Extensions.Configuration;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using PARR.DAL.Context;
using PARR.DAL.Contracts;
@@ -21,7 +22,7 @@ namespace PARR.DAL.Configurations.DbSettings
//если миграциями БД еще не создана, то SettingsInDbs будет недоступна
try
{
- var settings = dataContext?.Setting.ToList();
+ var settings = dataContext?.Setting.AsNoTracking().ToList();
if (settings == null)
return;
diff --git a/PARR.DAL/Context/DataContext.cs b/PARR.DAL/Context/DataContext.cs
index 07c5fe8a..836b116f 100644
--- a/PARR.DAL/Context/DataContext.cs
+++ b/PARR.DAL/Context/DataContext.cs
@@ -189,7 +189,7 @@ namespace PARR.DAL.Context
new { Name = nameof(SettingsFromDb.TemplatePrefixName), Description = "Префикс имени шаблона в ЕСПП", Value = "%PREFIX%-ЭИТИ-ПТК-ПАРР" },
new { Name = nameof(SettingsFromDb.RobotAttemptsNumber), Description = "Количество попыток выполнения задания роботом", Value = "3" },
new { Name = nameof(SettingsFromDb.RobotWaitTime), Description = "Время ожидания выполнения роботом задания", Value = "00:15:00" },
- new { Name = nameof(SettingsFromDb.ScheduleTimezone), Description = "Расписание регламентной работы - В каком часовом поясе", Value = "MSK" },
+ //new { Name = nameof(SettingsFromDb.ScheduleTimezone), Description = "Расписание регламентной работы - В каком часовом поясе", Value = "MSK" },
//new { Name = nameof(SettingsFromDb.ScheduleExcludeType), Description = "Расписание регламентной работы - Тип исключения", Value = "Выполнить ТОЛЬКО В указанном календаре" },
//new { Name = nameof(SettingsFromDb.ScheduleExcludeCalendar), Description = "Расписание регламентной работы - Календарь", Value = "8x5 (8.00-17.00)" },
new { Name = nameof(SettingsFromDb.ScheduleRepeatRange), Description = "Расписание регламентной работы - Диапазн повторов", Value = "Отсутствует дата завершения" },
@@ -202,12 +202,12 @@ namespace PARR.DAL.Context
Description = "Список неизменных частей имени шаблона",
Value =
new List {
- new TemplateNameConstantPart { Name = "П-1", Value = "ЭИТИ" },
- new TemplateNameConstantPart { Name = "П-2", Value = "ПАРР" }
+ new TemplateNameConstantPart { Name = "П-1", Value = "ЭИТИ-ПАРР" }
}.ToJson()
},
new { Name = nameof(SettingsFromDb.EsppUnitTag), Description = "Префикс тега в поле ЭК \"Дополнительная информация\"", Value = "ПАРР_" },
- new { Name = nameof(SettingsFromDb.JobIdForUnusedTemplates), Description = "Job в который перемещаем ниспользованные шаблоны", Value = "8f85a91c-a223-4686-bb69-1f0ee73624f2" }
+ new { Name = nameof(SettingsFromDb.JobIdForUnusedTemplates), Description = "Job в который перемещаем ниспользованные шаблоны", Value = "8f85a91c-a223-4686-bb69-1f0ee73624f2" },
+ new { Name = nameof(SettingsFromDb.DefaultResponseAreaToTimeOffset), Description = "Зона ответственности для получения тайм зоны по умолчанию для расписаний", Value = "17-МСК" }
);
});
#endregion
diff --git a/PARR.DAL/Contracts/SettingsFromDb.cs b/PARR.DAL/Contracts/SettingsFromDb.cs
index eb988bf3..3e12a1eb 100644
--- a/PARR.DAL/Contracts/SettingsFromDb.cs
+++ b/PARR.DAL/Contracts/SettingsFromDb.cs
@@ -77,10 +77,10 @@ namespace PARR.DAL.Contracts
///
public TimeSpan RobotWaitTime { get; set; }
- ///
- /// Расписание регламентной работы - В каком часовом поясе
- ///
- public string ScheduleTimezone { get; set; } = string.Empty;
+ /////
+ ///// Расписание регламентной работы - В каком часовом поясе
+ /////
+ //public string ScheduleTimezone { get; set; } = string.Empty;
/////
///// Расписание регламентной работы - Тип исключения
@@ -93,7 +93,7 @@ namespace PARR.DAL.Contracts
//public string ScheduleExcludeCalendar { get; set; } = string.Empty;
///
- /// Расписание регламентной работы - Диапазн повторов
+ /// Расписание регламентной работы - Диапазон повторов
///
public string ScheduleRepeatRange { get; set; } = string.Empty;
@@ -122,6 +122,11 @@ namespace PARR.DAL.Contracts
///
public Guid JobIdForUnusedTemplates { get; set; }
+ ///
+ /// Зона ответственности для получения тайм зоны по умолчанию для расписаний
+ ///
+ public string DefaultResponseAreaToTimeOffset { get; set; } = string.Empty;
+
}
}
diff --git a/PARR.DAL/Migrations/20260202235709_tblScheduleResponseAreaTimeOffsetAddUtcTimeOffset.Designer.cs b/PARR.DAL/Migrations/20260202235709_tblScheduleResponseAreaTimeOffsetAddUtcTimeOffset.Designer.cs
new file mode 100644
index 00000000..e222a43f
--- /dev/null
+++ b/PARR.DAL/Migrations/20260202235709_tblScheduleResponseAreaTimeOffsetAddUtcTimeOffset.Designer.cs
@@ -0,0 +1,4144 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+using PARR.DAL.Context;
+
+#nullable disable
+
+namespace PARR.DAL.Migrations
+{
+ [DbContext(typeof(DataContext))]
+ [Migration("20260202235709_tblScheduleResponseAreaTimeOffsetAddUtcTimeOffset")]
+ partial class tblScheduleResponseAreaTimeOffsetAddUtcTimeOffset
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "7.0.5")
+ .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+ NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+ modelBuilder.Entity("PARR.DAL.Models.AgentHistory", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("HistoryLevelId")
+ .HasColumnType("integer");
+
+ b.Property("Message")
+ .HasColumnType("text");
+
+ b.Property("OrderId")
+ .HasColumnType("uuid");
+
+ b.Property("TemplateId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("HistoryLevelId");
+
+ b.HasIndex("OrderId");
+
+ b.HasIndex("TemplateId");
+
+ b.ToTable("AgentHistories");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.AgentHistoryLevel", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("AgentHistoryLevels");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Description = "Агент начал выполнять задание",
+ Name = "Start"
+ },
+ new
+ {
+ Id = 5,
+ Description = "Агент завершил выполнение задания",
+ Name = "End"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.AppInWorkInWorkGroup", b =>
+ {
+ b.Property("ApplicationsInWorkId")
+ .HasColumnType("uuid");
+
+ b.Property("WorkGroupId")
+ .HasColumnType("uuid");
+
+ b.HasKey("ApplicationsInWorkId", "WorkGroupId");
+
+ b.HasIndex("WorkGroupId");
+
+ b.ToTable("AppInWorkInWorkGroups");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Application", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("ApplicationTypeId")
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ApplicationTypeId");
+
+ b.HasIndex("Name", "ApplicationTypeId")
+ .IsUnique();
+
+ b.ToTable("Applications");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.ApplicationInHost", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("ApplicationId")
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("HostId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ApplicationId");
+
+ b.HasIndex("HostId");
+
+ b.ToTable("ApplicationsInHost");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.ApplicationType", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Description")
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("ApplicationTypes");
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("32c28386-6f13-4f7b-8508-be165b7fabdb"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Сервер приложений",
+ Name = "APP"
+ },
+ new
+ {
+ Id = new Guid("7848a96c-cdee-48c1-a786-de9cb889723a"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "ОС",
+ Name = "OS"
+ },
+ new
+ {
+ Id = new Guid("aae2636f-b93a-42dc-873e-0764a90a0a40"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "СУБД",
+ Name = "DB"
+ },
+ new
+ {
+ Id = new Guid("749f4c34-b883-4f28-90dd-c161dd3c4270"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "ЦК БС",
+ Name = "CKBS"
+ },
+ new
+ {
+ Id = new Guid("0bd96f9b-d36b-4dfb-bd8a-9c356bc6912b"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "ИБ",
+ Name = "IB"
+ },
+ new
+ {
+ Id = new Guid("4466148b-510d-4423-a58f-ce878152ff01"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Инфраструктура",
+ Name = "SI"
+ },
+ new
+ {
+ Id = new Guid("725a96db-358e-489b-a7c9-a84b06ec15df"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Мониторинг",
+ Name = "SM"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.ApplicationsInWork", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("AgentName")
+ .HasColumnType("text");
+
+ b.Property("AgentScript")
+ .HasColumnType("text");
+
+ b.Property("AgentTimeOutSec")
+ .HasColumnType("integer");
+
+ b.Property("ApplicationId")
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("FullDescription")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("IsAgent")
+ .HasColumnType("boolean");
+
+ b.Property("IsAutoDistributionEnabled")
+ .HasColumnType("boolean");
+
+ b.Property("ReferenceDate")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("ShortDescription")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Solution")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("TemplateDuration")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("WorkId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ApplicationId");
+
+ b.HasIndex("WorkId", "ApplicationId")
+ .IsUnique();
+
+ b.ToTable("ApplicationsInWorks");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.DistributionPeriod", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Duration")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Type")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Type");
+
+ b.ToTable("DistributionPeriods", "schedule");
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("9bd0bfa8-c316-480b-a001-e09ffe8c9340"),
+ Duration = "7",
+ Name = "Еженедельно",
+ Type = "Day"
+ },
+ new
+ {
+ Id = new Guid("3a7341a8-085c-461c-babc-6b78dd5d2c67"),
+ Duration = "30",
+ Name = "Ежемесячно",
+ Type = "Day"
+ },
+ new
+ {
+ Id = new Guid("0ad2dfdb-3833-46d9-979a-c408b7eadc6c"),
+ Duration = "90",
+ Name = "Каждые 90 дней",
+ Type = "Day"
+ },
+ new
+ {
+ Id = new Guid("31dd3947-8471-4f09-852c-a4f075f1ba7f"),
+ Duration = "182",
+ Name = "Каждые пол года",
+ Type = "Day"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.DistributionPeriodType", b =>
+ {
+ b.Property("Type")
+ .HasColumnType("text");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Type");
+
+ b.ToTable("DistributionPeriodTypes", "schedule");
+
+ b.HasData(
+ new
+ {
+ Type = "Day",
+ Description = "День"
+ },
+ new
+ {
+ Type = "Month",
+ Description = "Месяц"
+ },
+ new
+ {
+ Type = "Year",
+ Description = "Год"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.EkStatus", b =>
+ {
+ b.Property("Code")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Code"));
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Code");
+
+ b.ToTable("EkStatuses");
+
+ b.HasData(
+ new
+ {
+ Code = 1,
+ Name = "1-Новый"
+ },
+ new
+ {
+ Code = 2,
+ Name = "2-Подготовка к эксплуатации"
+ },
+ new
+ {
+ Code = 3,
+ Name = "3-В эксплуатации"
+ },
+ new
+ {
+ Code = 4,
+ Name = "4-В ремонте"
+ },
+ new
+ {
+ Code = 5,
+ Name = "5-В резерве"
+ },
+ new
+ {
+ Code = 6,
+ Name = "6-Выведен из эксплуатации"
+ },
+ new
+ {
+ Code = 7,
+ Name = "7-Тестовый"
+ },
+ new
+ {
+ Code = 9,
+ Name = "9-В разработке"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.EsppSchType", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("EsppSchTypes", "schedule");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Description = "Через интервал",
+ Name = "Interval"
+ },
+ new
+ {
+ Id = 2,
+ Description = "День недели: пнд, вт...",
+ Name = "DayOfWeek"
+ },
+ new
+ {
+ Id = 3,
+ Description = "Число месяца: 1,2,3,4",
+ Name = "DayOfMonth"
+ },
+ new
+ {
+ Id = 4,
+ Description = "Каждый: первый, второй, третий, четвертый, последний",
+ Name = "Order"
+ },
+ new
+ {
+ Id = 5,
+ Description = "Месяц: январь, февраль...",
+ Name = "Month"
+ },
+ new
+ {
+ Id = 6,
+ Description = "Месяц (родительный падеж): января, февраля...",
+ Name = "MonthGenitive"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.EsppSchTypeConfig", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Order")
+ .HasColumnType("integer");
+
+ b.Property("TypeId")
+ .HasColumnType("integer");
+
+ b.Property("TypeScheduleId")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TypeId");
+
+ b.HasIndex("TypeScheduleId", "TypeId")
+ .IsUnique();
+
+ b.ToTable("EsppSchTypeConfigs", "schedule");
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("d2693562-b3eb-41e9-97db-c6b5d2ef1bea"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Order = 0,
+ TypeId = 1,
+ TypeScheduleId = 1
+ },
+ new
+ {
+ Id = new Guid("06b2e7aa-6927-4fbf-99fb-67c92a4fce8a"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Order = 0,
+ TypeId = 2,
+ TypeScheduleId = 2
+ },
+ new
+ {
+ Id = new Guid("78079071-ff80-417e-9bb0-d928cec853e7"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Order = 0,
+ TypeId = 3,
+ TypeScheduleId = 3
+ },
+ new
+ {
+ Id = new Guid("accb1d46-e1c1-4396-9182-4c0766155921"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Order = 0,
+ TypeId = 4,
+ TypeScheduleId = 4
+ },
+ new
+ {
+ Id = new Guid("162ffe73-2428-4abe-8f83-235c2593664c"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Order = 1,
+ TypeId = 2,
+ TypeScheduleId = 4
+ },
+ new
+ {
+ Id = new Guid("8470d1ef-165d-42fc-ab05-8203e4d263cf"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Order = 0,
+ TypeId = 5,
+ TypeScheduleId = 5
+ },
+ new
+ {
+ Id = new Guid("006900b5-f65c-413e-bc67-09e6dae60b7c"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Order = 1,
+ TypeId = 3,
+ TypeScheduleId = 5
+ },
+ new
+ {
+ Id = new Guid("85635bc8-f17a-46b8-9c15-8615761be3d9"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Order = 0,
+ TypeId = 4,
+ TypeScheduleId = 6
+ },
+ new
+ {
+ Id = new Guid("439460c2-deca-4b54-80e7-2f20806696ec"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Order = 1,
+ TypeId = 2,
+ TypeScheduleId = 6
+ },
+ new
+ {
+ Id = new Guid("5c63ad8c-e9b4-43fd-9d24-5c2eed80dadd"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Order = 2,
+ TypeId = 6,
+ TypeScheduleId = 6
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.EsppSchTypeSchedule", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("EsppSchTypeSchedules", "schedule");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Description = "Регулярно",
+ Name = "Regularly"
+ },
+ new
+ {
+ Id = 2,
+ Description = "Еженедельно",
+ Name = "Weekly"
+ },
+ new
+ {
+ Id = 3,
+ Description = "Ежемесячно",
+ Name = "Monthly"
+ },
+ new
+ {
+ Id = 4,
+ Description = "Ежемесячно-2",
+ Name = "Monthly2"
+ },
+ new
+ {
+ Id = 5,
+ Description = "Ежегодно",
+ Name = "Annually"
+ },
+ new
+ {
+ Id = 6,
+ Description = "Ежегодно-2",
+ Name = "Annually2"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.EsppSchTypeValue", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("EsppExportValue")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Order")
+ .HasColumnType("integer");
+
+ b.Property("TypeId")
+ .HasColumnType("integer");
+
+ b.Property("Value")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TypeId");
+
+ b.ToTable("EsppSchTypeValues", "schedule");
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("6e3b5dd2-b2f7-40bc-bace-15bfa6bbd4ff"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "01:00:00",
+ Order = 0,
+ TypeId = 1,
+ Value = "Каждый час"
+ },
+ new
+ {
+ Id = new Guid("4df04834-f14f-43d9-8984-334f080f4107"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "02:00:00",
+ Order = 1,
+ TypeId = 1,
+ Value = "Каждые 2 часа"
+ },
+ new
+ {
+ Id = new Guid("dab6e3f9-2385-4966-b77c-133ad233c592"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "03:00:00",
+ Order = 2,
+ TypeId = 1,
+ Value = "Каждые 3 часа"
+ },
+ new
+ {
+ Id = new Guid("035f485d-8451-47df-bfaa-ba4dd36cf146"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "04:00:00",
+ Order = 3,
+ TypeId = 1,
+ Value = "Каждые 4 часа"
+ },
+ new
+ {
+ Id = new Guid("d627daa7-3eed-4571-acae-ffbb3c5bedb9"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "06:00:00",
+ Order = 4,
+ TypeId = 1,
+ Value = "Каждые 6 часов"
+ },
+ new
+ {
+ Id = new Guid("ae0a0015-0f1e-4496-b71e-6244f7e321e7"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "12:00:00",
+ Order = 5,
+ TypeId = 1,
+ Value = "Каждые 12 часов"
+ },
+ new
+ {
+ Id = new Guid("8df097aa-9860-4a62-9675-a8eecd3f2ce7"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "1 00:00:00",
+ Order = 6,
+ TypeId = 1,
+ Value = "Ежедневно"
+ },
+ new
+ {
+ Id = new Guid("dee32e60-c1a1-4206-98bc-aa03deabfdf6"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "3 00:00:00",
+ Order = 7,
+ TypeId = 1,
+ Value = "Каждые 72 часа"
+ },
+ new
+ {
+ Id = new Guid("e0465fbf-e3a5-4486-9f53-5bb85c6feeca"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "4 00:00:00",
+ Order = 8,
+ TypeId = 1,
+ Value = "Каждые 96 часов"
+ },
+ new
+ {
+ Id = new Guid("4e3f73d1-a0f3-4dd1-bca9-68ada0dd5ce2"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "14 00:00:00",
+ Order = 9,
+ TypeId = 1,
+ Value = "Каждые 2 недели"
+ },
+ new
+ {
+ Id = new Guid("55833417-6a24-42f6-bcc2-5d032f883202"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "60 00:00:00",
+ Order = 10,
+ TypeId = 1,
+ Value = "Каждые 60 дней"
+ },
+ new
+ {
+ Id = new Guid("7fefa052-29db-4ce5-9c57-2fd9ff855f21"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "80 00:00:00",
+ Order = 11,
+ TypeId = 1,
+ Value = "Каждые 80 дней"
+ },
+ new
+ {
+ Id = new Guid("b0ca99f9-5ee0-45b3-bb80-948f82b1fcb1"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "90 00:00:00",
+ Order = 12,
+ TypeId = 1,
+ Value = "Каждые 90 дней"
+ },
+ new
+ {
+ Id = new Guid("086f7a37-9848-423a-a3cc-36dbb5ad43e3"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "182 00:00:00",
+ Order = 13,
+ TypeId = 1,
+ Value = "Каждые полгода"
+ },
+ new
+ {
+ Id = new Guid("f2da9e02-d619-4517-a598-374880a8c8e8"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "540 00:00:00",
+ Order = 14,
+ TypeId = 1,
+ Value = "Каждые 1,5 года"
+ },
+ new
+ {
+ Id = new Guid("f38d7d30-8923-4ea0-aa7c-5b251e19ab61"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "1095 00:00:00",
+ Order = 15,
+ TypeId = 1,
+ Value = "Каждые 3 года"
+ },
+ new
+ {
+ Id = new Guid("b7303461-9a30-43fa-8e55-305aa13f186f"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "1",
+ Order = 0,
+ TypeId = 2,
+ Value = "Понедельник"
+ },
+ new
+ {
+ Id = new Guid("e951135e-71f2-4262-9342-df4d5315ab6c"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "2",
+ Order = 1,
+ TypeId = 2,
+ Value = "Вторник"
+ },
+ new
+ {
+ Id = new Guid("c34d5375-70e7-4632-b3af-30e279a0621a"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "3",
+ Order = 2,
+ TypeId = 2,
+ Value = "Среда"
+ },
+ new
+ {
+ Id = new Guid("ec9540df-c2de-4bda-a063-34d02d4b6e03"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "4",
+ Order = 3,
+ TypeId = 2,
+ Value = "Четверг"
+ },
+ new
+ {
+ Id = new Guid("2ed85534-4684-4eb2-9ccb-e264d212c945"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "5",
+ Order = 4,
+ TypeId = 2,
+ Value = "Пятница"
+ },
+ new
+ {
+ Id = new Guid("a6804315-96ef-484e-82ee-c5795694468b"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "6",
+ Order = 5,
+ TypeId = 2,
+ Value = "Суббота"
+ },
+ new
+ {
+ Id = new Guid("eb71e699-937f-4894-9688-f7a7f95e5e58"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "7",
+ Order = 6,
+ TypeId = 2,
+ Value = "Воскресенье"
+ },
+ new
+ {
+ Id = new Guid("e86adbfb-3345-4e0c-aa3b-b4418f9cfe88"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "1",
+ Order = 0,
+ TypeId = 3,
+ Value = "1"
+ },
+ new
+ {
+ Id = new Guid("5b4d7ca6-31e7-475b-b7c8-13c6680c3dc3"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "2",
+ Order = 1,
+ TypeId = 3,
+ Value = "2"
+ },
+ new
+ {
+ Id = new Guid("0da03db0-9404-425d-bea1-5da0c9b60b59"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "3",
+ Order = 2,
+ TypeId = 3,
+ Value = "3"
+ },
+ new
+ {
+ Id = new Guid("199474c8-0a77-47e5-aab8-ba33c216cc9e"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "4",
+ Order = 3,
+ TypeId = 3,
+ Value = "4"
+ },
+ new
+ {
+ Id = new Guid("e6619da1-f7e8-45b9-bbd3-9c17bec2ccd3"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "5",
+ Order = 4,
+ TypeId = 3,
+ Value = "5"
+ },
+ new
+ {
+ Id = new Guid("a8708763-c838-49a5-95fe-bf4f73518d71"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "6",
+ Order = 5,
+ TypeId = 3,
+ Value = "6"
+ },
+ new
+ {
+ Id = new Guid("7ec056aa-820c-4900-96cb-4564d2ea6398"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "7",
+ Order = 6,
+ TypeId = 3,
+ Value = "7"
+ },
+ new
+ {
+ Id = new Guid("554d7d0c-91b1-4b81-b94d-1ee864192962"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "8",
+ Order = 7,
+ TypeId = 3,
+ Value = "8"
+ },
+ new
+ {
+ Id = new Guid("8b7847a4-23de-4199-8aad-3b5c0323b5a2"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "9",
+ Order = 8,
+ TypeId = 3,
+ Value = "9"
+ },
+ new
+ {
+ Id = new Guid("fb7f41ca-950b-4dc1-a0a6-bd9a221ab2ad"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "10",
+ Order = 9,
+ TypeId = 3,
+ Value = "10"
+ },
+ new
+ {
+ Id = new Guid("a28b530f-ea38-4a2c-a16b-0b7fa3770d3c"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "11",
+ Order = 10,
+ TypeId = 3,
+ Value = "11"
+ },
+ new
+ {
+ Id = new Guid("7a004a11-32e1-40ae-ab35-0d3dc3a69785"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "12",
+ Order = 11,
+ TypeId = 3,
+ Value = "12"
+ },
+ new
+ {
+ Id = new Guid("e0f2f4d1-4a5e-4997-8336-83c3c35f38df"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "13",
+ Order = 12,
+ TypeId = 3,
+ Value = "13"
+ },
+ new
+ {
+ Id = new Guid("9c5aaf48-88ec-4c67-b936-2be45550f8bf"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "14",
+ Order = 13,
+ TypeId = 3,
+ Value = "14"
+ },
+ new
+ {
+ Id = new Guid("8dbd680c-ce49-4d2e-8a1a-05619685e240"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "15",
+ Order = 14,
+ TypeId = 3,
+ Value = "15"
+ },
+ new
+ {
+ Id = new Guid("2f476f70-b1ef-419d-aad5-3911f1e3231f"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "16",
+ Order = 15,
+ TypeId = 3,
+ Value = "16"
+ },
+ new
+ {
+ Id = new Guid("2c635ce2-fc18-47be-b3e9-98c211abf312"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "17",
+ Order = 16,
+ TypeId = 3,
+ Value = "17"
+ },
+ new
+ {
+ Id = new Guid("f9d5b03b-624a-4f9f-8da3-1490ea5d2914"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "18",
+ Order = 17,
+ TypeId = 3,
+ Value = "18"
+ },
+ new
+ {
+ Id = new Guid("4f4b249c-db60-4582-86ed-75cfee4edd0c"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "19",
+ Order = 18,
+ TypeId = 3,
+ Value = "19"
+ },
+ new
+ {
+ Id = new Guid("220a1464-4d39-416c-b4b2-3093eb007298"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "20",
+ Order = 19,
+ TypeId = 3,
+ Value = "20"
+ },
+ new
+ {
+ Id = new Guid("c887ca60-b05d-4d3c-ad1f-223c879b1a6d"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "21",
+ Order = 20,
+ TypeId = 3,
+ Value = "21"
+ },
+ new
+ {
+ Id = new Guid("2905765d-63fb-41fe-a111-ee2f1d03d62e"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "22",
+ Order = 21,
+ TypeId = 3,
+ Value = "22"
+ },
+ new
+ {
+ Id = new Guid("dbbe704a-8d6d-40e7-bd30-6974035b1fab"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "23",
+ Order = 22,
+ TypeId = 3,
+ Value = "23"
+ },
+ new
+ {
+ Id = new Guid("cf7b9645-52ed-43a2-8267-267e0aed19b1"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "24",
+ Order = 23,
+ TypeId = 3,
+ Value = "24"
+ },
+ new
+ {
+ Id = new Guid("454788d6-d0ad-4c07-878c-da3fd3cd05e1"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "25",
+ Order = 24,
+ TypeId = 3,
+ Value = "25"
+ },
+ new
+ {
+ Id = new Guid("40d70d73-8582-4be6-a9e6-503b96ae3d49"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "26",
+ Order = 25,
+ TypeId = 3,
+ Value = "26"
+ },
+ new
+ {
+ Id = new Guid("8f6610dc-ef46-4842-a57e-18d7aaa75931"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "27",
+ Order = 26,
+ TypeId = 3,
+ Value = "27"
+ },
+ new
+ {
+ Id = new Guid("03858472-d4ce-47fd-9497-8051728766e4"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "28",
+ Order = 27,
+ TypeId = 3,
+ Value = "28"
+ },
+ new
+ {
+ Id = new Guid("b1018e07-e90e-42ee-b399-19f3d0c14dd6"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "29",
+ Order = 28,
+ TypeId = 3,
+ Value = "29"
+ },
+ new
+ {
+ Id = new Guid("a1669207-aa31-40fe-98d0-d941008d1655"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "30",
+ Order = 29,
+ TypeId = 3,
+ Value = "30"
+ },
+ new
+ {
+ Id = new Guid("0936aa99-73e0-43de-b6df-334c1228a226"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "31",
+ Order = 30,
+ TypeId = 3,
+ Value = "31"
+ },
+ new
+ {
+ Id = new Guid("626ca076-f09e-4a7a-8610-b7de6337b24a"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "1",
+ Order = 0,
+ TypeId = 4,
+ Value = "Первый"
+ },
+ new
+ {
+ Id = new Guid("032fbd02-67d0-4b8c-bed0-42629ab7113b"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "2",
+ Order = 1,
+ TypeId = 4,
+ Value = "Второй"
+ },
+ new
+ {
+ Id = new Guid("fa8a8f60-e41e-495e-ac86-35174d9976bf"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "3",
+ Order = 2,
+ TypeId = 4,
+ Value = "Третий"
+ },
+ new
+ {
+ Id = new Guid("d2f90168-2b49-42f2-820b-79db2c522adf"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "4",
+ Order = 3,
+ TypeId = 4,
+ Value = "Четвертый"
+ },
+ new
+ {
+ Id = new Guid("12bb8db2-cf7f-4113-baff-6883770f1ba5"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "5",
+ Order = 4,
+ TypeId = 4,
+ Value = "Последний"
+ },
+ new
+ {
+ Id = new Guid("18260e91-3fbe-4401-9edc-78dbc419370e"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "1",
+ Order = 0,
+ TypeId = 5,
+ Value = "Январь"
+ },
+ new
+ {
+ Id = new Guid("361526aa-3e1c-452e-bb44-0ade8521830d"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "2",
+ Order = 1,
+ TypeId = 5,
+ Value = "Февраль"
+ },
+ new
+ {
+ Id = new Guid("fad4bdb0-6c51-4810-a30b-6d031a0d4c46"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "3",
+ Order = 2,
+ TypeId = 5,
+ Value = "Март"
+ },
+ new
+ {
+ Id = new Guid("06ab835d-3d3e-4057-8422-a553b6b40995"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "4",
+ Order = 3,
+ TypeId = 5,
+ Value = "Апрель"
+ },
+ new
+ {
+ Id = new Guid("83f56b5d-b16b-4aa5-89d7-a253fee4e4ad"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "5",
+ Order = 4,
+ TypeId = 5,
+ Value = "Май"
+ },
+ new
+ {
+ Id = new Guid("e679ec84-a9ee-4bed-a051-2b14edddcb18"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "6",
+ Order = 5,
+ TypeId = 5,
+ Value = "Июнь"
+ },
+ new
+ {
+ Id = new Guid("d439808a-6a10-409b-8809-a755b7cca60b"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "7",
+ Order = 6,
+ TypeId = 5,
+ Value = "Июль"
+ },
+ new
+ {
+ Id = new Guid("6e9972c4-6bf7-4fe4-b4ea-bbb333fb69c8"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "8",
+ Order = 7,
+ TypeId = 5,
+ Value = "Август"
+ },
+ new
+ {
+ Id = new Guid("0883aac2-9d5b-4098-b672-c684d2a3a0c9"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "9",
+ Order = 8,
+ TypeId = 5,
+ Value = "Сентябрь"
+ },
+ new
+ {
+ Id = new Guid("5e6592bc-acb2-45a4-979b-fdecf8457453"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "10",
+ Order = 9,
+ TypeId = 5,
+ Value = "Октябрь"
+ },
+ new
+ {
+ Id = new Guid("edd7cb49-d6a0-4969-b2d6-1967da69b336"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "11",
+ Order = 10,
+ TypeId = 5,
+ Value = "Ноябрь"
+ },
+ new
+ {
+ Id = new Guid("dd695fb2-4ad0-4cda-a4df-e15059c56b24"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "12",
+ Order = 11,
+ TypeId = 5,
+ Value = "Декабрь"
+ },
+ new
+ {
+ Id = new Guid("2f473624-4eb3-49b4-a4b9-cc7fc08a50f5"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "1",
+ Order = 0,
+ TypeId = 6,
+ Value = "Января"
+ },
+ new
+ {
+ Id = new Guid("f0003490-a249-44bd-814f-4566999915d8"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "2",
+ Order = 1,
+ TypeId = 6,
+ Value = "Февраля"
+ },
+ new
+ {
+ Id = new Guid("f4c3fe38-aeaa-42f7-a9ba-190ea2dfe339"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "3",
+ Order = 2,
+ TypeId = 6,
+ Value = "Марта"
+ },
+ new
+ {
+ Id = new Guid("06a8bd2f-68e1-42f5-961c-ac3b98a2181e"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "4",
+ Order = 3,
+ TypeId = 6,
+ Value = "Апреля"
+ },
+ new
+ {
+ Id = new Guid("963b9c41-d607-444a-9fe0-fe429590e326"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "5",
+ Order = 4,
+ TypeId = 6,
+ Value = "Мая"
+ },
+ new
+ {
+ Id = new Guid("ec8554c8-dee4-49a1-b1b7-474ad8ec1473"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "6",
+ Order = 5,
+ TypeId = 6,
+ Value = "Июня"
+ },
+ new
+ {
+ Id = new Guid("e15c7c63-e29f-41a3-9c82-f70eb6c24fde"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "7",
+ Order = 6,
+ TypeId = 6,
+ Value = "Июля"
+ },
+ new
+ {
+ Id = new Guid("0b1f3cea-301a-4d74-9ce1-2cd93b41897d"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "8",
+ Order = 7,
+ TypeId = 6,
+ Value = "Августа"
+ },
+ new
+ {
+ Id = new Guid("e2fa3769-f66f-4753-a161-35adad7717a5"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "9",
+ Order = 8,
+ TypeId = 6,
+ Value = "Сентября"
+ },
+ new
+ {
+ Id = new Guid("c1de4aca-9f49-48ae-9279-cf9ec4092112"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "10",
+ Order = 9,
+ TypeId = 6,
+ Value = "Октября"
+ },
+ new
+ {
+ Id = new Guid("a74b9ebd-bcd8-4537-b371-194de2fe0a4d"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "11",
+ Order = 10,
+ TypeId = 6,
+ Value = "Ноября"
+ },
+ new
+ {
+ Id = new Guid("852a5ebd-4545-494b-bc69-c27409a41adc"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "12",
+ Order = 11,
+ TypeId = 6,
+ Value = "Декабря"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.EsppSchValue", b =>
+ {
+ b.Property("JobGroupId")
+ .HasColumnType("uuid");
+
+ b.Property("TypeValueId")
+ .HasColumnType("uuid");
+
+ b.Property("TypeConfigId")
+ .HasColumnType("uuid");
+
+ b.HasKey("JobGroupId", "TypeValueId", "TypeConfigId");
+
+ b.HasIndex("TypeConfigId");
+
+ b.HasIndex("TypeValueId");
+
+ b.ToTable("EsppSchValues", "schedule");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Host", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Ek")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("EkStatusCode")
+ .HasColumnType("integer");
+
+ b.Property("IP")
+ .HasColumnType("text");
+
+ b.Property("LastLogon")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("ResponseAreaCode")
+ .HasColumnType("integer");
+
+ b.Property("WorkGroupId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Ek")
+ .IsUnique();
+
+ b.HasIndex("EkStatusCode");
+
+ b.HasIndex("IP");
+
+ b.HasIndex("ResponseAreaCode");
+
+ b.HasIndex("WorkGroupId");
+
+ b.ToTable("Hosts");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Job.Job", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("GroupId")
+ .HasColumnType("uuid");
+
+ b.Property("IsParentRelationships")
+ .HasColumnType("boolean");
+
+ b.Property("MaxValueRelationships")
+ .HasColumnType("integer");
+
+ b.Property("MinValueRelationships")
+ .HasColumnType("integer");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("ResponseAreaMask")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("TemplateNameMask")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("TnkId")
+ .HasColumnType("uuid");
+
+ b.Property("WorkGroupMask")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("WorkName")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("GroupId");
+
+ b.HasIndex("TnkId");
+
+ b.ToTable("Jobs", "job", t =>
+ {
+ t.HasComment("Таблица видов работ");
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Job.JobAutoControl", b =>
+ {
+ b.Property("JobId")
+ .HasColumnType("uuid");
+
+ b.Property("InitUsedScheduleState")
+ .HasColumnType("boolean");
+
+ b.Property("InitUsedTemplateState")
+ .HasColumnType("boolean");
+
+ b.Property("IsEnable")
+ .HasColumnType("boolean");
+
+ b.HasKey("JobId");
+
+ b.ToTable("AutoControls", "job", t =>
+ {
+ t.HasComment("Таблица управления автоконтролем для работ");
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Job.JobFieldFilter", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("FieldId")
+ .HasColumnType("uuid");
+
+ b.Property("IsInverse")
+ .HasColumnType("boolean");
+
+ b.Property("UnitFilterId")
+ .HasColumnType("uuid");
+
+ b.Property("ValueMask")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("FieldId");
+
+ b.HasIndex("UnitFilterId");
+
+ b.ToTable("FieldFilters", "job", t =>
+ {
+ t.HasComment("Таблица описания критериев выборки аттрибутов ЭК");
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Job.JobGroup", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("AgentName")
+ .HasColumnType("text");
+
+ b.Property("AgentScript")
+ .HasColumnType("text");
+
+ b.Property("AgentTimeOutSec")
+ .HasColumnType("integer");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("FullDescription")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("GroupName")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("GroupTypeId")
+ .HasColumnType("uuid");
+
+ b.Property("GroupingUnitFieldId")
+ .HasColumnType("uuid");
+
+ b.Property("IsAgent")
+ .HasColumnType("boolean");
+
+ b.Property("IsAutoDistributionEnabled")
+ .HasColumnType("boolean");
+
+ b.Property("IsWorkGroupTimezone")
+ .HasColumnType("boolean");
+
+ b.Property("ReferenceDate")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("ScheduleExcludeTypeCalendarId")
+ .HasColumnType("uuid");
+
+ b.Property("ScheduleExcludeTypeId")
+ .HasColumnType("uuid");
+
+ b.Property("ShortDescription")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Solution")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("TemplateDuration")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("GroupTypeId");
+
+ b.HasIndex("GroupingUnitFieldId");
+
+ b.HasIndex("ScheduleExcludeTypeCalendarId");
+
+ b.HasIndex("ScheduleExcludeTypeId");
+
+ b.ToTable("Groups", "job", t =>
+ {
+ t.HasComment("Таблица описания групп работ, для реализации зонтиков");
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Job.JobGroupDistributionConfig", b =>
+ {
+ b.Property("GroupId")
+ .HasColumnType("uuid");
+
+ b.Property("DistributionPeriodId")
+ .HasColumnType("uuid");
+
+ b.Property("IsExcludeWeekends")
+ .HasColumnType("boolean");
+
+ b.Property("IsGroupingByWorkGroup")
+ .HasColumnType("boolean");
+
+ b.HasKey("GroupId");
+
+ b.HasIndex("DistributionPeriodId");
+
+ b.ToTable("GroupDistributionConfigs", "job", t =>
+ {
+ t.HasComment("Настройки автораспределения для группы работ");
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Job.JobGroupType", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Code")
+ .HasColumnType("integer");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("GroupTypes", "job", t =>
+ {
+ t.HasComment("Таблица типов групп работ");
+ });
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("4fa62e79-86bb-47c2-be1a-72a716a170fa"),
+ Code = 0,
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Обычный",
+ Name = "Simple"
+ },
+ new
+ {
+ Id = new Guid("6ec58b1a-5c40-47b9-b036-4fa490e8d503"),
+ Code = 1,
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зонтик",
+ Name = "Umbrella"
+ },
+ new
+ {
+ Id = new Guid("318625e5-f833-436a-99df-2a382a1e71c7"),
+ Code = 2,
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Сгруппированный",
+ Name = "Group"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Job.JobRelationshipFilter", b =>
+ {
+ b.Property("UnitFilterId")
+ .HasColumnType("uuid");
+
+ b.Property("FieldId")
+ .HasColumnType("uuid");
+
+ b.Property("IsFullMatch")
+ .HasColumnType("boolean");
+
+ b.Property("IsInverse")
+ .HasColumnType("boolean");
+
+ b.Property("IsParent")
+ .HasColumnType("boolean");
+
+ b.Property("ValueMask")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("UnitFilterId", "FieldId");
+
+ b.HasIndex("FieldId");
+
+ b.ToTable("RelationshipFilters", "job", t =>
+ {
+ t.HasComment("Таблица фильтров связей ЭК");
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Job.JobUnitFilter", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("JobId")
+ .HasColumnType("uuid");
+
+ b.Property("UnitFilter")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("JobId");
+
+ b.ToTable("UnitFilters", "job", t =>
+ {
+ t.HasComment("Таблица описания критериев выборки ЭК, описание полей в АСУ ЕСПП");
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Order", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("ExpirationDate")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("GenerateDate")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("NextStatusCode")
+ .HasColumnType("integer");
+
+ b.Property("Number")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("ShortName")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("StatusCode")
+ .HasColumnType("integer");
+
+ b.Property("TemplateId")
+ .HasColumnType("uuid");
+
+ b.Property("WorkGroup")
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("NextStatusCode");
+
+ b.HasIndex("Number")
+ .IsUnique();
+
+ b.HasIndex("StatusCode");
+
+ b.HasIndex("TemplateId");
+
+ b.ToTable("Orders");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.OrderStatus", b =>
+ {
+ b.Property("Code")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Code"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Code");
+
+ b.ToTable("OrderStatuses");
+
+ b.HasData(
+ new
+ {
+ Code = 1,
+ Description = "1-Направлен в группу",
+ Name = "New"
+ },
+ new
+ {
+ Code = 2,
+ Description = "2-В работе",
+ Name = "InWork"
+ },
+ new
+ {
+ Code = 3,
+ Description = "3-Приостановлен",
+ Name = "Stop"
+ },
+ new
+ {
+ Code = 4,
+ Description = "4-Выполнен",
+ Name = "Complete"
+ },
+ new
+ {
+ Code = 5,
+ Description = "5-Закрыт",
+ Name = "Closed"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.ParrComponent", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Name")
+ .IsUnique();
+
+ b.ToTable("ParrComponents");
+
+ b.HasData(
+ new
+ {
+ Id = 0,
+ Description = "API",
+ Name = "Api"
+ },
+ new
+ {
+ Id = 1,
+ Description = "Загрузчик из АИХИТ",
+ Name = "AihitLoader"
+ },
+ new
+ {
+ Id = 2,
+ Description = "Синхронизатор АИХИТ",
+ Name = "AihitSyncer"
+ },
+ new
+ {
+ Id = 3,
+ Description = "Загрузчик нарядов из ЕСПП",
+ Name = "EsppOrderLoader"
+ },
+ new
+ {
+ Id = 4,
+ Description = "Управление нарядами ЕСПП",
+ Name = "EsppOrderManager"
+ },
+ new
+ {
+ Id = 5,
+ Description = "Синхронизатор расписаний",
+ Name = "EsppScheduleSync"
+ },
+ new
+ {
+ Id = 6,
+ Description = "Синхронизатор шаблонов",
+ Name = "EsppTemplateSync"
+ },
+ new
+ {
+ Id = 7,
+ Description = "Генератор шаблонов",
+ Name = "GeneratorTemplates"
+ },
+ new
+ {
+ Id = 8,
+ Description = "Авто-контроль РР",
+ Name = "JobAutoControl"
+ },
+ new
+ {
+ Id = 9,
+ Description = "Связывание нарядов ЕСПП с ПАРР (шаблонами, агентами)",
+ Name = "Master"
+ },
+ new
+ {
+ Id = 10,
+ Description = "Рассчет даты следующего срабатывания",
+ Name = "NextRun"
+ },
+ new
+ {
+ Id = 11,
+ Description = "Активатор шаблонов / расписаний",
+ Name = "TemplateActivator"
+ },
+ new
+ {
+ Id = 12,
+ Description = "Автораспределение РР",
+ Name = "TemplateDistributor"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Process", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("EsppId")
+ .HasColumnType("integer");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("EsppId")
+ .IsUnique();
+
+ b.ToTable("Processes");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.ResponseArea", b =>
+ {
+ b.Property("Code")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Code"));
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Code");
+
+ b.ToTable("ResponseAreas");
+
+ b.HasData(
+ new
+ {
+ Code = 96,
+ Name = "96-ДВС"
+ },
+ new
+ {
+ Code = 94,
+ Name = "94-ЗАБ"
+ },
+ new
+ {
+ Code = 92,
+ Name = "92-ВСИБ"
+ },
+ new
+ {
+ Code = 88,
+ Name = "88-КРАСН"
+ },
+ new
+ {
+ Code = 83,
+ Name = "83-ЗСИБ"
+ },
+ new
+ {
+ Code = 80,
+ Name = "80-ЮУР"
+ },
+ new
+ {
+ Code = 76,
+ Name = "76-СВРД"
+ },
+ new
+ {
+ Code = 63,
+ Name = "63-КБШ"
+ },
+ new
+ {
+ Code = 61,
+ Name = "61-ПРИВ"
+ },
+ new
+ {
+ Code = 58,
+ Name = "58-ЮВСТ"
+ },
+ new
+ {
+ Code = 51,
+ Name = "51-СКВ"
+ },
+ new
+ {
+ Code = 28,
+ Name = "28-СЕВ"
+ },
+ new
+ {
+ Code = 24,
+ Name = "24-ГОР"
+ },
+ new
+ {
+ Code = 17,
+ Name = "17-МСК"
+ },
+ new
+ {
+ Code = 10,
+ Name = "10-КЛГ"
+ },
+ new
+ {
+ Code = 1,
+ Name = "01-ОКТ"
+ },
+ new
+ {
+ Code = 99,
+ Name = "00-ГВЦ"
+ },
+ new
+ {
+ Code = 100,
+ Name = "ОБЩЕЕ"
+ },
+ new
+ {
+ Code = 110,
+ Name = "ВП"
+ },
+ new
+ {
+ Code = 111,
+ Name = "ОСК"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Robot", b =>
+ {
+ b.Property("Code")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Code"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Code");
+
+ b.HasIndex("Name")
+ .IsUnique();
+
+ b.ToTable("Robots");
+
+ b.HasData(
+ new
+ {
+ Code = 1,
+ Description = "Робот по созданию/изменению шаблона наряда ЕСПП",
+ Name = "TemplateOrder"
+ },
+ new
+ {
+ Code = 2,
+ Description = "Робот по созданию/изменению расписания шаблона наряда в ЕСПП",
+ Name = "ScheduleOrder"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.RobotConfiguration", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("AttemptsNumber")
+ .HasColumnType("integer");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("LastRobotStatusUpdated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("RobotCode")
+ .HasColumnType("integer");
+
+ b.Property("RobotStatusCode")
+ .HasColumnType("integer");
+
+ b.Property("TaskStatusCode")
+ .HasColumnType("integer");
+
+ b.Property("TemplateId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RobotCode");
+
+ b.HasIndex("RobotStatusCode");
+
+ b.HasIndex("TaskStatusCode");
+
+ b.HasIndex("TemplateId", "RobotCode")
+ .IsUnique();
+
+ b.HasIndex("TemplateId", "RobotStatusCode");
+
+ b.HasIndex("TemplateId", "TaskStatusCode");
+
+ b.ToTable("RobotConfigurations");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.RobotHistory", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("EsppMessage")
+ .HasColumnType("text");
+
+ b.Property("HistoryLevel")
+ .HasColumnType("integer");
+
+ b.Property("RobotConfigurationId")
+ .HasColumnType("uuid");
+
+ b.Property("RobotIp")
+ .HasColumnType("text");
+
+ b.Property("RobotMessage")
+ .HasColumnType("text");
+
+ b.Property("TaskStatusCode")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("HistoryLevel");
+
+ b.HasIndex("RobotConfigurationId");
+
+ b.HasIndex("TaskStatusCode");
+
+ b.ToTable("RobotHistories");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.RobotHistoryLevel", b =>
+ {
+ b.Property("Level")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Level"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Level");
+
+ b.ToTable("RobotHistoryLevels");
+
+ b.HasData(
+ new
+ {
+ Level = 1,
+ Description = "Робот начал работу ",
+ Name = "Start"
+ },
+ new
+ {
+ Level = 5,
+ Description = "Информация",
+ Name = "Information"
+ },
+ new
+ {
+ Level = 10,
+ Description = "Ошибка",
+ Name = "Error"
+ },
+ new
+ {
+ Level = 15,
+ Description = "Успешно завершил работу",
+ Name = "Complete"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.RobotStatus", b =>
+ {
+ b.Property("Code")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Code"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Code");
+
+ b.ToTable("RobotStatuses");
+
+ b.HasData(
+ new
+ {
+ Code = 11,
+ Description = "Ожидание, ждет пока робот возьмет в работу.",
+ Name = "Wait"
+ },
+ new
+ {
+ Code = 22,
+ Description = "Робот взял в работу.",
+ Name = "InProgress"
+ },
+ new
+ {
+ Code = 33,
+ Description = "Ошибка отработки роботом. Требует ручного вмешательства.",
+ Name = "Error"
+ },
+ new
+ {
+ Code = 44,
+ Description = "Робот успешно отработал.",
+ Name = "Complete"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Role", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("Roles");
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("c8f2f144-e6c2-45d7-ba66-5e9bbd376376"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Администратор",
+ Name = "administrator"
+ },
+ new
+ {
+ Id = new Guid("13bca225-7fa4-42fa-9d80-d2d46de261fe"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Робот ЕСПП",
+ Name = "espp-robot"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Schedule.ScheduleExcludeType", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Code")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("EsppName")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("EsppValue")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("ExcludeTypes", "schedule", t =>
+ {
+ t.HasComment("Расписание регламентной работы - Тип исключения");
+ });
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("0595b8e0-f322-4661-b5e3-064af8fbe7cd"),
+ Code = "None",
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppName = "Нет исключений",
+ EsppValue = "NONE",
+ Title = "Нет исключений"
+ },
+ new
+ {
+ Id = new Guid("2b7a4356-9aaf-4e00-b444-42f0b5010e25"),
+ Code = "Only",
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppName = "Выполнить ТОЛЬКО В указанном календаре",
+ EsppValue = "ONLY",
+ Title = "Выполнить ТОЛЬКО В указанном календаре"
+ },
+ new
+ {
+ Id = new Guid("38cd9e64-27c1-4672-a805-2211952a48bd"),
+ Code = "Except",
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppName = "Выполнить везде, КРОМЕ указанного календаря",
+ EsppValue = "EXCEPT",
+ Title = "Выполнить везде, КРОМЕ указанного календаря"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Schedule.ScheduleExcludeTypeCalendar", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Code")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("EsppName")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("EsppValue")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("ExcludeTypeCalendars", "schedule", t =>
+ {
+ t.HasComment("Расписание регламентной работы, исключение - Календарь");
+ });
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("a26edb88-0267-4fbf-b7ec-d172b0a86c9c"),
+ Code = "24x5",
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppName = "24x5",
+ EsppValue = "24x5",
+ Title = "24x5"
+ },
+ new
+ {
+ Id = new Guid("6834f1d5-ac51-43d5-974e-4c759d7bbf9f"),
+ Code = "24x7",
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppName = "24x7",
+ EsppValue = "24x7",
+ Title = "24x7"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Schedule.ScheduleResponseAreaTimeOffset", b =>
+ {
+ b.Property("ResponseArea")
+ .HasColumnType("text");
+
+ b.Property("TimeOffset")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("UtcTimeOffset")
+ .HasColumnType("interval");
+
+ b.HasKey("ResponseArea");
+
+ b.ToTable("ResponseAreaTimeOffsets", "schedule", t =>
+ {
+ t.HasComment("Расписание в ЕСПП. Смещение часового пояса относительно МСК для зоны ответственности рабочей группы");
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Setting", b =>
+ {
+ b.Property("Name")
+ .HasColumnType("text");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Value")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Name");
+
+ b.ToTable("Settings");
+
+ b.HasData(
+ new
+ {
+ Name = "Initiator",
+ Description = "Инициатор регламентной работы, указывается при создании шаблона в ЕСПП.",
+ Value = "ОВЧАРЕНКО АЛЕКСЕЙ ВИТАЛЬЕВИЧ (OVCHARENKOAV@GVC.OAO.RZD)"
+ },
+ new
+ {
+ Name = "ClosingCode",
+ Description = "Код закрытия регламентной работы, указывается при создании шаблона в ЕСПП.",
+ Value = "выполнен"
+ },
+ new
+ {
+ Name = "Category",
+ Description = "Категория создаваемого объекта в ЕСПП",
+ Value = "регламентная работа"
+ },
+ new
+ {
+ Name = "TemplatePrefixName",
+ Description = "Префикс имени шаблона в ЕСПП",
+ Value = "%PREFIX%-ЭИТИ-ПТК-ПАРР"
+ },
+ new
+ {
+ Name = "RobotAttemptsNumber",
+ Description = "Количество попыток выполнения задания роботом",
+ Value = "3"
+ },
+ new
+ {
+ Name = "RobotWaitTime",
+ Description = "Время ожидания выполнения роботом задания",
+ Value = "00:15:00"
+ },
+ new
+ {
+ Name = "ScheduleTimezone",
+ Description = "Расписание регламентной работы - В каком часовом поясе",
+ Value = "MSK"
+ },
+ new
+ {
+ Name = "ScheduleRepeatRange",
+ Description = "Расписание регламентной работы - Диапазн повторов",
+ Value = "Отсутствует дата завершения"
+ },
+ new
+ {
+ Name = "OrderSearchDeltaDate",
+ Description = "Промежуток времени для поиска нарядов в ЕСПП",
+ Value = "01:30:00"
+ },
+ new
+ {
+ Name = "EsppRobotAccountTimeZoneHour",
+ Description = "Таймзона УЗ роботов в ЕСПП, в часах (может быть положительная и отрицательная)",
+ Value = "3"
+ },
+ new
+ {
+ Name = "WeekendCacheTtl",
+ Description = "Время хранения в кэше данных о выходных и рабочих днях",
+ Value = "01:00:00"
+ },
+ new
+ {
+ Name = "TemplateNameConstantParts",
+ Description = "Список неизменных частей имени шаблона",
+ Value = "[{\"Name\":\"П-1\",\"Value\":\"ЭИТИ\"},{\"Name\":\"П-2\",\"Value\":\"ПАРР\"}]"
+ },
+ new
+ {
+ Name = "EsppUnitTag",
+ Description = "Префикс тега в поле ЭК \"Дополнительная информация\"",
+ Value = "ПАРР_"
+ },
+ new
+ {
+ Name = "JobIdForUnusedTemplates",
+ Description = "Job в который перемещаем ниспользованные шаблоны",
+ Value = "8f85a91c-a223-4686-bb69-1f0ee73624f2"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Subprocess", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("EsppId")
+ .HasColumnType("integer");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("ProcessId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("EsppId")
+ .IsUnique();
+
+ b.HasIndex("ProcessId");
+
+ b.ToTable("Subprocesses");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.TaskStatus", b =>
+ {
+ b.Property("Code")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Code"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Code");
+
+ b.ToTable("TaskStatuses");
+
+ b.HasData(
+ new
+ {
+ Code = 10,
+ Description = "Требуется создание объекта в ЕСПП",
+ Name = "Creating"
+ },
+ new
+ {
+ Code = 20,
+ Description = "Требуется обновление объекта в ЕСПП",
+ Name = "Updating"
+ },
+ new
+ {
+ Code = 30,
+ Description = "Нормальное состояние объекта в ЕСПП и ПАРР. Объект в ПАРР соответствует объекту в ЕСПП",
+ Name = "Ok"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Template", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Index")
+ .HasColumnType("integer");
+
+ b.Property("InitiatorComment")
+ .HasColumnType("text");
+
+ b.Property("InitiatorIp")
+ .HasColumnType("text");
+
+ b.Property("InitiatorParrComponentId")
+ .HasColumnType("integer");
+
+ b.Property("IsActiveSchedule")
+ .HasColumnType("boolean");
+
+ b.Property("IsActiveTemplate")
+ .HasColumnType("boolean");
+
+ b.Property("JobId")
+ .HasColumnType("uuid");
+
+ b.Property("LastRun")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("NextRun")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("ScheduleEsppId")
+ .HasColumnType("text");
+
+ b.Property("StatusTypeId")
+ .HasColumnType("integer");
+
+ b.Property("UnitId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("JobId");
+
+ b.HasIndex("StatusTypeId");
+
+ b.HasIndex("UnitId");
+
+ b.HasIndex("Name", "Index")
+ .IsUnique();
+
+ b.ToTable("Templates");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.TemplateHistory", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateAddedToHistory")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("InitiatorComment")
+ .HasColumnType("text");
+
+ b.Property("InitiatorIp")
+ .HasColumnType("text");
+
+ b.Property("InitiatorParrComponentId")
+ .HasColumnType("integer");
+
+ b.Property