diff --git a/PARR.API/Contracts/V1/ApiRoutes.cs b/PARR.API/Contracts/V1/ApiRoutes.cs
index a1afcbcf..325163f1 100644
--- a/PARR.API/Contracts/V1/ApiRoutes.cs
+++ b/PARR.API/Contracts/V1/ApiRoutes.cs
@@ -1,4 +1,6 @@
-namespace PARR.API.Contracts.V1
+using System.Runtime.InteropServices;
+
+namespace PARR.API.Contracts.V1
{
// https://tproger.ru/translations/luchshie-praktiki-razrabotki-rest-api-20-sovetov/
@@ -112,6 +114,15 @@
public const string taskId = "{taskId}";
}
+ public static class AgentHistory
+ {
+ public const string GetAll = Base + "/agent-histories/";
+ public const string Get = Base + "/agent-histories/" + getParam;
+ public const string Create = Base + "/agent-histories/";
+
+ public const string getParam = "{id}";
+ }
+
//public static class Layer
//{
diff --git a/PARR.API/Contracts/V1/Requests/AgentHistoryRequest.cs b/PARR.API/Contracts/V1/Requests/AgentHistoryRequest.cs
new file mode 100644
index 00000000..0ae12b55
--- /dev/null
+++ b/PARR.API/Contracts/V1/Requests/AgentHistoryRequest.cs
@@ -0,0 +1,22 @@
+using PARR.DAL.Contracts;
+
+namespace PARR.API.Contracts.V1.Requests
+{
+ public class AgentHistoryRequest
+ {
+ ///
+ /// ИД шаблона
+ ///
+ public Guid TemplateId { get; set; }
+
+ ///
+ /// Сообщение
+ ///
+ public string? Message { get; set; }
+
+ ///
+ /// Уровень истории (1 - Start, 5 - End)
+ ///
+ public AgentHistoryLevelEnum Level { get; set; }
+ }
+}
diff --git a/PARR.API/Contracts/V1/Requests/Queries/AgentHistoryQuery.cs b/PARR.API/Contracts/V1/Requests/Queries/AgentHistoryQuery.cs
new file mode 100644
index 00000000..370671f1
--- /dev/null
+++ b/PARR.API/Contracts/V1/Requests/Queries/AgentHistoryQuery.cs
@@ -0,0 +1,10 @@
+namespace PARR.API.Contracts.V1.Requests.Queries
+{
+ public class AgentHistoryQuery
+ {
+ ///
+ /// Ид шаблона
+ ///
+ public Guid? TemplateId { get; set; }
+ }
+}
diff --git a/PARR.API/Contracts/V1/Responses/AgentHistoryLevelResponse.cs b/PARR.API/Contracts/V1/Responses/AgentHistoryLevelResponse.cs
new file mode 100644
index 00000000..18531974
--- /dev/null
+++ b/PARR.API/Contracts/V1/Responses/AgentHistoryLevelResponse.cs
@@ -0,0 +1,11 @@
+namespace PARR.API.Contracts.V1.Responses
+{
+ public class AgentHistoryLevelResponse
+ {
+ public int Id { get; set; }
+
+ public required string Name { get; set; }
+
+ public required string Description { get; set; }
+ }
+}
diff --git a/PARR.API/Contracts/V1/Responses/AgentHistoryResponse.cs b/PARR.API/Contracts/V1/Responses/AgentHistoryResponse.cs
new file mode 100644
index 00000000..6be3bfe8
--- /dev/null
+++ b/PARR.API/Contracts/V1/Responses/AgentHistoryResponse.cs
@@ -0,0 +1,15 @@
+namespace PARR.API.Contracts.V1.Responses
+{
+ public class AgentHistoryResponse
+ {
+ public Guid Id { get; set; }
+
+ public DateTimeOffset Date { get; set; }
+
+ public string? Message { get; set; }
+
+ public Guid TemplateId { get; set; }
+
+ public AgentHistoryLevelResponse? Level { get; set; }
+ }
+}
diff --git a/PARR.API/Contracts/V1/Responses/AgentTaskResponse.cs b/PARR.API/Contracts/V1/Responses/AgentTaskResponse.cs
index 6f0cfaa4..98e3452e 100644
--- a/PARR.API/Contracts/V1/Responses/AgentTaskResponse.cs
+++ b/PARR.API/Contracts/V1/Responses/AgentTaskResponse.cs
@@ -16,5 +16,7 @@
public required string Script { get; set; }
public required string Name { get; set; }
+
+ public Guid TemplateId { get; set; }
}
}
diff --git a/PARR.API/Controllers/V1/AgentHistoryController.cs b/PARR.API/Controllers/V1/AgentHistoryController.cs
new file mode 100644
index 00000000..24765f5c
--- /dev/null
+++ b/PARR.API/Controllers/V1/AgentHistoryController.cs
@@ -0,0 +1,121 @@
+using AutoMapper;
+using FluentValidation;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.EntityFrameworkCore;
+using PARR.API.Contracts.V1;
+using PARR.API.Contracts.V1.Requests;
+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.Extensions;
+using PARR.API.Services.Interfaces;
+using PARR.DAL.DomainModels;
+using PARR.DAL.Models;
+using PARR.DAL.Services.Interfaces;
+
+namespace PARR.API.Controllers.V1
+{
+ ///
+ /// История работы агента
+ ///
+ public class AgentHistoryController : BaseApiController
+ {
+ private readonly IValidator validator;
+ private readonly IAgentHistoryService agentHistoryService;
+ private readonly IUriService uriService;
+ private readonly IMapper mapper;
+
+ public AgentHistoryController(
+ IValidator validator,
+ IAgentHistoryService agentHistoryService,
+ IUriService uriService,
+ IMapper mapper
+ )
+ {
+ this.validator = validator;
+ this.agentHistoryService = agentHistoryService;
+ this.uriService = uriService;
+ this.mapper = mapper;
+ }
+
+
+ ///
+ /// Получить историю работы агента постранично
+ ///
+ ///
+ [HttpGet(ApiRoutes.AgentHistory.GetAll)]
+ public async Task GetAll([FromQuery] PaginationQuery paginationQuery, [FromQuery] AgentHistoryQuery request)
+ {
+ var paginationFilter = mapper.Map(paginationQuery);
+
+ IQueryable query = agentHistoryService.Get()
+ .Include(t => t.AgentHistoryLevel);
+
+ if (request.TemplateId.HasValue)
+ query = query.Where(t => t.TemplateId == request.TemplateId);
+
+ var history = await agentHistoryService.GetPage(query.OrderByDescending(t => t.DateCreated), paginationFilter).ToListAsync();
+
+ if (!history.Any())
+ return NoContent();
+
+ var response = mapper.Map>(history);
+ var paginationResponse = new PagedResponse(response, true).GetPaginatedProps(paginationFilter, query);
+
+ return Ok(paginationResponse);
+ }
+
+
+ ///
+ /// Получить запись истории работы агента по id
+ ///
+ ///
+ ///
+ [HttpGet(ApiRoutes.AgentHistory.Get)]
+ public async Task GetById([FromRoute] Guid id)
+ {
+ var history = await agentHistoryService.Get().Include(t => t.AgentHistoryLevel).FirstAsync(t => t.Id == id);
+
+ if (history == null)
+ return NotFound();
+
+ var response = mapper.Map(history);
+
+ return Ok(new Response(response, true));
+ }
+
+
+ ///
+ /// Добавить запись в историю работы агента
+ ///
+ ///
+ [HttpPost(ApiRoutes.AgentHistory.Create)]
+ public async Task Create([FromBody] AgentHistoryRequest request)
+ {
+ var resultValidate = await validator.ValidateAsync(request);
+ if (!resultValidate.IsValid)
+ return BadRequest(new Response(resultValidate.Errors));
+
+ //todo: проверять что этот этот шаблон привязан к этому серверу по ip???
+
+ var agentJournal = new AgentHistory
+ {
+ Id = Guid.NewGuid(),
+ Message = request.Message,
+ HistoryLevelId = (int)request.Level,
+ TemplateId = request.TemplateId
+ };
+
+ if (!await agentHistoryService.CreateAsync(agentJournal) || !await agentHistoryService.CommitAsync())
+ return BadRequest(new Response(false, new List { new ErrorModel { Message = "Ошибка при добавлении записи в историю работы агента." } }));
+
+ var createdObject = await agentHistoryService.Get().Include(t => t.AgentHistoryLevel).FirstAsync(t => t.Id == agentJournal.Id);
+ var response = mapper.Map(createdObject);
+
+ var createdUri = uriService.GetUri(ApiRoutes.AgentHistory.Get, ApiRoutes.AgentHistory.getParam, agentJournal.Id);
+
+ return Created(createdUri, new Response(response, true));
+ }
+ }
+}
diff --git a/PARR.API/Controllers/V1/AgentTaskController.cs b/PARR.API/Controllers/V1/AgentTaskController.cs
index 793087a9..9c6787d2 100644
--- a/PARR.API/Controllers/V1/AgentTaskController.cs
+++ b/PARR.API/Controllers/V1/AgentTaskController.cs
@@ -98,7 +98,13 @@ namespace PARR.API.Controllers.V1
continue;
}
- templateSchedule.ForEach(item => response.Scheduled.Add(new AgentTaskMinScheduleResponse { Name = template.ApplicationsInWork!.AgentName, Script = template.ApplicationsInWork!.AgentScript, StartAt = item }));
+ templateSchedule.ForEach(item => response.Scheduled.Add(new AgentTaskMinScheduleResponse
+ {
+ Name = template.ApplicationsInWork!.AgentName,
+ Script = template.ApplicationsInWork!.AgentScript,
+ StartAt = item,
+ TemplateId = template.Id
+ }));
}
if (!response.Scheduled.Any())
diff --git a/PARR.API/MappingProfiles/DomainToResponseProfile.cs b/PARR.API/MappingProfiles/DomainToResponseProfile.cs
index d76c4fa7..8e19f808 100644
--- a/PARR.API/MappingProfiles/DomainToResponseProfile.cs
+++ b/PARR.API/MappingProfiles/DomainToResponseProfile.cs
@@ -142,6 +142,12 @@ namespace PARR.API.MappingProfiles
.ForMember(d => d.Type, o => o.MapFrom(s => s.Type));
// === EsppSch ===
+ CreateMap();
+
+ CreateMap()
+ .ForMember(t => t.Date, o => o.MapFrom(s => s.DateCreated))
+ .ForMember(t => t.Level, o => o.MapFrom(s => s.AgentHistoryLevel));
+
}
}
}
diff --git a/PARR.API/Validators/AgentHistoryRequestValidator.cs b/PARR.API/Validators/AgentHistoryRequestValidator.cs
new file mode 100644
index 00000000..a07952b3
--- /dev/null
+++ b/PARR.API/Validators/AgentHistoryRequestValidator.cs
@@ -0,0 +1,18 @@
+using FluentValidation;
+using PARR.API.Contracts.V1.Requests;
+using PARR.DAL.Contracts;
+
+namespace PARR.API.Validators
+{
+ public class AgentHistoryRequestValidator : AbstractValidator
+ {
+ public AgentHistoryRequestValidator()
+ {
+ RuleFor(t => t.TemplateId).NotEmpty().NotNull();
+
+ RuleFor(t => t.Level)
+ .Must(t => t == AgentHistoryLevelEnum.Start || t == AgentHistoryLevelEnum.End)
+ .WithMessage($"Допустимые значения: {(int)AgentHistoryLevelEnum.Start}, {(int)AgentHistoryLevelEnum.End}");
+ }
+ }
+}
diff --git a/PARR.DAL/Context/DataContext.cs b/PARR.DAL/Context/DataContext.cs
index 2e5d996c..29def974 100644
--- a/PARR.DAL/Context/DataContext.cs
+++ b/PARR.DAL/Context/DataContext.cs
@@ -43,6 +43,9 @@ namespace PARR.DAL.Context
public DbSet EsppSchTypeSchedules { get; set; }
public DbSet EsppSchValues { get; set; }
+ public DbSet AgentHistories { get; set; }
+ public DbSet AgentHistoryLevels { get; set; }
+
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
@@ -318,6 +321,14 @@ namespace PARR.DAL.Context
#endregion
+ modelBuilder.Entity(f =>
+ {
+ f.HasData(
+ new { Id = (int)AgentHistoryLevelEnum.Start, Name = AgentHistoryLevelEnum.Start.ToString(), Description= "Агент начал выполнять задание" },
+ new { Id = (int)AgentHistoryLevelEnum.End, Name = AgentHistoryLevelEnum.End.ToString(), Description = "Агент завершил выполнение задания" }
+ );
+ });
+
}
diff --git a/PARR.DAL/Contracts/AgentHistoryLevelEnum.cs b/PARR.DAL/Contracts/AgentHistoryLevelEnum.cs
new file mode 100644
index 00000000..d862fcab
--- /dev/null
+++ b/PARR.DAL/Contracts/AgentHistoryLevelEnum.cs
@@ -0,0 +1,21 @@
+namespace PARR.DAL.Contracts
+{
+ ///
+ /// Уровень истории работы агента
+ ///
+ public enum AgentHistoryLevelEnum
+ {
+ // При добавлении новых значений, добавить в валидатор AgentHistoryRequestValidator
+
+ ///
+ /// Агент начал выполнять задание
+ ///
+ Start = 1,
+
+
+ ///
+ /// Агент завершил выполнение задания
+ ///
+ End = 5
+ }
+}
diff --git a/PARR.DAL/Migrations/20231018235601_TblAgentHistory.Designer.cs b/PARR.DAL/Migrations/20231018235601_TblAgentHistory.Designer.cs
new file mode 100644
index 00000000..fdaca004
--- /dev/null
+++ b/PARR.DAL/Migrations/20231018235601_TblAgentHistory.Designer.cs
@@ -0,0 +1,2511 @@
+//
+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("20231018235601_TblAgentHistory")]
+ partial class TblAgentHistory
+ {
+ ///
+ 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.AIHIT.RawDataEK", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("AIHID")
+ .HasColumnType("integer");
+
+ b.Property("APPType")
+ .HasColumnType("text");
+
+ b.Property("AdditionalInfo")
+ .HasColumnType("text");
+
+ b.Property("CKBSServerType")
+ .HasColumnType("text");
+
+ b.Property("CTSDirection")
+ .HasColumnType("text");
+
+ b.Property("ClientOS")
+ .HasColumnType("text");
+
+ b.Property("ClientSoftware")
+ .HasColumnType("text");
+
+ b.Property("Company")
+ .HasColumnType("text");
+
+ b.Property("CreateTime")
+ .HasColumnType("text");
+
+ b.Property("DBType")
+ .HasColumnType("text");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("EKCategory")
+ .HasColumnType("text");
+
+ b.Property("EKFindCode")
+ .HasColumnType("text");
+
+ b.Property("EKRegister")
+ .HasColumnType("text");
+
+ b.Property("EKRevizor")
+ .HasColumnType("text");
+
+ b.Property("EKSubCategory")
+ .HasColumnType("text");
+
+ b.Property("EKType")
+ .HasColumnType("text");
+
+ b.Property("EndExplotationDate")
+ .HasColumnType("text");
+
+ b.Property("FullName")
+ .HasColumnType("text");
+
+ b.Property("IBServerType")
+ .HasColumnType("text");
+
+ b.Property("IP")
+ .HasColumnType("text");
+
+ b.Property("InfrastructureServerType")
+ .HasColumnType("text");
+
+ b.Property("IsActive")
+ .HasColumnType("text");
+
+ b.Property("IsImportant")
+ .HasColumnType("text");
+
+ b.Property("IsUnreliableData")
+ .HasColumnType("character(1)");
+
+ b.Property("Location")
+ .HasColumnType("text");
+
+ b.Property("Metka")
+ .HasColumnType("text");
+
+ b.Property("MonitoringServerType")
+ .HasColumnType("text");
+
+ b.Property("NetworkName")
+ .HasColumnType("text");
+
+ b.Property("NewEKFindCode")
+ .HasColumnType("text");
+
+ b.Property("OSType")
+ .HasColumnType("text");
+
+ b.Property("OldEKFindCode")
+ .HasColumnType("text");
+
+ b.Property("PlannedTimeToRepair")
+ .HasColumnType("text");
+
+ b.Property("Prescription")
+ .HasColumnType("text");
+
+ b.Property("ProductCode")
+ .HasColumnType("text");
+
+ b.Property("ResponseArea")
+ .HasColumnType("text");
+
+ b.Property("ResponsibleByEK")
+ .HasColumnType("text");
+
+ b.Property("ServiceCode")
+ .HasColumnType("text");
+
+ b.Property("ShiftWorkGroup")
+ .HasColumnType("text");
+
+ b.Property("ShortName")
+ .HasColumnType("text");
+
+ b.Property("StartExplotationDate")
+ .HasColumnType("text");
+
+ b.Property("Status")
+ .HasColumnType("text");
+
+ b.Property("SysModTime")
+ .HasColumnType("text");
+
+ b.Property("SysModUser")
+ .HasColumnType("text");
+
+ b.Property("TargetRepairTime")
+ .HasColumnType("text");
+
+ b.Property("WorkGroup")
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("RawDataEKs", "AIHIT");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.AIHIT.Setting", 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("Group")
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Value")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("Settings", "AIHIT");
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("b16afd06-605b-499f-9e35-a19586de96b0"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "ГВЦ",
+ Value = "00-ГВЦ"
+ },
+ new
+ {
+ Id = new Guid("42a2ec03-da3a-45fc-971e-399910fdc5ae"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "ОКТ",
+ Value = "01-ОКТ"
+ },
+ new
+ {
+ Id = new Guid("17efaf65-ae8c-45f1-b187-e6cb1bd6385b"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "КЛГ",
+ Value = "10-КЛГ"
+ },
+ new
+ {
+ Id = new Guid("51270997-20f6-4a61-85ac-64f6b6dd5dc4"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "МСК",
+ Value = "17-МСК"
+ },
+ new
+ {
+ Id = new Guid("b94f8c38-e78a-494e-81ba-39e4e902ffcc"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "ГОР",
+ Value = "24-ГОР"
+ },
+ new
+ {
+ Id = new Guid("52ba20ea-4e7a-4500-939b-e2cff563809a"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "СЕВ",
+ Value = "28-СЕВ"
+ },
+ new
+ {
+ Id = new Guid("cb9da805-29e9-4e08-b1ed-d4b374920f77"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "СКВ",
+ Value = "51-СКВ"
+ },
+ new
+ {
+ Id = new Guid("1943a65c-2060-4b5f-af1f-acec74835481"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "ЮВСТ",
+ Value = "58-ЮВСТ"
+ },
+ new
+ {
+ Id = new Guid("4d9ef2ee-d4fa-4d28-a93b-6f1fd0a639f9"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "ПРИВ",
+ Value = "61-ПРИВ"
+ },
+ new
+ {
+ Id = new Guid("f1a54c25-a93a-4fe3-8268-afbcc435b6e9"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "КБШ",
+ Value = "63-КБШ"
+ },
+ new
+ {
+ Id = new Guid("cc839c48-62bb-46a8-924c-85b5e7a3e245"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "СВРД",
+ Value = "76-СВРД"
+ },
+ new
+ {
+ Id = new Guid("c98fb684-ff03-441e-a9c3-ac5071d69857"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "ЮУР",
+ Value = "80-ЮУР"
+ },
+ new
+ {
+ Id = new Guid("f2684a90-6029-4476-bd3d-e713a8a228d6"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "ЗСИБ",
+ Value = "83-ЗСИБ"
+ },
+ new
+ {
+ Id = new Guid("b3c73162-21ea-42f0-b0e1-3c5076176f8a"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "КРАСН",
+ Value = "88-КРАСН"
+ },
+ new
+ {
+ Id = new Guid("a8cff6fd-28b7-49f2-a412-9208c10f6516"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "ВСИБ",
+ Value = "92-ВСИБ"
+ },
+ new
+ {
+ Id = new Guid("50f66704-4d26-4587-bb1e-dca70c8f4b89"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "ЗАБ",
+ Value = "94-ЗАБ"
+ },
+ new
+ {
+ Id = new Guid("1fd43634-4a06-4237-9727-edfa6f3eebe8"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "ДВС",
+ Value = "96-ДВС"
+ },
+ new
+ {
+ Id = new Guid("77c73c0a-8e4d-4676-b6e2-6a112f20e346"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Статус актуальных ЭК",
+ Group = "Status",
+ Name = "Exploitation",
+ Value = "3-В эксплуатации"
+ });
+ });
+
+ 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("TemplateId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("HistoryLevelId");
+
+ 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.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.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 = "Поле СП xml АИХ ИТ",
+ 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 = "Поле ОС xml АИХ ИТ",
+ 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 = "Поле СУБД xml АИХ ИТ",
+ Name = "DB"
+ });
+ });
+
+ 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("LastRun")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("NextRun")
+ .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.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");
+
+ 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");
+
+ 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");
+
+ 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("TypeId")
+ .HasColumnType("integer");
+
+ b.Property("Value")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TypeId");
+
+ b.ToTable("EsppSchTypeValues");
+
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ TypeId = 1,
+ Value = "Каждые 98 часов"
+ },
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ 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)),
+ TypeId = 6,
+ Value = "Декабря"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.EsppSchValue", b =>
+ {
+ b.Property("ApplicationsInWorkId")
+ .HasColumnType("uuid");
+
+ b.Property("TypeValueId")
+ .HasColumnType("uuid");
+
+ b.Property("TypeConfigId")
+ .HasColumnType("uuid");
+
+ b.HasKey("ApplicationsInWorkId", "TypeValueId", "TypeConfigId");
+
+ b.HasIndex("TypeConfigId");
+
+ b.HasIndex("TypeValueId");
+
+ b.ToTable("EsppSchValues");
+ });
+
+ 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")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("ResponseAreaCode")
+ .HasColumnType("integer");
+
+ b.Property("WorkGroup")
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("EkStatusCode");
+
+ b.HasIndex("ResponseAreaCode");
+
+ b.ToTable("Hosts");
+ });
+
+ 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.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-ГВЦ"
+ });
+ });
+
+ 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.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("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 = "Inforamtion"
+ },
+ 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.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 = "КУЗНЕЦОВ МИХАИЛ ВАЛЕРЬЕВИЧ (IVC_KUZNETSOVMV@DVGD.OAO.RZD)"
+ },
+ new
+ {
+ Name = "ClosingCode",
+ Description = "Код закрытия регламентной работы, указывается при создании шаблона в ЕСПП.",
+ Value = "выполнен"
+ },
+ new
+ {
+ Name = "Category",
+ Description = "Категория создаваемого объекта в ЕСПП",
+ Value = "регламентная работа"
+ },
+ new
+ {
+ Name = "TemplatePrefixName",
+ Description = "Префикс имени шаблона в ЕСПП",
+ Value = "ПАРР-ДВС-ПТК"
+ },
+ new
+ {
+ Name = "RobotAttemptsNumber",
+ Description = "Количество попыток выполнения задания роботом",
+ Value = "3"
+ },
+ new
+ {
+ Name = "RobotWaitTime",
+ Description = "Время ожидания выполнения роботом задания",
+ Value = "00:15:00"
+ },
+ new
+ {
+ Name = "ScheduleTimezone",
+ Description = "Расписание регламентной работы - В каком часовом поясе",
+ Value = "MSK"
+ },
+ new
+ {
+ Name = "ScheduleExclude",
+ Description = "Расписание регламентной работы - Тип исключения",
+ Value = "Нет исключений"
+ },
+ new
+ {
+ Name = "ScheduleRepeatRange",
+ Description = "Расписание регламентной работы - Диапазн повторов",
+ Value = "Отсутствует дата завершения"
+ });
+ });
+
+ 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("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("ApplicationInWorkId")
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("HostId")
+ .HasColumnType("uuid");
+
+ b.Property("IsActiveSchedule")
+ .HasColumnType("boolean");
+
+ b.Property("IsActiveTemplate")
+ .HasColumnType("boolean");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("ScheduleEsppId")
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ApplicationInWorkId");
+
+ b.HasIndex("HostId");
+
+ b.HasIndex("Name")
+ .IsUnique();
+
+ b.ToTable("Templates");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Tnk", 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("SubprocessId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("SubprocessId");
+
+ b.ToTable("Tnks");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Work", 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("TnkId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TnkId");
+
+ b.ToTable("Works");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.AgentHistory", b =>
+ {
+ b.HasOne("PARR.DAL.Models.AgentHistoryLevel", "AgentHistoryLevel")
+ .WithMany("AgentHistories")
+ .HasForeignKey("HistoryLevelId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("PARR.DAL.Models.Template", "Template")
+ .WithMany("AgentHistories")
+ .HasForeignKey("TemplateId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("AgentHistoryLevel");
+
+ b.Navigation("Template");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Application", b =>
+ {
+ b.HasOne("PARR.DAL.Models.ApplicationType", "ApplicationType")
+ .WithMany("Applications")
+ .HasForeignKey("ApplicationTypeId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("ApplicationType");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.ApplicationInHost", b =>
+ {
+ b.HasOne("PARR.DAL.Models.Application", "Application")
+ .WithMany("ApplicationsInHosts")
+ .HasForeignKey("ApplicationId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("PARR.DAL.Models.Host", "Host")
+ .WithMany("ApplicationsInHosts")
+ .HasForeignKey("HostId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Application");
+
+ b.Navigation("Host");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.ApplicationsInWork", b =>
+ {
+ b.HasOne("PARR.DAL.Models.Application", "Application")
+ .WithMany("ApplicationsInWorks")
+ .HasForeignKey("ApplicationId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("PARR.DAL.Models.Work", "Work")
+ .WithMany("ApplicationsInWorks")
+ .HasForeignKey("WorkId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Application");
+
+ b.Navigation("Work");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.EsppSchTypeConfig", b =>
+ {
+ b.HasOne("PARR.DAL.Models.EsppSchType", "EsppSchType")
+ .WithMany("EsppSchTypeConfigs")
+ .HasForeignKey("TypeId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("PARR.DAL.Models.EsppSchTypeSchedule", "EsppSchTypeSchedule")
+ .WithMany("EsppSchTypeConfigs")
+ .HasForeignKey("TypeScheduleId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("EsppSchType");
+
+ b.Navigation("EsppSchTypeSchedule");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.EsppSchTypeValue", b =>
+ {
+ b.HasOne("PARR.DAL.Models.EsppSchType", "EsppSchType")
+ .WithMany("EsppSchTypeValues")
+ .HasForeignKey("TypeId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("EsppSchType");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.EsppSchValue", b =>
+ {
+ b.HasOne("PARR.DAL.Models.ApplicationsInWork", "ApplicationsInWork")
+ .WithMany("EsppSchValues")
+ .HasForeignKey("ApplicationsInWorkId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("PARR.DAL.Models.EsppSchTypeConfig", "EsppSchTypeConfig")
+ .WithMany("EsppSchValues")
+ .HasForeignKey("TypeConfigId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("PARR.DAL.Models.EsppSchTypeValue", "EsppSchTypeValue")
+ .WithMany("EsppSchValues")
+ .HasForeignKey("TypeValueId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("ApplicationsInWork");
+
+ b.Navigation("EsppSchTypeConfig");
+
+ b.Navigation("EsppSchTypeValue");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Host", b =>
+ {
+ b.HasOne("PARR.DAL.Models.EkStatus", "EkStatus")
+ .WithMany("Hosts")
+ .HasForeignKey("EkStatusCode")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("PARR.DAL.Models.ResponseArea", "ResponseArea")
+ .WithMany("Hosts")
+ .HasForeignKey("ResponseAreaCode")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("EkStatus");
+
+ b.Navigation("ResponseArea");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.RobotConfiguration", b =>
+ {
+ b.HasOne("PARR.DAL.Models.Robot", "Robot")
+ .WithMany("RobotConfigurations")
+ .HasForeignKey("RobotCode")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("PARR.DAL.Models.RobotStatus", "RobotStatus")
+ .WithMany("RobotConfigurations")
+ .HasForeignKey("RobotStatusCode")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("PARR.DAL.Models.TaskStatus", "TaskStatus")
+ .WithMany("RobotConfigurations")
+ .HasForeignKey("TaskStatusCode")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("PARR.DAL.Models.Template", "Template")
+ .WithMany("RobotConfigurations")
+ .HasForeignKey("TemplateId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Robot");
+
+ b.Navigation("RobotStatus");
+
+ b.Navigation("TaskStatus");
+
+ b.Navigation("Template");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.RobotHistory", b =>
+ {
+ b.HasOne("PARR.DAL.Models.RobotHistoryLevel", "RobotHistoryLevel")
+ .WithMany("RobotHistories")
+ .HasForeignKey("HistoryLevel")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("PARR.DAL.Models.RobotConfiguration", "RobotConfiguration")
+ .WithMany("RobotHistories")
+ .HasForeignKey("RobotConfigurationId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("PARR.DAL.Models.TaskStatus", "StatusTask")
+ .WithMany("RobotHistories")
+ .HasForeignKey("TaskStatusCode")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("RobotConfiguration");
+
+ b.Navigation("RobotHistoryLevel");
+
+ b.Navigation("StatusTask");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Subprocess", b =>
+ {
+ b.HasOne("PARR.DAL.Models.Process", "Process")
+ .WithMany("Subprocesses")
+ .HasForeignKey("ProcessId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Process");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Template", b =>
+ {
+ b.HasOne("PARR.DAL.Models.ApplicationsInWork", "ApplicationsInWork")
+ .WithMany("Templates")
+ .HasForeignKey("ApplicationInWorkId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("PARR.DAL.Models.Host", "Host")
+ .WithMany("Templates")
+ .HasForeignKey("HostId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("ApplicationsInWork");
+
+ b.Navigation("Host");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Tnk", b =>
+ {
+ b.HasOne("PARR.DAL.Models.Subprocess", "Subprocess")
+ .WithMany("Tnks")
+ .HasForeignKey("SubprocessId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Subprocess");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Work", b =>
+ {
+ b.HasOne("PARR.DAL.Models.Tnk", "Tnk")
+ .WithMany("Works")
+ .HasForeignKey("TnkId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Tnk");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.AgentHistoryLevel", b =>
+ {
+ b.Navigation("AgentHistories");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Application", b =>
+ {
+ b.Navigation("ApplicationsInHosts");
+
+ b.Navigation("ApplicationsInWorks");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.ApplicationType", b =>
+ {
+ b.Navigation("Applications");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.ApplicationsInWork", b =>
+ {
+ b.Navigation("EsppSchValues");
+
+ b.Navigation("Templates");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.EkStatus", b =>
+ {
+ b.Navigation("Hosts");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.EsppSchType", b =>
+ {
+ b.Navigation("EsppSchTypeConfigs");
+
+ b.Navigation("EsppSchTypeValues");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.EsppSchTypeConfig", b =>
+ {
+ b.Navigation("EsppSchValues");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.EsppSchTypeSchedule", b =>
+ {
+ b.Navigation("EsppSchTypeConfigs");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.EsppSchTypeValue", b =>
+ {
+ b.Navigation("EsppSchValues");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Host", b =>
+ {
+ b.Navigation("ApplicationsInHosts");
+
+ b.Navigation("Templates");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Process", b =>
+ {
+ b.Navigation("Subprocesses");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.ResponseArea", b =>
+ {
+ b.Navigation("Hosts");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Robot", b =>
+ {
+ b.Navigation("RobotConfigurations");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.RobotConfiguration", b =>
+ {
+ b.Navigation("RobotHistories");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.RobotHistoryLevel", b =>
+ {
+ b.Navigation("RobotHistories");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.RobotStatus", b =>
+ {
+ b.Navigation("RobotConfigurations");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Subprocess", b =>
+ {
+ b.Navigation("Tnks");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.TaskStatus", b =>
+ {
+ b.Navigation("RobotConfigurations");
+
+ b.Navigation("RobotHistories");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Template", b =>
+ {
+ b.Navigation("AgentHistories");
+
+ b.Navigation("RobotConfigurations");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Tnk", b =>
+ {
+ b.Navigation("Works");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Work", b =>
+ {
+ b.Navigation("ApplicationsInWorks");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/PARR.DAL/Migrations/20231018235601_TblAgentHistory.cs b/PARR.DAL/Migrations/20231018235601_TblAgentHistory.cs
new file mode 100644
index 00000000..777284b2
--- /dev/null
+++ b/PARR.DAL/Migrations/20231018235601_TblAgentHistory.cs
@@ -0,0 +1,88 @@
+using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+#nullable disable
+
+#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
+
+namespace PARR.DAL.Migrations
+{
+ ///
+ public partial class TblAgentHistory : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.CreateTable(
+ name: "AgentHistoryLevels",
+ columns: table => new
+ {
+ Id = table.Column(type: "integer", nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ Name = table.Column(type: "text", nullable: false),
+ Description = table.Column(type: "text", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_AgentHistoryLevels", x => x.Id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "AgentHistories",
+ columns: table => new
+ {
+ Id = table.Column(type: "uuid", nullable: false),
+ DateCreated = table.Column(type: "timestamp with time zone", nullable: false),
+ Message = table.Column(type: "text", nullable: true),
+ HistoryLevelId = table.Column(type: "integer", nullable: false),
+ TemplateId = table.Column(type: "uuid", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_AgentHistories", x => x.Id);
+ table.ForeignKey(
+ name: "FK_AgentHistories_AgentHistoryLevels_HistoryLevelId",
+ column: x => x.HistoryLevelId,
+ principalTable: "AgentHistoryLevels",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_AgentHistories_Templates_TemplateId",
+ column: x => x.TemplateId,
+ principalTable: "Templates",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.InsertData(
+ table: "AgentHistoryLevels",
+ columns: new[] { "Id", "Description", "Name" },
+ values: new object[,]
+ {
+ { 1, "Агент начал выполнять задание", "Start" },
+ { 5, "Агент завершил выполнение задания", "End" }
+ });
+
+ migrationBuilder.CreateIndex(
+ name: "IX_AgentHistories_HistoryLevelId",
+ table: "AgentHistories",
+ column: "HistoryLevelId");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_AgentHistories_TemplateId",
+ table: "AgentHistories",
+ column: "TemplateId");
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropTable(
+ name: "AgentHistories");
+
+ migrationBuilder.DropTable(
+ name: "AgentHistoryLevels");
+ }
+ }
+}
diff --git a/PARR.DAL/Migrations/DataContextModelSnapshot.cs b/PARR.DAL/Migrations/DataContextModelSnapshot.cs
index 8c4f255e..fa6aa84f 100644
--- a/PARR.DAL/Migrations/DataContextModelSnapshot.cs
+++ b/PARR.DAL/Migrations/DataContextModelSnapshot.cs
@@ -369,6 +369,68 @@ namespace PARR.DAL.Migrations
});
});
+ 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("TemplateId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("HistoryLevelId");
+
+ 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.Application", b =>
{
b.Property("Id")
@@ -2066,6 +2128,25 @@ namespace PARR.DAL.Migrations
b.ToTable("Works");
});
+ modelBuilder.Entity("PARR.DAL.Models.AgentHistory", b =>
+ {
+ b.HasOne("PARR.DAL.Models.AgentHistoryLevel", "AgentHistoryLevel")
+ .WithMany("AgentHistories")
+ .HasForeignKey("HistoryLevelId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("PARR.DAL.Models.Template", "Template")
+ .WithMany("AgentHistories")
+ .HasForeignKey("TemplateId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("AgentHistoryLevel");
+
+ b.Navigation("Template");
+ });
+
modelBuilder.Entity("PARR.DAL.Models.Application", b =>
{
b.HasOne("PARR.DAL.Models.ApplicationType", "ApplicationType")
@@ -2305,6 +2386,11 @@ namespace PARR.DAL.Migrations
b.Navigation("Tnk");
});
+ modelBuilder.Entity("PARR.DAL.Models.AgentHistoryLevel", b =>
+ {
+ b.Navigation("AgentHistories");
+ });
+
modelBuilder.Entity("PARR.DAL.Models.Application", b =>
{
b.Navigation("ApplicationsInHosts");
@@ -2402,6 +2488,8 @@ namespace PARR.DAL.Migrations
modelBuilder.Entity("PARR.DAL.Models.Template", b =>
{
+ b.Navigation("AgentHistories");
+
b.Navigation("RobotConfigurations");
});
diff --git a/PARR.DAL/Models/AgentHistory.cs b/PARR.DAL/Models/AgentHistory.cs
new file mode 100644
index 00000000..43414594
--- /dev/null
+++ b/PARR.DAL/Models/AgentHistory.cs
@@ -0,0 +1,33 @@
+using PARR.DAL.Models.Base;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+
+namespace PARR.DAL.Models
+{
+ ///
+ /// История работы агентов
+ ///
+ [Table("AgentHistories")]
+ public class AgentHistory : IBase
+ {
+ [Key]
+ public Guid Id { get; set; }
+
+ public DateTimeOffset DateCreated { get; set; }
+
+ [NotMapped]
+ public DateTimeOffset? DateModified { get; set; }
+
+ public string? Message { get; set; }
+
+ public int HistoryLevelId { get; set; }
+
+ public Guid TemplateId { get; set; }
+
+ [ForeignKey(nameof(TemplateId))]
+ public Template? Template { get; set; }
+
+ [ForeignKey(nameof(HistoryLevelId))]
+ public AgentHistoryLevel? AgentHistoryLevel { get; set; }
+ }
+}
diff --git a/PARR.DAL/Models/AgentHistoryLevel.cs b/PARR.DAL/Models/AgentHistoryLevel.cs
new file mode 100644
index 00000000..70b26ee3
--- /dev/null
+++ b/PARR.DAL/Models/AgentHistoryLevel.cs
@@ -0,0 +1,19 @@
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+
+namespace PARR.DAL.Models
+{
+ [Table("AgentHistoryLevels")]
+ public class AgentHistoryLevel
+ {
+ [Key]
+ public int Id { get; set; }
+
+ public required string Name { get; set; }
+
+ public required string Description { get; set; }
+
+
+ public ICollection AgentHistories { get; set; } = new HashSet();
+ }
+}
diff --git a/PARR.DAL/Models/Template.cs b/PARR.DAL/Models/Template.cs
index 63f2dc8d..9c0734fb 100644
--- a/PARR.DAL/Models/Template.cs
+++ b/PARR.DAL/Models/Template.cs
@@ -25,7 +25,7 @@ namespace PARR.DAL.Models
///
/// Номер расписания еспп
///
- public string? ScheduleEsppId { get; set; }
+ public string? ScheduleEsppId { get; set; }
/////
@@ -51,5 +51,7 @@ namespace PARR.DAL.Models
public ICollection RobotConfigurations { get; set; } = new HashSet();
+ public ICollection AgentHistories { get; set; } = new HashSet();
+
}
}
diff --git a/PARR.DAL/ParrDalInstaller.cs b/PARR.DAL/ParrDalInstaller.cs
index 823822e0..4a41ce6b 100644
--- a/PARR.DAL/ParrDalInstaller.cs
+++ b/PARR.DAL/ParrDalInstaller.cs
@@ -50,6 +50,7 @@ namespace PARR.DAL
services.AddTransient();
services.AddTransient();
services.AddTransient();
+ services.AddTransient();
// TransformServices
diff --git a/PARR.DAL/Services/Implementations/AgentHistoryService.cs b/PARR.DAL/Services/Implementations/AgentHistoryService.cs
new file mode 100644
index 00000000..439d18e2
--- /dev/null
+++ b/PARR.DAL/Services/Implementations/AgentHistoryService.cs
@@ -0,0 +1,23 @@
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Logging;
+using PARR.DAL.Context;
+using PARR.DAL.Models;
+using PARR.DAL.Services.Abstracts;
+using PARR.DAL.Services.Interfaces;
+
+namespace PARR.DAL.Services.Implementations
+{
+ internal class AgentHistoryService : BaseService, IAgentHistoryService
+ {
+ private readonly DataContext dataContext;
+
+ public AgentHistoryService(DataContext dataContext, ILogger logger) : base(logger)
+ {
+ this.dataContext = dataContext;
+ }
+
+ protected override DbSet EntitySet => dataContext.AgentHistories;
+
+ protected override DataContext EntitiContext => dataContext;
+ }
+}
diff --git a/PARR.DAL/Services/Interfaces/IAgentHistoryService.cs b/PARR.DAL/Services/Interfaces/IAgentHistoryService.cs
new file mode 100644
index 00000000..7a919d5d
--- /dev/null
+++ b/PARR.DAL/Services/Interfaces/IAgentHistoryService.cs
@@ -0,0 +1,9 @@
+using PARR.DAL.Models;
+using PARR.DAL.Services.Interfaces.Base;
+
+namespace PARR.DAL.Services.Interfaces
+{
+ public interface IAgentHistoryService : IBaseService
+ {
+ }
+}