feat(templateMatcher): Приоритет автоконтроля JobGroup>Job при создании/переиспользовании шаблона
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
using PARR.Domain.Entities.JobEntities;
|
||||
using PARR.Domain.Entities.JobGroupEntities;
|
||||
|
||||
namespace PARR.TemplateMatcher.Services.Implementations
|
||||
{
|
||||
/// <summary>
|
||||
/// Определяет начальные статусы шаблона и расписания на основе типа группы работ.
|
||||
/// Если IsJobGroupAutoControl == true → берём из JobGroup.AutoControl.
|
||||
/// Иначе → берём из Job.AutoControl.
|
||||
/// </summary>
|
||||
public static class AutoControlResolver
|
||||
{
|
||||
public static (bool IsActiveTemplate, bool IsActiveSchedule) ResolveInitStates(
|
||||
Job job,
|
||||
JobGroup? jobGroup,
|
||||
bool defaultTemplateState = false,
|
||||
bool defaultScheduleState = false)
|
||||
{
|
||||
// Тип группы определяет источник настроек
|
||||
var isGroupLevel = jobGroup?.GroupType?.IsJobGroupAutoControl == true;
|
||||
|
||||
if (isGroupLevel && jobGroup!.AutoControl != null)
|
||||
{
|
||||
return (
|
||||
jobGroup.AutoControl.InitUsedTemplateState,
|
||||
jobGroup.AutoControl.InitUsedScheduleState
|
||||
);
|
||||
}
|
||||
|
||||
if (!isGroupLevel && job.AutoControl != null)
|
||||
{
|
||||
return (
|
||||
job.AutoControl.InitUsedTemplateState,
|
||||
job.AutoControl.InitUsedScheduleState
|
||||
);
|
||||
}
|
||||
|
||||
return (defaultTemplateState, defaultScheduleState);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user