feat(templateGeneratorWorker): ci/cd, основной метод вынесен в отдельный класс.
This commit is contained in:
86
PARR.TemplateGeneratorWorker/TemplateGenerator.cs
Normal file
86
PARR.TemplateGeneratorWorker/TemplateGenerator.cs
Normal file
@@ -0,0 +1,86 @@
|
||||
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using PARR.BLL.Domain.Mq;
|
||||
using PARR.BLL.Services.Interfaces;
|
||||
using PARR.Common.Domain;
|
||||
using PARR.Constants;
|
||||
using PARR.DAL.DomainServices.Interfaces;
|
||||
using PARR.DAL.Models;
|
||||
using PARR.DAL.Models.Job;
|
||||
using PARR.DAL.Models.Unit;
|
||||
using PARR.DAL.Services.Interfaces;
|
||||
using PARR.DAL.Services.Interfaces.Job;
|
||||
using PARR.TemplateGeneratorWorker.Services;
|
||||
|
||||
namespace PARR.TemplateGeneratorWorker
|
||||
{
|
||||
internal class TemplateGenerator : ITemplateGenerator
|
||||
{
|
||||
private readonly ILogger<TemplateGenerator> logger;
|
||||
private readonly ITransformService transformService;
|
||||
private readonly IValidatorService validatorService;
|
||||
private readonly IJobService jobService;
|
||||
private readonly IShortcodesService shortcodesService;
|
||||
private readonly ITemplateService templateService;
|
||||
|
||||
public TemplateGenerator(
|
||||
ILogger<TemplateGenerator> logger,
|
||||
ITransformService transformService,
|
||||
IValidatorService validatorService,
|
||||
IJobService jobService,
|
||||
IShortcodesService shortcodesService,
|
||||
ITemplateService templateService
|
||||
)
|
||||
{
|
||||
this.logger = logger;
|
||||
this.transformService = transformService;
|
||||
this.validatorService = validatorService;
|
||||
this.jobService = jobService;
|
||||
this.shortcodesService = shortcodesService;
|
||||
this.templateService = templateService;
|
||||
}
|
||||
public async Task GenerateTemplateAsync(string msg)
|
||||
{
|
||||
logger.LogInformation($"Получили запрос: {msg}");
|
||||
|
||||
var query = transformService.GetModelFromJson<TemplateGeneratorWorkerMq>(msg);
|
||||
|
||||
if (query == null)
|
||||
return;
|
||||
|
||||
if (!await validatorService.IsValidAsync(query.JobId, query.UnitId))
|
||||
{
|
||||
logger.LogError($"Некорректные параметры регламентной работы или Unit {nameof(Job)}: {query.JobId}, {nameof(Unit)}: {query.UnitId}");
|
||||
return;
|
||||
}
|
||||
|
||||
var job = await jobService
|
||||
.Get().AsNoTracking()
|
||||
.FirstOrDefaultAsync(t => t.Id == query.JobId);
|
||||
|
||||
var templateName = await shortcodesService.ApplyShortcodesAsync(job!.TemplateNameMask!, query.UnitId, query.JobId);
|
||||
|
||||
var template = new Template
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
Name = templateName,
|
||||
UnitId = query.UnitId,
|
||||
JobId = query.JobId,
|
||||
IsActiveTemplate = query.IsActiveTemplate ?? false,
|
||||
IsActiveSchedule = query.IsActiveSchedule ?? false,
|
||||
InitiatorComment = query.HistoryInitiator?.InitiatorComment,
|
||||
InitiatorParrComponentId = query.HistoryInitiator?.InitiatorParrComponentId
|
||||
};
|
||||
|
||||
if (!await templateService.CreateAsync(template) || !await templateService.CommitAsync(new HistoryInitiator { InitiatorComment = "Запрос на генерацию с тестового шаблона", InitiatorParrComponentId = ParrComponentsEnum.TemplateGenerator }))
|
||||
{
|
||||
logger.LogError($"Ошибка при создании шаблона: Name: {template.Name}, {nameof(template.Job)}: {template.Job}, {nameof(template.Unit)}: {template.UnitId}");
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.LogInformation($"Создан шаблон: Name: {template.Name}, {nameof(template.Job)}: {template.JobId}, {nameof(template.Unit)}: {template.UnitId}");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user