42 lines
1.5 KiB
C#
42 lines
1.5 KiB
C#
using PARR.Domain.Entities.JobEntities;
|
|
using PARR.Domain.Entities.JobGroupEntities;
|
|
|
|
namespace PARR.TemplateMatcher.Services
|
|
{
|
|
/// <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);
|
|
}
|
|
}
|
|
}
|