Files
parr_api/PARR.MockData/Services/TemplatesInitializer.cs

117 lines
4.6 KiB
C#
Raw Normal View History

using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using PARR.DAL.Models;
using PARR.DAL.Services.Interfaces;
namespace PARR.MockData.Services
{
internal class TemplatesInitializer : ITemplatesInitializer
{
private readonly ILogger<TemplatesInitializer> logger;
private readonly ITemplateService templateService;
private readonly IProcessService processService;
private readonly ISubprocessService subprocessService;
private readonly ITnkService tnkService;
private readonly IWorkService workService;
2023-09-20 11:52:30 +10:00
public TemplatesInitializer(
ILogger<TemplatesInitializer> logger,
ITemplateService templateService,
IProcessService processService,
ISubprocessService subprocessService,
ITnkService tnkService,
IWorkService workService
2023-09-20 11:52:30 +10:00
)
{
this.logger = logger;
this.templateService = templateService;
this.processService = processService;
this.subprocessService = subprocessService;
this.tnkService = tnkService;
this.workService = workService;
}
public async Task InitAsync()
{
var process = await processService.Get().FirstOrDefaultAsync(p => p.EsppId == 202);
if (process == null)
{
process = new Process
{
Id = Guid.NewGuid(),
DateCreated = DateTimeOffset.UtcNow,
Name = "ПТК Выполнение регламентных работ (О3.2.2.4)",
EsppId = 202,
};
if (!await processService.CreateAsync(process) || !await processService.CommitAsync())
{
logger.LogError($"Не удалось создать process {process.Name}");
return;
}
else
logger.LogInformation($"----- Создан process: {process.Name} -----");
}
var subprocess = await subprocessService.Get().FirstOrDefaultAsync(p => p.EsppId == 202);
if (subprocess == null)
{
subprocess = new Subprocess
{
Id = Guid.NewGuid(),
DateCreated = DateTimeOffset.UtcNow,
Name = "ПТК Выполнение регламентных работ (О3.2.2.4)",
EsppId = 202,
ProcessId = process.Id,
};
if (!await subprocessService.CreateAsync(subprocess) || !await subprocessService.CommitAsync())
{
logger.LogError($"Не удалось создать subprocess {subprocess.Name}");
return;
}
else
logger.LogInformation($"----- Создан subprocess: {subprocess.Name} -----");
}
var tnk = await tnkService.Get().FirstOrDefaultAsync(p => p.EsppId == 292917);
if (tnk == null)
{
tnk = new Tnk
{
Id = Guid.NewGuid(),
DateCreated = DateTimeOffset.UtcNow,
Name = "Прочее(работы)",
EsppId = 292917,
SubprocessId = subprocess.Id
};
if (!await tnkService.CreateAsync(tnk) || !await tnkService.CommitAsync())
{
logger.LogError($"Не удалось создать tnk {tnk.Name}");
return;
}
else
logger.LogInformation($"----- Создан tnk: {tnk.Name} -----");
}
var work = await workService.Get().FirstOrDefaultAsync(p => p.EsppId == 292917);
if (work == null)
{
work = new Work
{
Id = Guid.NewGuid(),
DateCreated = DateTimeOffset.UtcNow,
Name = "Прочее(работы)",
EsppId = 292917,
TnkId = tnk.Id
};
if (!await workService.CreateAsync(work) || !await workService.CommitAsync())
{
logger.LogError($"Не удалось создать work {work.Name}");
return;
}
else
logger.LogInformation($"----- Создан work: {work.Name} -----");
}
}
}
}