refactor(templateActivator): оптимизация кода
This commit is contained in:
@@ -91,13 +91,13 @@ internal class TemplateActivator : ITemplateActivator
|
||||
);
|
||||
changes = await UpdateScheduleStateAsync(query, false);
|
||||
break;
|
||||
case TemplateActivatorActionsEnum.ActivateAllForAutoControl:
|
||||
logger.LogInformation($"Получен запрос на активацию шаблонов и расписаний, для ЭК удовлетворяющим условиям автоконтроля");
|
||||
changes = await CoordinateJobsWithAutoControl(applicationInWorkId, query, true);
|
||||
break;
|
||||
case TemplateActivatorActionsEnum.DeactivateAllForAutoControl:
|
||||
logger.LogInformation($"Получен запрос на деактивацию шаблонов и расписаний, для ЭК неудовлетворяющим условиям автоконтроля");
|
||||
changes = await CoordinateJobsWithAutoControl(applicationInWorkId, query, false);
|
||||
changes = await CoordinateJobsWithAutoControlAsync(applicationInWorkId, query, false);
|
||||
break;
|
||||
case TemplateActivatorActionsEnum.ActivateAllForAutoControl:
|
||||
logger.LogInformation($"Получен запрос на активацию шаблонов и расписаний, для ЭК удовлетворяющим условиям автоконтроля");
|
||||
changes = await CoordinateJobsWithAutoControlAsync(applicationInWorkId, query, true);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -109,12 +109,15 @@ internal class TemplateActivator : ITemplateActivator
|
||||
logger.LogDebug($"{GetType().Name} изменил состояние шаблонов/расписаний({changes}) регламентной работы Id {applicationInWorkId}");
|
||||
}
|
||||
|
||||
private async Task<int> CoordinateJobsWithAutoControl(Guid applicationInWorkId, IQueryable<Template> query, bool isActivate)
|
||||
private async Task<int> CoordinateJobsWithAutoControlAsync(Guid applicationInWorkId, IQueryable<Template> query, bool isActivate)
|
||||
{
|
||||
var changes = 0;
|
||||
|
||||
//Добавляем информацию о рабочих группах для возможности их фильтрации
|
||||
query = query.Include(t => t.Host).ThenInclude(h => h!.WorkGroup);
|
||||
|
||||
//Получаем настройки авто-контроля
|
||||
var jobAutoControlSettings = await GetJobAutoControlSettings(applicationInWorkId);
|
||||
var jobAutoControlSettings = await GetJobAutoControlSettingsAsync(applicationInWorkId);
|
||||
if (jobAutoControlSettings == null)
|
||||
return 0;
|
||||
|
||||
@@ -129,9 +132,6 @@ internal class TemplateActivator : ITemplateActivator
|
||||
|
||||
//Фильтруем обратное состояние - активированные для деактивации
|
||||
query = FilterTemplatesQueryByWrongState(query, jobAutoControlSettings, isActivate);
|
||||
|
||||
//Добавляем информацию о рабочих группах для возможности их фильтрации
|
||||
query = query.Include(t => t.Host).ThenInclude(h => h!.WorkGroup);
|
||||
|
||||
//Фильтруем по маскам ЭК
|
||||
var templates = FilterTemplatesByNameNotMatchToMasks(query, trueMasks);
|
||||
@@ -159,7 +159,7 @@ internal class TemplateActivator : ITemplateActivator
|
||||
{
|
||||
var appInWorkInWorkGroups = applicationsInWorkService.Get()
|
||||
.Include(aiw => aiw.WorkGroups)
|
||||
.Where(x => x.Id == applicationInWorkId).Select(aiw => aiw.WorkGroups).FirstOrDefault();
|
||||
.FirstOrDefault(t => t.Id == applicationInWorkId)?.WorkGroups;
|
||||
|
||||
if (appInWorkInWorkGroups != null)
|
||||
return appInWorkInWorkGroups.ToList();
|
||||
@@ -190,12 +190,12 @@ internal class TemplateActivator : ITemplateActivator
|
||||
private IQueryable<Template> FilterTemplatesQueryByWrongState(IQueryable<Template> query, JobAutoControl jobAutoControlSettings, bool isActivate)
|
||||
{
|
||||
if (isActivate)
|
||||
return query.Include(t => t.Host).Where(t => t.IsActiveTemplate != jobAutoControlSettings.OnTemplateIsActive || t.IsActiveSchedule != jobAutoControlSettings.OnScheduleIsActive);
|
||||
return query.Where(t => t.IsActiveTemplate != jobAutoControlSettings.OnTemplateIsActive || t.IsActiveSchedule != jobAutoControlSettings.OnScheduleIsActive);
|
||||
|
||||
return query.Include(t => t.Host).Where(t => t.IsActiveTemplate != jobAutoControlSettings.OffTemplateIsActive || t.IsActiveSchedule != jobAutoControlSettings.OffScheduleIsActive);
|
||||
return query.Where(t => t.IsActiveTemplate != jobAutoControlSettings.OffTemplateIsActive || t.IsActiveSchedule != jobAutoControlSettings.OffScheduleIsActive);
|
||||
}
|
||||
|
||||
private async Task<JobAutoControl> GetJobAutoControlSettings(Guid applicationInWorkId)
|
||||
private async Task<JobAutoControl> GetJobAutoControlSettingsAsync(Guid applicationInWorkId)
|
||||
{
|
||||
return await jobAutoControlService.Get()
|
||||
.Include(jac => jac.JobAutoControlInEkStatuses)
|
||||
|
||||
Reference in New Issue
Block a user