Files
parr_api/PARR.TemplateMatcher/Services/Implementations/AutoControlResolver.cs

42 lines
1.5 KiB
C#

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);
}
}
}