fix(generatorTemplates): добавлена дополнительная проверка, на сущестование в БД шаблонов с таким же именем.
This commit is contained in:
@@ -108,6 +108,11 @@ namespace PARR.GeneratorTemplates.Services
|
|||||||
|
|
||||||
var templates = CreateQueryTemplates(groupingHosts, query);
|
var templates = CreateQueryTemplates(groupingHosts, query);
|
||||||
|
|
||||||
|
//проверяем, что нет шаблонов с такими именами, исключаем их
|
||||||
|
templates = await ExcludeExistTemplatesAsync(templates);
|
||||||
|
if (!templates.Any())
|
||||||
|
continue;
|
||||||
|
|
||||||
//заполняем NextRun
|
//заполняем NextRun
|
||||||
templates = await templateDistributor.DistributeTemplateAsync(templates, appInWorkWg.Id, (Guid)group.Key!);
|
templates = await templateDistributor.DistributeTemplateAsync(templates, appInWorkWg.Id, (Guid)group.Key!);
|
||||||
|
|
||||||
@@ -174,6 +179,27 @@ namespace PARR.GeneratorTemplates.Services
|
|||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Исключаем существующие шаблоны из запроса на создание
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="templates"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private async Task<List<Template>> ExcludeExistTemplatesAsync(List<Template> templates)
|
||||||
|
{
|
||||||
|
// то ли костыль, то ли нет. Иногда попадают отфильтрованные шаблоны для создания, но они уже есть в БД. На всякий проверяем есть они или нет, и если есть, исключаем их из запроса.
|
||||||
|
|
||||||
|
// ищмем по имени такие шаблоны в БД и исключаем их
|
||||||
|
var existTemplates = await templateService.Get().Where(t => templates.Select(x => x.Name).Any(x => x == t.Name)).ToListAsync();
|
||||||
|
|
||||||
|
if (existTemplates.Any())
|
||||||
|
{
|
||||||
|
existTemplates.ForEach(item => logger.LogWarning($"Исключаем из запроса на создание шаблон, так как он уже есть в БД: {item.Name}"));
|
||||||
|
templates = templates.Where(t => !existTemplates.Any(x => x.Name == t.Name)).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
return templates;
|
||||||
|
}
|
||||||
|
|
||||||
private List<Template> CreateQueryTemplates(List<Host> hosts, GeneratorTemplateMq query)
|
private List<Template> CreateQueryTemplates(List<Host> hosts, GeneratorTemplateMq query)
|
||||||
{
|
{
|
||||||
var templates = new List<Template>();
|
var templates = new List<Template>();
|
||||||
|
|||||||
Reference in New Issue
Block a user