Статусы ЭК вынесены из 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

@@ -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())
{