Статусы ЭК вынесены из Hosts. Добавлен фильтр по статусам эк в генератор.

This commit is contained in:
Mikhail Trubnikov
2023-09-25 15:32:22 +10:00
parent 322ac75111
commit 59eb80a0b4
14 changed files with 1844 additions and 20 deletions

View File

@@ -44,9 +44,10 @@ namespace PARR.GeneratorTemplates
// logger.LogInformation($"Привет откуда надо!!! ${msg}");
// //todo: идем дальеш!
//string msg = "{\"WorkId\":\"91219bec-e5f7-4a1a-b4c9-c135035d2498\",\"ApplicationId\":\"13044a1f-fa0c-476f-b501-2b8d06bac9f8\",\"Action\":\"create\",\"Ek\":\"вРТ-*RZD\"}";
string msg = "{\"WorkId\":\"91219bec-e5f7-4a1a-b4c9-c135035d2498\",\"ApplicationId\":\"13044a1f-fa0c-476f-b501-2b8d06bac9f8\",\"Action\":\"create\",\"Ek\":\"*ДВС\"}";
//string msg = "{\"WorkId\":\"91219bec-e5f7-4a1a-b4c9-c135035d2498\",\"ApplicationId\":\"13044a1f-fa0c-476f-b501-2b8d06bac9f8\",\"Action\":\"deactivate\",\"Ek\":\"*\"}";
// string msg = "{\"WorkId\":\"91219bec-e5f7-4a1a-b4c9-c135035d2498\",\"ApplicationId\":\"13044a1f-fa0c-476f-b501-2b8d06bac9f8\",\"Action\":\"create\",\"Ek\":\"ВРТ*ДВС\",\"StatusEk\":0}";
string msg = "{\"WorkId\":\"91219bec-e5f7-4a1a-b4c9-c135035d2498\",\"ApplicationId\":\"13044a1f-fa0c-476f-b501-2b8d06bac9f8\",\"Action\":\"deactivate\",\"Ek\":\"ВРТ*ДВС\",\"StatusEk\":0}";
await GenerateTemplates(msg);
// // проверить как ту дела с асинком

View File

@@ -38,13 +38,12 @@ namespace PARR.GeneratorTemplates.Services
string ekPattern = SqlHelpers.RegexToLike(query.Ek);
// список хостов для создания шаблонов
var hosts = await hostService.Get()
var queryHosts = hostService.Get()
.Include(t => t.ApplicationsInHosts)
.ThenInclude(t => t.Application).ThenInclude(t => t!.ApplicationsInWorks).ThenInclude(w => w.Work)
.Include(t => t.Templates)
.ThenInclude(w => w.ApplicationsInWork)
.Where(t =>
//TODO: add status ЭК
t.ApplicationsInHosts.Any(h =>
h.ApplicationId == query.ApplicationId
&& h.Application!.ApplicationsInWorks.Any(w => w.WorkId == query.WorkId)
@@ -52,9 +51,15 @@ namespace PARR.GeneratorTemplates.Services
&& EF.Functions.Like(t.Ek.ToLower(), ekPattern)
// смотрим что нет такого шаблона
&& t.Templates.Any(templ => templ.ApplicationsInWork!.WorkId == query.WorkId && templ.ApplicationsInWork.ApplicationId == query.ApplicationId) == false
)
.AsSplitQuery()
.ToListAsync();
);
// статус ЭК
if (query.StatusEk > 0)
queryHosts = queryHosts.Where(t => t.EkStatusCode == query.StatusEk);
var hosts = await queryHosts
.AsSplitQuery()
.ToListAsync();
if (!hosts.Any())
{
@@ -104,17 +109,23 @@ namespace PARR.GeneratorTemplates.Services
// делаем sql формат для like из запроса.
string ekPattern = SqlHelpers.RegexToLike(query.Ek);
var existTemplates = await templateService.Get()
var queryTemplates = templateService.Get()
.Include(t => t.Host)
.Include(t => t.ApplicationsInWork)
.Where(t =>
t.IsActive == true
&& t.ApplicationsInWork!.ApplicationId == query.ApplicationId
&& t.ApplicationsInWork!.WorkId == query.WorkId
//TODO: add status ЭК
&& EF.Functions.Like(t.Host!.Ek.ToLower(), ekPattern)
)
.ToListAsync();
);
// статус ЭК
if (query.StatusEk > 0)
queryTemplates = queryTemplates.Where(t => t.Host!.EkStatusCode == query.StatusEk);
var existTemplates = await queryTemplates
.AsSplitQuery()
.ToListAsync();
if (!existTemplates.Any())
{