фикс MockData и немного сервисов

This commit is contained in:
Mikhail Kuznetsov
2023-09-20 14:48:58 +10:00
parent f9fe762cbe
commit c04c2e1085
12 changed files with 234 additions and 231 deletions

View File

@@ -33,7 +33,12 @@ namespace PARR.DAL
services.AddTransient<IApplicationService, ApplicationService>(); services.AddTransient<IApplicationService, ApplicationService>();
services.AddTransient<IApplicationTypeService, ApplicationTypeService>(); services.AddTransient<IApplicationTypeService, ApplicationTypeService>();
services.AddTransient<IApplicationInHostService, ApplicationInHostService>(); services.AddTransient<IApplicationInHostService, ApplicationInHostService>();
services.AddTransient<IApplicationInWorkService,ApplicationInWorkService>(); services.AddTransient<IApplicationsInWorkService, ApplicationsInWorkService>();
services.AddTransient<IWorkService, WorkService>();
services.AddTransient<IApplicationService, ApplicationService>();
services.AddTransient<IProcessService, ProcessService>();
services.AddTransient<ISubprocessService, SubprocessService>();
services.AddTransient<ITnkService, TnkService>();
services.AddTransient<V1_IApplicationService, V1_ApplicationService>(); services.AddTransient<V1_IApplicationService, V1_ApplicationService>();
services.AddTransient<V1_IApplicationTypeService, V1_ApplicationTypeService>(); services.AddTransient<V1_IApplicationTypeService, V1_ApplicationTypeService>();
services.AddTransient<V1_IApplicationInHostService, V1_ApplicationInHostService>(); services.AddTransient<V1_IApplicationInHostService, V1_ApplicationInHostService>();

View File

@@ -7,12 +7,12 @@ using PARR.DAL.Services.Interfaces;
namespace PARR.DAL.Services.Implementations namespace PARR.DAL.Services.Implementations
{ {
internal class ApplicationInWorkService : BaseService<ApplicationsInWork>, IApplicationInWorkService internal class ApplicationsInWorkService : BaseService<ApplicationsInWork>, IApplicationsInWorkService
{ {
private readonly DataContext dataContext; private readonly DataContext dataContext;
private readonly ILogger<ApplicationInWorkService> logger; private readonly ILogger<ApplicationsInWorkService> logger;
public ApplicationInWorkService(DataContext dataContext, ILogger<ApplicationInWorkService> logger) : base(logger) public ApplicationsInWorkService(DataContext dataContext, ILogger<ApplicationsInWorkService> logger) : base(logger)
{ {
this.dataContext = dataContext; this.dataContext = dataContext;
this.logger = logger; this.logger = logger;

View File

@@ -0,0 +1,24 @@
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 ProcessService : BaseService<Process>, IProcessService
{
private readonly ILogger<ProcessService> logger;
private readonly DataContext dataContext;
public ProcessService(ILogger<ProcessService> logger, DataContext dataContext) : base(logger)
{
this.logger = logger;
this.dataContext = dataContext;
}
protected override DbSet<Process> EntitySet => dataContext.Processes;
protected override DataContext EntitiContext => dataContext;
}
}

View File

@@ -0,0 +1,24 @@
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 SubprocessService : BaseService<Subprocess>, ISubprocessService
{
private readonly ILogger<SubprocessService> logger;
private readonly DataContext dataContext;
public SubprocessService(ILogger<SubprocessService> logger, DataContext dataContext) : base(logger)
{
this.logger = logger;
this.dataContext = dataContext;
}
protected override DbSet<Subprocess> EntitySet => dataContext.Subprocesses;
protected override DataContext EntitiContext => dataContext;
}
}

View File

@@ -0,0 +1,24 @@
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 TnkService : BaseService<Tnk>, ITnkService
{
private readonly ILogger<TnkService> logger;
private readonly DataContext dataContext;
public TnkService(ILogger<TnkService> logger, DataContext dataContext) : base(logger)
{
this.logger = logger;
this.dataContext = dataContext;
}
protected override DbSet<Tnk> EntitySet => dataContext.Tnks;
protected override DataContext EntitiContext => dataContext;
}
}

View File

@@ -0,0 +1,25 @@
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 WorkService : BaseService<Work>, IWorkService
{
private readonly DataContext dataContext;
private readonly ILogger<WorkService> logger;
public WorkService(DataContext dataContext, ILogger<WorkService> logger) : base(logger)
{
this.dataContext = dataContext;
this.logger = logger;
}
protected override DbSet<Work> EntitySet => dataContext.Works;
protected override DataContext EntitiContext => dataContext;
}
}

View File

@@ -0,0 +1,9 @@
using PARR.DAL.Models;
using PARR.DAL.Services.Interfaces.Base;
namespace PARR.DAL.Services.Interfaces
{
public interface IApplicationsInWorkService : IBaseService<ApplicationsInWork>
{
}
}

View File

@@ -3,7 +3,7 @@ using PARR.DAL.Services.Interfaces.Base;
namespace PARR.DAL.Services.Interfaces namespace PARR.DAL.Services.Interfaces
{ {
public interface IApplicationInWorkService : IBaseService<ApplicationsInWork> public interface IProcessService : IBaseService<Process>
{ {
} }
} }

View File

@@ -0,0 +1,9 @@
using PARR.DAL.Models;
using PARR.DAL.Services.Interfaces.Base;
namespace PARR.DAL.Services.Interfaces
{
public interface ISubprocessService : IBaseService<Subprocess>
{
}
}

View File

@@ -0,0 +1,9 @@
using PARR.DAL.Models;
using PARR.DAL.Services.Interfaces.Base;
namespace PARR.DAL.Services.Interfaces
{
public interface ITnkService : IBaseService<Tnk>
{
}
}

View File

@@ -0,0 +1,9 @@
using PARR.DAL.Models;
using PARR.DAL.Services.Interfaces.Base;
namespace PARR.DAL.Services.Interfaces
{
public interface IWorkService : IBaseService<Work>
{
}
}

View File

@@ -1,5 +1,5 @@
using Microsoft.Extensions.Logging; using Microsoft.EntityFrameworkCore;
using PARR.DAL.Contracts; using Microsoft.Extensions.Logging;
using PARR.DAL.Models; using PARR.DAL.Models;
using PARR.DAL.Services.Interfaces; using PARR.DAL.Services.Interfaces;
@@ -9,243 +9,108 @@ namespace PARR.MockData.Services
{ {
private readonly ILogger<TemplatesInitializer> logger; private readonly ILogger<TemplatesInitializer> logger;
private readonly ITemplateService templateService; private readonly ITemplateService templateService;
private readonly IProcessService processService;
private readonly ISubprocessService subprocessService;
private readonly ITnkService tnkService;
private readonly IWorkService workService;
public TemplatesInitializer( public TemplatesInitializer(
ILogger<TemplatesInitializer> logger, ILogger<TemplatesInitializer> logger,
ITemplateService templateService ITemplateService templateService,
IProcessService processService,
ISubprocessService subprocessService,
ITnkService tnkService,
IWorkService workService
) )
{ {
this.logger = logger; this.logger = logger;
this.templateService = templateService; this.templateService = templateService;
this.processService = processService;
this.subprocessService = subprocessService;
this.tnkService = tnkService;
this.workService = workService;
} }
public async Task InitAsync() public async Task InitAsync()
{ {
var templates = new List<Template>() { var process = await processService.Get().FirstOrDefaultAsync(p => p.EsppId == 202);
new Template{ if (process == null)
Id=Guid.NewGuid(), {
DateCreated=DateTimeOffset.UtcNow, process = new Process
//EK="ВРТ-VMWARE-ДВС", {
IsActive=true, Id = Guid.NewGuid(),
//WorkGroup="СМЕНА-ПТК-ДВС", DateCreated = DateTimeOffset.UtcNow,
//ShortDescription="ПАРР-ДВС-ПТК СМЕНА-УСТАНОВКА ОБНОВЛЕНИЙ ОС", Name = "ПТК Выполнение регламентных работ (О3.2.2.4)",
//Category="регламентная работа", EsppId = 202,
//Process="ЦВК Выполнение регламентных работ (О3.2.2.3)", };
//SubProcess="ЦВК Выполнение регламентных работ (О3.2.2.3)", if (!await processService.CreateAsync(process) || !await processService.CommitAsync())
//ClosingCode="выполнен", {
//Duration="3 00:00:00", logger.LogError($"Не удалось создать process {process.Name}");
//FullDescription="Установка обновлений ОС серверов средней и низ-кой критичности.", return;
//Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)", }
Name="ПАРР-ДВС-ПТК СМЕНА-УСТАНОВКА ОБНОВЛЕНИЙ ОС", else
//ResponseArea="96-ДВС", logger.LogInformation($"----- Создан process: {process.Name} -----");
//Solution="Установка обновлений ОС серверов средней и низкой критичности.", }
//TNK="",
//Work="",
//Worker="",
StatusCode = (int)StatusTemplateEnum.Creating,
//ApplicationInWorkId=ApplicationsInWork.
}, var subprocess = await subprocessService.Get().FirstOrDefaultAsync(p => p.EsppId == 202);
//new Template{ if (subprocess == null)
// Id=Guid.NewGuid(), {
// DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:38.992903+00"), subprocess = new Subprocess
// EK="КОМПЛЕКСЫ-ДВС", {
// IsActive=true, Id = Guid.NewGuid(),
// WorkGroup="СМЕНА-ПТК-ДВС", DateCreated = DateTimeOffset.UtcNow,
// ShortDescription="ДВС-ПТК СМЕНА-РАБОТА С ИЗМЕНЕНИЯМИ-2", Name = "ПТК Выполнение регламентных работ (О3.2.2.4)",
// Category="регламентная работа", EsppId = 202,
// Process="ПТК Выполнение регламентных работ (О3.2.2.4)", ProcessId = process.Id,
// SubProcess="ПТК Выполнение регламентных работ (О3.2.2.4)", };
// ClosingCode="выполнен", if (!await subprocessService.CreateAsync(subprocess) || !await subprocessService.CommitAsync())
// Duration="3 00:00:00", {
// FullDescription="Работа с изменениями. Проверка плана обновлений ПО серверов. Проверка создания и согласования изменений для обновления ПО серверов низкой и средней критичности.", logger.LogError($"Не удалось создать subprocess {subprocess.Name}");
// Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)", return;
// Name="ПАРР-ДВС-ПТК СМЕНА-РАБОТА С ИЗМЕНЕНИЯМИ-2", }
// ResponseArea="96-ДВС", else
// Solution="Работа с изменениями. Проверка плана обновлений ПО серверов. Проверка создания и согласования изменений для обновления ПО серверов низкой и средней критичности.", logger.LogInformation($"----- Создан subprocess: {subprocess.Name} -----");
// TNK="", }
// Work="",
// Worker="",
// StatusCode = (int)StatusTemplateEnum.Creating
//}, var tnk = await tnkService.Get().FirstOrDefaultAsync(p => p.EsppId == 292454);
//new Template if (tnk == null)
//{ {
// Id=Guid.NewGuid(), tnk = new Tnk
// DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:38.981423+00"), {
// EK="ВРТ-VMWARE-ДВС", Id = Guid.NewGuid(),
// IsActive=true, DateCreated = DateTimeOffset.UtcNow,
// WorkGroup="СМЕНА-ПТК-ДВС", Name = "ППО Анализ прикладных журналов серверов приложений (О3.2.2.4)",
// ShortDescription="ДВС-ПТК СМЕНА-Проверка СРК VMWare", EsppId = 292454,
// Category="регламентная работа", SubprocessId = subprocess.Id
// Process="ЦВК Выполнение регламентных работ (О3.2.2.3)", };
// SubProcess="ЦВК Выполнение регламентных работ (О3.2.2.3)", if (!await tnkService.CreateAsync(tnk) || !await tnkService.CommitAsync())
// ClosingCode="выполнен", {
// Duration="3 00:00:00", logger.LogError($"Не удалось создать tnk {tnk.Name}");
// FullDescription="Проверка резервного копирования серверов в VMware.", return;
// Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)", }
// Name="ПАРР-ДВС-ПТК СМЕНА-ПРОВЕРКА СРК VMWARE", else
// ResponseArea="96-ДВС", logger.LogInformation($"----- Создан tnk: {tnk.Name} -----");
// Solution="Проверка резервного копирования серверов в VMware.", }
// TNK="ТО-1 Мониторинг и анализ работы виртуального центра Vmware (ежедневные) (О3.2.2.3) - виртуальный комплекс",
// Work="ТО-1 Мониторинг и анализ работы виртуального центра Vmware (ежедневные) (О3.2.2.3)",
// Worker="",
// StatusCode = (int)StatusTemplateEnum.Creating
//}, var work = await workService.Get().FirstOrDefaultAsync(p => p.EsppId == 292454);
//new Template if (work == null)
//{ {
// Id=Guid.NewGuid(), work = new Work
// DateCreated=DateTimeOffset.Parse("2023-09-15 00:14:38.966595+00"), {
// EK="КОМПЛЕКСЫ-ДВС", Id = Guid.NewGuid(),
// IsActive=true, DateCreated = DateTimeOffset.UtcNow,
// WorkGroup="СМЕНА-ПТК-ДВС", Name = "ППО Анализ прикладных журналов серверов приложений (О3.2.2.4)",
// ShortDescription="ДВС-ПТК СМЕНА-ПРОВЕРКА СВОБОДНОГО МЕСТА НА ДИСКАХ", EsppId = 292454,
// Category="регламентная работа", TnkId = tnk.Id
// Process="ЦВК Выполнение регламентных работ (О3.2.2.3)", };
// SubProcess="ЦВК Выполнение регламентных работ (О3.2.2.3)", if (!await workService.CreateAsync(work) || !await workService.CommitAsync())
// ClosingCode="выполнен", {
// Duration="3 00:00:00", logger.LogError($"Не удалось создать work {work.Name}");
// FullDescription="Проверка свободного места на дисках серверов", return;
// Initiator="ГУСЬКОВ АНДРЕЙ СЕРГЕЕВИЧ (IVC_GUSKOVAS@DVGD.OAO.RZD)", }
// Name="ПАРР-ДВС-ПТК СМЕНА-ПРОВЕРКА СВОБОДНОГО МЕСТА НА ДИСКАХ", else
// ResponseArea="96-ДВС", logger.LogInformation($"----- Создан work: {work.Name} -----");
// 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.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} -----");
//}
} }
} }
} }