Обновление моделей 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<Template, TemplateResponse>()
.ForMember(d => d.ParrTemplateId, o => o.MapFrom(s => s.Id))
.ForMember(d => d.Assignment, o => o.MapFrom(s => s.WorkGroup))
.ForMember(d => d.Title, o => o.MapFrom(s => s.ShortDescription))
.ForMember(d => d.Branch, o => o.MapFrom(s => s.ResponseArea))
.ForMember(d => d.SlaInterval, o => o.MapFrom(s => s.Duration))
.ForMember(d => d.ConfigurationItem, o => o.MapFrom(s => s.EK))
.ForMember(d => d.ContactName, o => o.MapFrom(s => s.Initiator))
.ForMember(d => d.Description, o => o.MapFrom(s => s.FullDescription))
.ForMember(d => d.ResolutionCode, o => o.MapFrom(s => s.ClosingCode))
.ForMember(d => d.Resolution, o => o.MapFrom(s => s.Solution))
.ForMember(d => d.RzdMTNKprocess, o => o.MapFrom(s => s.Process))
.ForMember(d => d.RzdMTNKsubprocess, o => o.MapFrom(s => s.SubProcess))
.ForMember(d => d.RzdMTNKtnk, o => o.MapFrom(s => s.TNK))
.ForMember(d => d.RzdMTNKjob, o => o.MapFrom(s => s.Work))
.ForMember(d => d.Assignee, o => o.MapFrom(s => s.Worker));
//CreateMap<Template, TemplateResponse>()
// .ForMember(d => d.ParrTemplateId, o => o.MapFrom(s => s.Id))
// .ForMember(d => d.Assignment, o => o.MapFrom(s => s.WorkGroup))
// .ForMember(d => d.Title, o => o.MapFrom(s => s.ShortDescription))
// .ForMember(d => d.Branch, o => o.MapFrom(s => s.ResponseArea))
// .ForMember(d => d.SlaInterval, o => o.MapFrom(s => s.Duration))
// .ForMember(d => d.ConfigurationItem, o => o.MapFrom(s => s.EK))
// .ForMember(d => d.ContactName, o => o.MapFrom(s => s.Initiator))
// .ForMember(d => d.Description, o => o.MapFrom(s => s.FullDescription))
// .ForMember(d => d.ResolutionCode, o => o.MapFrom(s => s.ClosingCode))
// .ForMember(d => d.Resolution, o => o.MapFrom(s => s.Solution))
// .ForMember(d => d.RzdMTNKprocess, o => o.MapFrom(s => s.Process))
// .ForMember(d => d.RzdMTNKsubprocess, o => o.MapFrom(s => s.SubProcess))
// .ForMember(d => d.RzdMTNKtnk, o => o.MapFrom(s => s.TNK))
// .ForMember(d => d.RzdMTNKjob, o => o.MapFrom(s => s.Work))
// .ForMember(d => d.Assignee, o => o.MapFrom(s => s.Worker));
CreateMap<TemplateResponse, TemplateStringResponse>();

View File

@@ -4,6 +4,7 @@ using PARR.DAL.Models;
using PARR.DAL.Models.AIHIT;
using PARR.DAL.Models.V1;
using System.ComponentModel;
using System.Xml.Linq;
namespace PARR.DAL.Context
{
@@ -29,7 +30,7 @@ namespace PARR.DAL.Context
public DbSet<ApplicationType> ApplicationTypes { 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<Template> Templates { get; set; }
public DbSet<StatusTemplate> StatusTemplates { get; set; }
@@ -41,6 +42,7 @@ namespace PARR.DAL.Context
public DbSet<ApplicationsInWork> ApplicationsInWorks { get; set; }
public DbSet<Models.Setting> Setting { get; set; }
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")
.HasColumnType("timestamp with time zone");
b.Property<string>("HostName")
b.Property<string>("Ek")
.IsRequired()
.HasColumnType("text");
b.Property<string>("IP")
.IsRequired()
.HasColumnType("text");
b.Property<string>("ResponseArea")
.HasColumnType("text");
b.Property<string>("Status")
.HasColumnType("text");
@@ -429,6 +433,51 @@ namespace PARR.DAL.Migrations
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 =>
{
b.Property<int>("Code")
@@ -508,36 +557,12 @@ namespace PARR.DAL.Migrations
b.Property<Guid>("ApplicationInWorkId")
.HasColumnType("uuid");
b.Property<string>("Category")
.IsRequired()
.HasColumnType("text");
b.Property<string>("ClosingCode")
.IsRequired()
.HasColumnType("text");
b.Property<DateTimeOffset>("DateCreated")
.HasColumnType("timestamp with time zone");
b.Property<DateTimeOffset?>("DateModified")
.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")
.HasColumnType("boolean");
@@ -545,45 +570,9 @@ namespace PARR.DAL.Migrations
.IsRequired()
.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")
.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.HasIndex("ApplicationInWorkId");
@@ -987,10 +976,26 @@ namespace PARR.DAL.Migrations
b.Property<int>("EsppId")
.HasColumnType("integer");
b.Property<string>("FullDescription")
.IsRequired()
.HasColumnType("text");
b.Property<string>("Name")
.IsRequired()
.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")
.HasColumnType("uuid");

View File

@@ -9,14 +9,22 @@ namespace PARR.DAL.Models
{
[Key]
public Guid Id { get; set; }
public DateTimeOffset DateCreated { get; set; }
public DateTimeOffset? DateModified { get; set; }
public string? Ek { get; set; }
public string Ek { get; set; }
public required string IP { get; set; }
//public string? RegionalEK { get; set; }
//public string? LinkEK { get; set; }
public string? Status { get; set; }
public string? WorkGroup { 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; }
//Рабочая группа из 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; }

View File

@@ -20,6 +20,14 @@ namespace PARR.DAL.Models
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))]
public Tnk? Tnk { get; set; }

View File

@@ -93,7 +93,7 @@ namespace PARR.EsppTemplateSync.Services
//else
// logger.LogInformation($"----- Создана запись Template {esppTemplate.Name}({esppTemplate.ShortDescription}) -----");
//---
logger.LogWarning($"----- Найден шаблон ЕСПП незарегистрированный в ПАРР {esppTemplate.Name}({esppTemplate.ShortDescription}) -----");
logger.LogWarning($"----- Найден шаблон ЕСПП незарегистрированный в ПАРР {esppTemplate.Name}({esppTemplate.ApplicationsInWork?.Work?.ShortDescription}) -----");
}
else
{
@@ -124,15 +124,15 @@ namespace PARR.EsppTemplateSync.Services
if (isChanged)
{
logger.LogInformation($"----- Запись в ЕСПП отличается от Template {esppTemplate.Name}({esppTemplate.ShortDescription}) -----");
logger.LogInformation($"----- Запись в ЕСПП отличается от Template {esppTemplate.Name}({esppTemplate.ApplicationsInWork?.Work?.ShortDescription}) -----");
//template.Status = "Updating";
template.StatusCode = (int)StatusTemplateEnum.Updating;
if (!await templateService.CommitAsync())
logger.LogError($"Не удалось обновить запись Template {esppTemplate.Name}({esppTemplate.ShortDescription})");
logger.LogError($"Не удалось обновить запись Template {esppTemplate.Name}({esppTemplate.ApplicationsInWork?.Work?.ShortDescription})");
else
logger.LogInformation($"----- Требуется обновление шаблона в ЕСПП роботом {esppTemplate.Name}({esppTemplate.ShortDescription}) -----");
logger.LogInformation($"----- Требуется обновление шаблона в ЕСПП роботом {esppTemplate.Name}({esppTemplate.ApplicationsInWork?.Work?.ShortDescription}) -----");
}
else
{
@@ -143,7 +143,7 @@ namespace PARR.EsppTemplateSync.Services
template.StatusCode = (int)StatusTemplateEnum.Ok;
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,
Name = name,
IsActive = bool.Parse(isActive),
WorkGroup = workGroup,
ShortDescription = shortDescription,
Category = category,
ResponseArea = responseArea,
Duration = duration,
EK = ek,
Initiator = initiator,
FullDescription = fullDescription,
ClosingCode = closingCode,
Solution = solution,
Process = process,
SubProcess = subProcess,
TNK = tnk,
Work = work,
Worker = worker,
//WorkGroup = workGroup,
//ShortDescription = shortDescription,
//Category = category,
//ResponseArea = responseArea,
//Duration = duration,
//EK = ek,
//Initiator = initiator,
//FullDescription = fullDescription,
//ClosingCode = closingCode,
//Solution = solution,
//Process = process,
//SubProcess = subProcess,
//TNK = tnk,
//Work = work,
//Worker = worker,
//Status = "Checking"
StatusCode = (int)StatusTemplateEnum.Ok
};

View File

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