Обновление моделей Templates, Works, Hosts, Settings

This commit is contained in:
Mikhail Trubnikov
2023-09-19 12:17:05 +10:00
parent 4cde851a33
commit 943c18e707
14 changed files with 1971 additions and 347 deletions

View File

@@ -26,22 +26,22 @@ namespace PARR.API.MappingProfiles
CreateMap<V1_JobMode, JobModeResponse>(); CreateMap<V1_JobMode, JobModeResponse>();
CreateMap<Template, TemplateResponse>() //CreateMap<Template, TemplateResponse>()
.ForMember(d => d.ParrTemplateId, o => o.MapFrom(s => s.Id)) // .ForMember(d => d.ParrTemplateId, o => o.MapFrom(s => s.Id))
.ForMember(d => d.Assignment, o => o.MapFrom(s => s.WorkGroup)) // .ForMember(d => d.Assignment, o => o.MapFrom(s => s.WorkGroup))
.ForMember(d => d.Title, o => o.MapFrom(s => s.ShortDescription)) // .ForMember(d => d.Title, o => o.MapFrom(s => s.ShortDescription))
.ForMember(d => d.Branch, o => o.MapFrom(s => s.ResponseArea)) // .ForMember(d => d.Branch, o => o.MapFrom(s => s.ResponseArea))
.ForMember(d => d.SlaInterval, o => o.MapFrom(s => s.Duration)) // .ForMember(d => d.SlaInterval, o => o.MapFrom(s => s.Duration))
.ForMember(d => d.ConfigurationItem, o => o.MapFrom(s => s.EK)) // .ForMember(d => d.ConfigurationItem, o => o.MapFrom(s => s.EK))
.ForMember(d => d.ContactName, o => o.MapFrom(s => s.Initiator)) // .ForMember(d => d.ContactName, o => o.MapFrom(s => s.Initiator))
.ForMember(d => d.Description, o => o.MapFrom(s => s.FullDescription)) // .ForMember(d => d.Description, o => o.MapFrom(s => s.FullDescription))
.ForMember(d => d.ResolutionCode, o => o.MapFrom(s => s.ClosingCode)) // .ForMember(d => d.ResolutionCode, o => o.MapFrom(s => s.ClosingCode))
.ForMember(d => d.Resolution, o => o.MapFrom(s => s.Solution)) // .ForMember(d => d.Resolution, o => o.MapFrom(s => s.Solution))
.ForMember(d => d.RzdMTNKprocess, o => o.MapFrom(s => s.Process)) // .ForMember(d => d.RzdMTNKprocess, o => o.MapFrom(s => s.Process))
.ForMember(d => d.RzdMTNKsubprocess, o => o.MapFrom(s => s.SubProcess)) // .ForMember(d => d.RzdMTNKsubprocess, o => o.MapFrom(s => s.SubProcess))
.ForMember(d => d.RzdMTNKtnk, o => o.MapFrom(s => s.TNK)) // .ForMember(d => d.RzdMTNKtnk, o => o.MapFrom(s => s.TNK))
.ForMember(d => d.RzdMTNKjob, o => o.MapFrom(s => s.Work)) // .ForMember(d => d.RzdMTNKjob, o => o.MapFrom(s => s.Work))
.ForMember(d => d.Assignee, o => o.MapFrom(s => s.Worker)); // .ForMember(d => d.Assignee, o => o.MapFrom(s => s.Worker));
CreateMap<TemplateResponse, TemplateStringResponse>(); CreateMap<TemplateResponse, TemplateStringResponse>();

View File

@@ -4,6 +4,7 @@ using PARR.DAL.Models;
using PARR.DAL.Models.AIHIT; using PARR.DAL.Models.AIHIT;
using PARR.DAL.Models.V1; using PARR.DAL.Models.V1;
using System.ComponentModel; using System.ComponentModel;
using System.Xml.Linq;
namespace PARR.DAL.Context namespace PARR.DAL.Context
{ {
@@ -29,7 +30,7 @@ namespace PARR.DAL.Context
public DbSet<ApplicationType> ApplicationTypes { get; set; } public DbSet<ApplicationType> ApplicationTypes { get; set; }
public DbSet<ApplicationInHost> ApplicationsInHosts { get; set; } public DbSet<ApplicationInHost> ApplicationsInHosts { get; set; }
public DbSet<Setting> Settings { get; set; } public DbSet<Models.AIHIT.Setting> Settings { get; set; }
public DbSet<RawDataEK> RawDataEKs { get; set; } public DbSet<RawDataEK> RawDataEKs { get; set; }
public DbSet<Template> Templates { get; set; } public DbSet<Template> Templates { get; set; }
public DbSet<StatusTemplate> StatusTemplates { get; set; } public DbSet<StatusTemplate> StatusTemplates { get; set; }
@@ -41,6 +42,7 @@ namespace PARR.DAL.Context
public DbSet<ApplicationsInWork> ApplicationsInWorks { get; set; } public DbSet<ApplicationsInWork> ApplicationsInWorks { get; set; }
public DbSet<Models.Setting> Setting { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder) protected override void OnModelCreating(ModelBuilder modelBuilder)
{ {
@@ -95,6 +97,15 @@ namespace PARR.DAL.Context
); );
}); });
modelBuilder.Entity<Models.Setting>(f =>
{
f.HasData(
new { Name = SettingsEnum.Initiator.ToString(), Description = "Инициатор регламентной работы, указывается при создании шаблона в ЕСПП.", Type = SettingsTypesEnum.String.ToString(), Value = "" },
new { Name = SettingsEnum.ClosingCode.ToString(), Description = "Код закрытия регламентной работы, указывается при создании шаблона в ЕСПП.", Type = SettingsTypesEnum.String.ToString(), Value = "выполнен" },
new { Name = SettingsEnum.Category.ToString(), Description = "Категория создаваемого объекта в ЕСПП", Type = SettingsTypesEnum.String.ToString(), Value = "регламентная работа" }
);
});
} }

View File

@@ -0,0 +1,9 @@
namespace PARR.DAL.Contracts
{
public enum SettingsEnum
{
Initiator,
ClosingCode,
Category
}
}

View File

@@ -0,0 +1,10 @@
namespace PARR.DAL.Contracts
{
public enum SettingsTypesEnum
{
Int,
Decimal,
String,
Bool
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,277 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
namespace PARR.DAL.Migrations
{
/// <inheritdoc />
public partial class TblTemplWorks : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "Category",
table: "Templates");
migrationBuilder.DropColumn(
name: "ClosingCode",
table: "Templates");
migrationBuilder.DropColumn(
name: "Duration",
table: "Templates");
migrationBuilder.DropColumn(
name: "EK",
table: "Templates");
migrationBuilder.DropColumn(
name: "FullDescription",
table: "Templates");
migrationBuilder.DropColumn(
name: "Initiator",
table: "Templates");
migrationBuilder.DropColumn(
name: "Process",
table: "Templates");
migrationBuilder.DropColumn(
name: "ResponseArea",
table: "Templates");
migrationBuilder.DropColumn(
name: "ShortDescription",
table: "Templates");
migrationBuilder.DropColumn(
name: "Solution",
table: "Templates");
migrationBuilder.DropColumn(
name: "SubProcess",
table: "Templates");
migrationBuilder.DropColumn(
name: "TNK",
table: "Templates");
migrationBuilder.DropColumn(
name: "Work",
table: "Templates");
migrationBuilder.DropColumn(
name: "WorkGroup",
table: "Templates");
migrationBuilder.DropColumn(
name: "Worker",
table: "Templates");
migrationBuilder.RenameColumn(
name: "HostName",
table: "Hosts",
newName: "ResponseArea");
migrationBuilder.AddColumn<string>(
name: "FullDescription",
table: "Works",
type: "text",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "ShortDescription",
table: "Works",
type: "text",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "Solution",
table: "Works",
type: "text",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "TemplateDuration",
table: "Works",
type: "text",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "Ek",
table: "Hosts",
type: "text",
nullable: false,
defaultValue: "");
migrationBuilder.CreateTable(
name: "Setting",
columns: table => new
{
Name = table.Column<string>(type: "text", nullable: false),
Description = table.Column<string>(type: "text", nullable: false),
Type = table.Column<string>(type: "text", nullable: false),
Value = table.Column<string>(type: "text", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Setting", x => x.Name);
});
migrationBuilder.InsertData(
table: "Setting",
columns: new[] { "Name", "Description", "Type", "Value" },
values: new object[,]
{
{ "Category", "Категория создаваемого объекта в ЕСПП", "String", "регламентная работа" },
{ "ClosingCode", "Код закрытия регламентной работы, указывается при создании шаблона в ЕСПП.", "String", "выполнен" },
{ "Initiator", "Инициатор регламентной работы, указывается при создании шаблона в ЕСПП.", "String", "" }
});
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Setting");
migrationBuilder.DropColumn(
name: "FullDescription",
table: "Works");
migrationBuilder.DropColumn(
name: "ShortDescription",
table: "Works");
migrationBuilder.DropColumn(
name: "Solution",
table: "Works");
migrationBuilder.DropColumn(
name: "TemplateDuration",
table: "Works");
migrationBuilder.DropColumn(
name: "Ek",
table: "Hosts");
migrationBuilder.RenameColumn(
name: "ResponseArea",
table: "Hosts",
newName: "HostName");
migrationBuilder.AddColumn<string>(
name: "Category",
table: "Templates",
type: "text",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "ClosingCode",
table: "Templates",
type: "text",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "Duration",
table: "Templates",
type: "text",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "EK",
table: "Templates",
type: "text",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "FullDescription",
table: "Templates",
type: "text",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "Initiator",
table: "Templates",
type: "text",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "Process",
table: "Templates",
type: "text",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "ResponseArea",
table: "Templates",
type: "text",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "ShortDescription",
table: "Templates",
type: "text",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "Solution",
table: "Templates",
type: "text",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "SubProcess",
table: "Templates",
type: "text",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "TNK",
table: "Templates",
type: "text",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "Work",
table: "Templates",
type: "text",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "WorkGroup",
table: "Templates",
type: "text",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "Worker",
table: "Templates",
type: "text",
nullable: false,
defaultValue: "");
}
}
}

View File

@@ -387,13 +387,17 @@ namespace PARR.DAL.Migrations
b.Property<DateTimeOffset?>("DateModified") b.Property<DateTimeOffset?>("DateModified")
.HasColumnType("timestamp with time zone"); .HasColumnType("timestamp with time zone");
b.Property<string>("HostName") b.Property<string>("Ek")
.IsRequired()
.HasColumnType("text"); .HasColumnType("text");
b.Property<string>("IP") b.Property<string>("IP")
.IsRequired() .IsRequired()
.HasColumnType("text"); .HasColumnType("text");
b.Property<string>("ResponseArea")
.HasColumnType("text");
b.Property<string>("Status") b.Property<string>("Status")
.HasColumnType("text"); .HasColumnType("text");
@@ -429,6 +433,51 @@ namespace PARR.DAL.Migrations
b.ToTable("Processes"); b.ToTable("Processes");
}); });
modelBuilder.Entity("PARR.DAL.Models.Setting", b =>
{
b.Property<string>("Name")
.HasColumnType("text");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("text");
b.Property<string>("Type")
.IsRequired()
.HasColumnType("text");
b.Property<string>("Value")
.IsRequired()
.HasColumnType("text");
b.HasKey("Name");
b.ToTable("Setting");
b.HasData(
new
{
Name = "Initiator",
Description = "Инициатор регламентной работы, указывается при создании шаблона в ЕСПП.",
Type = "String",
Value = ""
},
new
{
Name = "ClosingCode",
Description = "Код закрытия регламентной работы, указывается при создании шаблона в ЕСПП.",
Type = "String",
Value = "выполнен"
},
new
{
Name = "Category",
Description = "Категория создаваемого объекта в ЕСПП",
Type = "String",
Value = "регламентная работа"
});
});
modelBuilder.Entity("PARR.DAL.Models.StatusTemplate", b => modelBuilder.Entity("PARR.DAL.Models.StatusTemplate", b =>
{ {
b.Property<int>("Code") b.Property<int>("Code")
@@ -508,36 +557,12 @@ namespace PARR.DAL.Migrations
b.Property<Guid>("ApplicationInWorkId") b.Property<Guid>("ApplicationInWorkId")
.HasColumnType("uuid"); .HasColumnType("uuid");
b.Property<string>("Category")
.IsRequired()
.HasColumnType("text");
b.Property<string>("ClosingCode")
.IsRequired()
.HasColumnType("text");
b.Property<DateTimeOffset>("DateCreated") b.Property<DateTimeOffset>("DateCreated")
.HasColumnType("timestamp with time zone"); .HasColumnType("timestamp with time zone");
b.Property<DateTimeOffset?>("DateModified") b.Property<DateTimeOffset?>("DateModified")
.HasColumnType("timestamp with time zone"); .HasColumnType("timestamp with time zone");
b.Property<string>("Duration")
.IsRequired()
.HasColumnType("text");
b.Property<string>("EK")
.IsRequired()
.HasColumnType("text");
b.Property<string>("FullDescription")
.IsRequired()
.HasColumnType("text");
b.Property<string>("Initiator")
.IsRequired()
.HasColumnType("text");
b.Property<bool>("IsActive") b.Property<bool>("IsActive")
.HasColumnType("boolean"); .HasColumnType("boolean");
@@ -545,45 +570,9 @@ namespace PARR.DAL.Migrations
.IsRequired() .IsRequired()
.HasColumnType("text"); .HasColumnType("text");
b.Property<string>("Process")
.IsRequired()
.HasColumnType("text");
b.Property<string>("ResponseArea")
.IsRequired()
.HasColumnType("text");
b.Property<string>("ShortDescription")
.IsRequired()
.HasColumnType("text");
b.Property<string>("Solution")
.IsRequired()
.HasColumnType("text");
b.Property<int>("StatusCode") b.Property<int>("StatusCode")
.HasColumnType("integer"); .HasColumnType("integer");
b.Property<string>("SubProcess")
.IsRequired()
.HasColumnType("text");
b.Property<string>("TNK")
.IsRequired()
.HasColumnType("text");
b.Property<string>("Work")
.IsRequired()
.HasColumnType("text");
b.Property<string>("WorkGroup")
.IsRequired()
.HasColumnType("text");
b.Property<string>("Worker")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id"); b.HasKey("Id");
b.HasIndex("ApplicationInWorkId"); b.HasIndex("ApplicationInWorkId");
@@ -987,10 +976,26 @@ namespace PARR.DAL.Migrations
b.Property<int>("EsppId") b.Property<int>("EsppId")
.HasColumnType("integer"); .HasColumnType("integer");
b.Property<string>("FullDescription")
.IsRequired()
.HasColumnType("text");
b.Property<string>("Name") b.Property<string>("Name")
.IsRequired() .IsRequired()
.HasColumnType("text"); .HasColumnType("text");
b.Property<string>("ShortDescription")
.IsRequired()
.HasColumnType("text");
b.Property<string>("Solution")
.IsRequired()
.HasColumnType("text");
b.Property<string>("TemplateDuration")
.IsRequired()
.HasColumnType("text");
b.Property<Guid>("TnkId") b.Property<Guid>("TnkId")
.HasColumnType("uuid"); .HasColumnType("uuid");

View File

@@ -9,14 +9,22 @@ namespace PARR.DAL.Models
{ {
[Key] [Key]
public Guid Id { get; set; } public Guid Id { get; set; }
public DateTimeOffset DateCreated { get; set; } public DateTimeOffset DateCreated { get; set; }
public DateTimeOffset? DateModified { get; set; } public DateTimeOffset? DateModified { get; set; }
public string? Ek { get; set; }
public string Ek { get; set; }
public required string IP { get; set; } public required string IP { get; set; }
//public string? RegionalEK { get; set; } //public string? RegionalEK { get; set; }
//public string? LinkEK { get; set; } //public string? LinkEK { get; set; }
public string? Status { get; set; } public string? Status { get; set; }
public string? WorkGroup { get; set; } public string? WorkGroup { get; set; }
public string? ResponseArea { get; set; } public string? ResponseArea { get; set; }

View File

@@ -0,0 +1,19 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace PARR.DAL.Models
{
[Table("Setting")]
public class Setting
{
[Key]
public required string Name { get; set; }
public required string Description { get; set; }
//SettingsTypesEnum
public required string Type { get; set; }
public required string Value { get; set; }
}
}

View File

@@ -20,47 +20,6 @@ namespace PARR.DAL.Models
public bool IsActive { get; set; } public bool IsActive { get; set; }
//Рабочая группа из Host
public required string WorkGroup { get; set; }
// settings из Work
public required string ShortDescription { get; set; }
//settings регламентная работа. не меняется
public required string Category { get; set; }
// из Host
public required string ResponseArea { get; set; }
//works
public required string EsppDuration { get; set; }
//works
public required string EsppStartAt { get; set; }
//public required string EK { get; set; }
// settings. Возможно руководитель повыше
public required string Initiator { get; set; }
// settings из Work
public required string FullDescription { get; set; }
// settings
public required string ClosingCode { get; set; }
// settings из Work
public required string Solution { get; set; }
//public required string Process { get; set; }
//public required string SubProcess { get; set; }
//public required string TNK { get; set; }
//public required string Work { get; set; }
// исполнитель??
public required string Worker { get; set; }
public int StatusCode { get; set; } public int StatusCode { get; set; }

View File

@@ -20,6 +20,14 @@ namespace PARR.DAL.Models
public Guid TnkId { get; set; } public Guid TnkId { get; set; }
public required string TemplateDuration { get; set; }
public required string ShortDescription { get; set; }
public required string FullDescription { get; set; }
public required string Solution { get; set; }
[ForeignKey(nameof(TnkId))] [ForeignKey(nameof(TnkId))]
public Tnk? Tnk { get; set; } public Tnk? Tnk { get; set; }

View File

@@ -93,7 +93,7 @@ namespace PARR.EsppTemplateSync.Services
//else //else
// logger.LogInformation($"----- Создана запись Template {esppTemplate.Name}({esppTemplate.ShortDescription}) -----"); // logger.LogInformation($"----- Создана запись Template {esppTemplate.Name}({esppTemplate.ShortDescription}) -----");
//--- //---
logger.LogWarning($"----- Найден шаблон ЕСПП незарегистрированный в ПАРР {esppTemplate.Name}({esppTemplate.ShortDescription}) -----"); logger.LogWarning($"----- Найден шаблон ЕСПП незарегистрированный в ПАРР {esppTemplate.Name}({esppTemplate.ApplicationsInWork?.Work?.ShortDescription}) -----");
} }
else else
{ {
@@ -124,15 +124,15 @@ namespace PARR.EsppTemplateSync.Services
if (isChanged) if (isChanged)
{ {
logger.LogInformation($"----- Запись в ЕСПП отличается от Template {esppTemplate.Name}({esppTemplate.ShortDescription}) -----"); logger.LogInformation($"----- Запись в ЕСПП отличается от Template {esppTemplate.Name}({esppTemplate.ApplicationsInWork?.Work?.ShortDescription}) -----");
//template.Status = "Updating"; //template.Status = "Updating";
template.StatusCode = (int)StatusTemplateEnum.Updating; template.StatusCode = (int)StatusTemplateEnum.Updating;
if (!await templateService.CommitAsync()) if (!await templateService.CommitAsync())
logger.LogError($"Не удалось обновить запись Template {esppTemplate.Name}({esppTemplate.ShortDescription})"); logger.LogError($"Не удалось обновить запись Template {esppTemplate.Name}({esppTemplate.ApplicationsInWork?.Work?.ShortDescription})");
else else
logger.LogInformation($"----- Требуется обновление шаблона в ЕСПП роботом {esppTemplate.Name}({esppTemplate.ShortDescription}) -----"); logger.LogInformation($"----- Требуется обновление шаблона в ЕСПП роботом {esppTemplate.Name}({esppTemplate.ApplicationsInWork?.Work?.ShortDescription}) -----");
} }
else else
{ {
@@ -143,7 +143,7 @@ namespace PARR.EsppTemplateSync.Services
template.StatusCode = (int)StatusTemplateEnum.Ok; template.StatusCode = (int)StatusTemplateEnum.Ok;
if (!await templateService.CommitAsync()) if (!await templateService.CommitAsync())
logger.LogInformation($"Шаблон в ЕСПП соответствует шаблону в ПАРР {esppTemplate.Name}({esppTemplate.ShortDescription}). Установлен статус {StatusTemplateEnum.Ok}"); logger.LogInformation($"Шаблон в ЕСПП соответствует шаблону в ПАРР {esppTemplate.Name}({esppTemplate.ApplicationsInWork?.Work?.ShortDescription}). Установлен статус {StatusTemplateEnum.Ok}");
} }
} }
} }

View File

@@ -62,21 +62,21 @@ namespace PARR.EsppTemplateSync.Services
DateCreated = DateTime.UtcNow, DateCreated = DateTime.UtcNow,
Name = name, Name = name,
IsActive = bool.Parse(isActive), IsActive = bool.Parse(isActive),
WorkGroup = workGroup, //WorkGroup = workGroup,
ShortDescription = shortDescription, //ShortDescription = shortDescription,
Category = category, //Category = category,
ResponseArea = responseArea, //ResponseArea = responseArea,
Duration = duration, //Duration = duration,
EK = ek, //EK = ek,
Initiator = initiator, //Initiator = initiator,
FullDescription = fullDescription, //FullDescription = fullDescription,
ClosingCode = closingCode, //ClosingCode = closingCode,
Solution = solution, //Solution = solution,
Process = process, //Process = process,
SubProcess = subProcess, //SubProcess = subProcess,
TNK = tnk, //TNK = tnk,
Work = work, //Work = work,
Worker = worker, //Worker = worker,
//Status = "Checking" //Status = "Checking"
StatusCode = (int)StatusTemplateEnum.Ok StatusCode = (int)StatusTemplateEnum.Ok
}; };

View File

@@ -18,221 +18,229 @@ namespace PARR.MockData.Services
public async Task InitAsync() public async Task InitAsync()
{ {
var templates = new List<Template>() { var templates = new List<Template>() {
new Template{ //new Template{
Id=Guid.NewGuid(), // Id=Guid.NewGuid(),
DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:39.004502+00"), // DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:39.004502+00"),
EK="ВРТ-VMWARE-ДВС", // EK="ВРТ-VMWARE-ДВС",
IsActive=true, // IsActive=true,
WorkGroup="СМЕНА-ПТК-ДВС", // WorkGroup="СМЕНА-ПТК-ДВС",
ShortDescription="ДВС-ПТК СМЕНА-Установка обновлений ОС", // ShortDescription="ДВС-ПТК СМЕНА-Установка обновлений ОС",
Category="регламентная работа", // Category="регламентная работа",
Process="ЦВК Выполнение регламентных работ (О3.2.2.3)", // Process="ЦВК Выполнение регламентных работ (О3.2.2.3)",
SubProcess="ЦВК Выполнение регламентных работ (О3.2.2.3)", // SubProcess="ЦВК Выполнение регламентных работ (О3.2.2.3)",
ClosingCode="выполнен", // ClosingCode="выполнен",
Duration="3 00:00:00", // Duration="3 00:00:00",
FullDescription="Установка обновлений ОС серверов средней и низ-кой критичности.", // FullDescription="Установка обновлений ОС серверов средней и низ-кой критичности.",
Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)", // Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)",
Name="ПАРР-ДВС-ПТК СМЕНА-УСТАНОВКА ОБНОВЛЕНИЙ ОС", // Name="ПАРР-ДВС-ПТК СМЕНА-УСТАНОВКА ОБНОВЛЕНИЙ ОС",
ResponseArea="96-ДВС", // ResponseArea="96-ДВС",
Solution="Установка обновлений ОС серверов средней и низкой критичности.", // Solution="Установка обновлений ОС серверов средней и низкой критичности.",
TNK="", // TNK="",
Work="", // Work="",
Worker="", // Worker="",
StatusCode = (int)StatusTemplateEnum.Creating // StatusCode = (int)StatusTemplateEnum.Creating
}, new Template{ //},
Id=Guid.NewGuid(), //new Template{
DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:38.992903+00"), // Id=Guid.NewGuid(),
EK="КОМПЛЕКСЫ-ДВС", // DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:38.992903+00"),
IsActive=true, // EK="КОМПЛЕКСЫ-ДВС",
WorkGroup="СМЕНА-ПТК-ДВС", // IsActive=true,
ShortDescription="ДВС-ПТК СМЕНА-РАБОТА С ИЗМЕНЕНИЯМИ-2", // WorkGroup="СМЕНА-ПТК-ДВС",
Category="регламентная работа", // ShortDescription="ДВС-ПТК СМЕНА-РАБОТА С ИЗМЕНЕНИЯМИ-2",
Process="ПТК Выполнение регламентных работ (О3.2.2.4)", // Category="регламентная работа",
SubProcess="ПТК Выполнение регламентных работ (О3.2.2.4)", // Process="ПТК Выполнение регламентных работ (О3.2.2.4)",
ClosingCode="выполнен", // SubProcess="ПТК Выполнение регламентных работ (О3.2.2.4)",
Duration="3 00:00:00", // ClosingCode="выполнен",
FullDescription="Работа с изменениями. Проверка плана обновлений ПО серверов. Проверка создания и согласования изменений для обновления ПО серверов низкой и средней критичности.", // Duration="3 00:00:00",
Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)", // FullDescription="Работа с изменениями. Проверка плана обновлений ПО серверов. Проверка создания и согласования изменений для обновления ПО серверов низкой и средней критичности.",
Name="ПАРР-ДВС-ПТК СМЕНА-РАБОТА С ИЗМЕНЕНИЯМИ-2", // Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)",
ResponseArea="96-ДВС", // Name="ПАРР-ДВС-ПТК СМЕНА-РАБОТА С ИЗМЕНЕНИЯМИ-2",
Solution="Работа с изменениями. Проверка плана обновлений ПО серверов. Проверка создания и согласования изменений для обновления ПО серверов низкой и средней критичности.", // ResponseArea="96-ДВС",
TNK="", // Solution="Работа с изменениями. Проверка плана обновлений ПО серверов. Проверка создания и согласования изменений для обновления ПО серверов низкой и средней критичности.",
Work="", // TNK="",
Worker="", // Work="",
StatusCode = (int)StatusTemplateEnum.Creating // Worker="",
// StatusCode = (int)StatusTemplateEnum.Creating
}, new Template //},
{ //new Template
Id=Guid.NewGuid(), //{
DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:38.981423+00"), // Id=Guid.NewGuid(),
EK="ВРТ-VMWARE-ДВС", // DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:38.981423+00"),
IsActive=true, // EK="ВРТ-VMWARE-ДВС",
WorkGroup="СМЕНА-ПТК-ДВС", // IsActive=true,
ShortDescription="ДВС-ПТК СМЕНА-Проверка СРК VMWare", // WorkGroup="СМЕНА-ПТК-ДВС",
Category="регламентная работа", // ShortDescription="ДВС-ПТК СМЕНА-Проверка СРК VMWare",
Process="ЦВК Выполнение регламентных работ (О3.2.2.3)", // Category="регламентная работа",
SubProcess="ЦВК Выполнение регламентных работ (О3.2.2.3)", // Process="ЦВК Выполнение регламентных работ (О3.2.2.3)",
ClosingCode="выполнен", // SubProcess="ЦВК Выполнение регламентных работ (О3.2.2.3)",
Duration="3 00:00:00", // ClosingCode="выполнен",
FullDescription="Проверка резервного копирования серверов в VMware.", // Duration="3 00:00:00",
Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)", // FullDescription="Проверка резервного копирования серверов в VMware.",
Name="ПАРР-ДВС-ПТК СМЕНА-ПРОВЕРКА СРК VMWARE", // Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)",
ResponseArea="96-ДВС", // Name="ПАРР-ДВС-ПТК СМЕНА-ПРОВЕРКА СРК VMWARE",
Solution="Проверка резервного копирования серверов в VMware.", // ResponseArea="96-ДВС",
TNK="ТО-1 Мониторинг и анализ работы виртуального центра Vmware (ежедневные) (О3.2.2.3) - виртуальный комплекс", // Solution="Проверка резервного копирования серверов в VMware.",
Work="ТО-1 Мониторинг и анализ работы виртуального центра Vmware (ежедневные) (О3.2.2.3)", // TNK="ТО-1 Мониторинг и анализ работы виртуального центра Vmware (ежедневные) (О3.2.2.3) - виртуальный комплекс",
Worker="", // Work="ТО-1 Мониторинг и анализ работы виртуального центра Vmware (ежедневные) (О3.2.2.3)",
StatusCode = (int)StatusTemplateEnum.Creating // Worker="",
// StatusCode = (int)StatusTemplateEnum.Creating
}, new Template //},
{ //new Template
Id=Guid.NewGuid(), //{
DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:38.966595+00"), // Id=Guid.NewGuid(),
EK="КОМПЛЕКСЫ-ДВС", // DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:38.966595+00"),
IsActive=true, // EK="КОМПЛЕКСЫ-ДВС",
WorkGroup="СМЕНА-ПТК-ДВС", // IsActive=true,
ShortDescription="ДВС-ПТК СМЕНА-ПРОВЕРКА СВОБОДНОГО МЕСТА НА ДИСКАХ", // WorkGroup="СМЕНА-ПТК-ДВС",
Category="регламентная работа", // ShortDescription="ДВС-ПТК СМЕНА-ПРОВЕРКА СВОБОДНОГО МЕСТА НА ДИСКАХ",
Process="ЦВК Выполнение регламентных работ (О3.2.2.3)", // Category="регламентная работа",
SubProcess="ЦВК Выполнение регламентных работ (О3.2.2.3)", // Process="ЦВК Выполнение регламентных работ (О3.2.2.3)",
ClosingCode="выполнен", // SubProcess="ЦВК Выполнение регламентных работ (О3.2.2.3)",
Duration="3 00:00:00", // ClosingCode="выполнен",
FullDescription="Проверка свободного места на дисках серверов", // Duration="3 00:00:00",
Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)", // FullDescription="Проверка свободного места на дисках серверов",
Name="ПАРР-ДВС-ПТК СМЕНА-ПРОВЕРКА СВОБОДНОГО МЕСТА НА ДИСКАХ", // Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)",
ResponseArea="96-ДВС", // Name="ПАРР-ДВС-ПТК СМЕНА-ПРОВЕРКА СВОБОДНОГО МЕСТА НА ДИСКАХ",
Solution="Проверка свободного места на дисках серверов.", // ResponseArea="96-ДВС",
TNK="", // Solution="Проверка свободного места на дисках серверов.",
Work="", // TNK="",
Worker="", // Work="",
StatusCode = (int)StatusTemplateEnum.Creating // Worker="",
// StatusCode = (int)StatusTemplateEnum.Creating
}, new Template //},
{ //new Template
Id=Guid.NewGuid(), //{
DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:38.953887+00"), // Id=Guid.NewGuid(),
EK="КОМПЛЕКСЫ-ДВС", // DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:38.953887+00"),
IsActive=true, // EK="КОМПЛЕКСЫ-ДВС",
WorkGroup="СМЕНА-ПТК-ДВС", // IsActive=true,
ShortDescription="ДВС-ПТК СМЕНА-ОБХОД СЕРВЕРНЫХ", // WorkGroup="СМЕНА-ПТК-ДВС",
Category="регламентная работа", // ShortDescription="ДВС-ПТК СМЕНА-ОБХОД СЕРВЕРНЫХ",
Process="ЦВК Выполнение регламентных работ (О3.2.2.3)", // Category="регламентная работа",
SubProcess="ЦВК Выполнение регламентных работ (О3.2.2.3)", // Process="ЦВК Выполнение регламентных работ (О3.2.2.3)",
ClosingCode="выполнен", // SubProcess="ЦВК Выполнение регламентных работ (О3.2.2.3)",
Duration="3 00:00:00", // ClosingCode="выполнен",
FullDescription="Обход серверных помещений. Проверка соблюдений правил пожарной безопасно-сти в помещениях (отсутствие пустых коробок от оборудования, общий порядок в помещениях, сер-верных шкафах и т.п.). Проверка индикаторов серверного оборудова-ния отдела ПТК (отмечать о серверах где горят красные/оранжевые критические инди-каторы).", // Duration="3 00:00:00",
Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)", // FullDescription="Обход серверных помещений. Проверка соблюдений правил пожарной безопасно-сти в помещениях (отсутствие пустых коробок от оборудования, общий порядок в помещениях, сер-верных шкафах и т.п.). Проверка индикаторов серверного оборудова-ния отдела ПТК (отмечать о серверах где горят красные/оранжевые критические инди-каторы).",
Name="ПАРР-ДВС-ПТК СМЕНА-ОБХОД СЕРВЕРНЫХ", // Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)",
ResponseArea="96-ДВС", // Name="ПАРР-ДВС-ПТК СМЕНА-ОБХОД СЕРВЕРНЫХ",
Solution="Обход серверных помещений. Проверка соблюдения правил пожарной безопасности в помещениях. Проверка индикаторов серверного оборудования отдела ПТК.", // ResponseArea="96-ДВС",
TNK="", // Solution="Обход серверных помещений. Проверка соблюдения правил пожарной безопасности в помещениях. Проверка индикаторов серверного оборудования отдела ПТК.",
Work="", // TNK="",
Worker="", // Work="",
StatusCode = (int)StatusTemplateEnum.Creating // Worker="",
// StatusCode = (int)StatusTemplateEnum.Creating
}, new Template //},
{ //new Template
Id=Guid.NewGuid(), //{
DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:38.940346+00"), // Id=Guid.NewGuid(),
EK="КОМПЛЕКСЫ-ДВС", // DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:38.940346+00"),
IsActive=true, // EK="КОМПЛЕКСЫ-ДВС",
WorkGroup="СМЕНА-ПТК-ДВС", // IsActive=true,
ShortDescription="ДВС-ПТК СМЕНА-ОБСЛУЖИВАИНЕ БАЗ ДАННЫХ", // WorkGroup="СМЕНА-ПТК-ДВС",
Category="регламентная работа", // ShortDescription="ДВС-ПТК СМЕНА-ОБСЛУЖИВАИНЕ БАЗ ДАННЫХ",
Process="ПТК Выполнение регламентных работ (О3.2.2.4)", // Category="регламентная работа",
SubProcess="ПТК Выполнение регламентных работ (О3.2.2.4)", // Process="ПТК Выполнение регламентных работ (О3.2.2.4)",
ClosingCode="выполнен", // SubProcess="ПТК Выполнение регламентных работ (О3.2.2.4)",
Duration="3 00:00:00", // ClosingCode="выполнен",
FullDescription="обслуживание баз данных", // Duration="3 00:00:00",
Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)", // FullDescription="обслуживание баз данных",
Name="ПАРР-ДВС-ПТК СМЕНА-ОБСЛУЖИВАИНЕ БАЗ ДАННЫХ", // Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)",
ResponseArea="96-ДВС", // Name="ПАРР-ДВС-ПТК СМЕНА-ОБСЛУЖИВАИНЕ БАЗ ДАННЫХ",
Solution="Обслуживание баз данных", // ResponseArea="96-ДВС",
TNK="СПО Анализ системных журналов СУБД (О3.2.2.4)", // Solution="Обслуживание баз данных",
Work="СПО Анализ системных журналов СУБД (О3.2.2.4)", // TNK="СПО Анализ системных журналов СУБД (О3.2.2.4)",
Worker="", // Work="СПО Анализ системных журналов СУБД (О3.2.2.4)",
StatusCode = (int)StatusTemplateEnum.Creating // Worker="",
}, new Template // StatusCode = (int)StatusTemplateEnum.Creating
{ //},
Id=Guid.NewGuid(), //new Template
DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:39.017247+00"), //{
EK="ЦОММ-ДВС", // Id=Guid.NewGuid(),
IsActive=true, // DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:39.017247+00"),
WorkGroup="СМЕНА-ПТК-ДВС", // EK="ЦОММ-ДВС",
ShortDescription="Администрирование DB2 ЦОММ", // IsActive=true,
Category="регламентная работа", // WorkGroup="СМЕНА-ПТК-ДВС",
Process="ПТК Выполнение регламентных работ (О3.2.2.4)", // ShortDescription="Администрирование DB2 ЦОММ",
SubProcess="ПТК Выполнение регламентных работ (О3.2.2.4)", // Category="регламентная работа",
ClosingCode="выполнен", // Process="ПТК Выполнение регламентных работ (О3.2.2.4)",
Duration="10 00:00:00", // SubProcess="ПТК Выполнение регламентных работ (О3.2.2.4)",
FullDescription="Администрирование DB2 ЦОММ", // ClosingCode="выполнен",
Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)", // Duration="10 00:00:00",
Name="ПАРР-ДВС-ПТК-DB2-ЦОММ", // FullDescription="Администрирование DB2 ЦОММ",
ResponseArea="96-ДВС", // Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)",
Solution="Администрирование DB2 ЦОММ.", // Name="ПАРР-ДВС-ПТК-DB2-ЦОММ",
TNK="СПО Анализ производительности серверов приложений (О3.2.2.4)", // ResponseArea="96-ДВС",
Work="СПО Анализ производительности серверов приложений (О3.2.2.4)", // Solution="Администрирование DB2 ЦОММ.",
Worker="", // TNK="СПО Анализ производительности серверов приложений (О3.2.2.4)",
StatusCode = (int)StatusTemplateEnum.Creating // Work="СПО Анализ производительности серверов приложений (О3.2.2.4)",
// Worker="",
// StatusCode = (int)StatusTemplateEnum.Creating
}, new Template //},
{ //new Template
Id=Guid.NewGuid(), //{
DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:38.925717+00"), // Id=Guid.NewGuid(),
EK="СРК-NETBACKUP-ДВС", // DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:38.925717+00"),
IsActive=true, // EK="СРК-NETBACKUP-ДВС",
WorkGroup="СМЕНА-ПТК-ДВС", // IsActive=true,
ShortDescription="ДВС-ПТК СМЕНА-МОНИТОРИНГ СРК", // WorkGroup="СМЕНА-ПТК-ДВС",
Category="регламентная работа", // ShortDescription="ДВС-ПТК СМЕНА-МОНИТОРИНГ СРК",
Process="ЦВК Выполнение регламентных работ (О3.2.2.3)", // Category="регламентная работа",
SubProcess="ЦВК Выполнение регламентных работ (О3.2.2.3)", // Process="ЦВК Выполнение регламентных работ (О3.2.2.3)",
ClosingCode="выполнен", // SubProcess="ЦВК Выполнение регламентных работ (О3.2.2.3)",
Duration="3 00:00:00", // ClosingCode="выполнен",
FullDescription="Мониторинг состояния системы резервного копирования", // Duration="3 00:00:00",
Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)", // FullDescription="Мониторинг состояния системы резервного копирования",
Name="ПАРР-ДВС-ПТК СМЕНА-КОНТРОЛЬ РАБОТЫ СРК", // Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)",
ResponseArea="96-ДВС", // Name="ПАРР-ДВС-ПТК СМЕНА-КОНТРОЛЬ РАБОТЫ СРК",
Solution="Мониторинг состояния системы резервного копирования", // ResponseArea="96-ДВС",
TNK="ТО-1 Мониторинг и анализ работы системы СРК (ежедневные) (О3.2.2.3) - региональный", // Solution="Мониторинг состояния системы резервного копирования",
Work="ТО-1 Мониторинг и анализ работы системы СРК (ежедневные) (О3.2.2.3)", // TNK="ТО-1 Мониторинг и анализ работы системы СРК (ежедневные) (О3.2.2.3) - региональный",
Worker="", // Work="ТО-1 Мониторинг и анализ работы системы СРК (ежедневные) (О3.2.2.3)",
StatusCode = (int)StatusTemplateEnum.Creating // Worker="",
}, new Template // StatusCode = (int)StatusTemplateEnum.Creating
{ //},
Id=Guid.NewGuid(), //new Template
DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:38.910218+00"), //{
EK="КОМПЛЕКСЫ-ДВС", // Id=Guid.NewGuid(),
IsActive=true, // DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:38.910218+00"),
WorkGroup="СМЕНА-ПТК-ДВС", // EK="КОМПЛЕКСЫ-ДВС",
ShortDescription="ДВС-ПТК СМЕНА-Анализ плановых работ по системам", // IsActive=true,
Category="регламентная работа", // WorkGroup="СМЕНА-ПТК-ДВС",
Process="ПТК Выполнение регламентных работ (О3.2.2.4)", // ShortDescription="ДВС-ПТК СМЕНА-Анализ плановых работ по системам",
SubProcess="ПТК Выполнение регламентных работ (О3.2.2.4)", // Category="регламентная работа",
ClosingCode="выполнен", // Process="ПТК Выполнение регламентных работ (О3.2.2.4)",
Duration="3 00:00:00", // SubProcess="ПТК Выполнение регламентных работ (О3.2.2.4)",
FullDescription="ДВС-ПТК СМЕНА-Анализ плановых работ по системам", // ClosingCode="выполнен",
Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)", // Duration="3 00:00:00",
Name="ПАРР-ДВС-ПТК СМЕНА-АНАЛИЗ ПЛАНОВЫХ РАБОТ ПО СИСТЕМАМ", // FullDescription="ДВС-ПТК СМЕНА-Анализ плановых работ по системам",
ResponseArea="96-ДВС", // Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)",
Solution="Анализ плановых работ по системам", // Name="ПАРР-ДВС-ПТК СМЕНА-АНАЛИЗ ПЛАНОВЫХ РАБОТ ПО СИСТЕМАМ",
TNK="", // ResponseArea="96-ДВС",
Work="", // Solution="Анализ плановых работ по системам",
Worker="", // TNK="",
StatusCode = (int)StatusTemplateEnum.Creating // Work="",
} // Worker="",
// StatusCode = (int)StatusTemplateEnum.Creating
//}
}; };
foreach (var template in templates) //foreach (var template in templates)
{ //{
if (!await templateService.CreateAsync(template) || !await templateService.CommitAsync()) // if (!await templateService.CreateAsync(template) || !await templateService.CommitAsync())
{ // {
logger.LogError($"Не удалось создать Template {template.Name} {template.ShortDescription}"); // logger.LogError($"Не удалось создать Template {template.Name} {template.ShortDescription}");
continue; // continue;
} // }
else // else
logger.LogInformation($"----- Создан Template: {template.Name}, {template.ShortDescription} -----"); // logger.LogInformation($"----- Создан Template: {template.Name}, {template.ShortDescription} -----");
} //}
} }
} }
} }