Skip to content

Commit a499daa

Browse files
committed
Refactor crontab trigger check into HasEnabledTriggerRule method
1 parent ee03d8a commit a499daa

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

src/Infrastructure/BotSharp.Core.Crontab/Services/CrontabService.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@ public async Task ScheduledTimeArrived(CrontabItem item)
116116
{
117117
_logger.LogDebug($"ScheduledTimeArrived {item}");
118118

119+
if (!await HasEnabledTriggerRule(item)) return;
120+
119121
await HookEmitter.Emit<ICrontabHook>(_services, async hook =>
120122
{
121123
if (hook.Triggers == null || hook.Triggers.Contains(item.Title))
@@ -127,4 +129,19 @@ await HookEmitter.Emit<ICrontabHook>(_services, async hook =>
127129
}
128130
}, item.AgentId);
129131
}
132+
133+
private async Task<bool> HasEnabledTriggerRule(CrontabItem item)
134+
{
135+
var agentService = _services.GetRequiredService<IAgentService>();
136+
if(string.IsNullOrEmpty(item.AgentId)) return true;
137+
138+
var agent = await agentService.GetAgent(item.AgentId);
139+
if (agent == null)
140+
{
141+
_logger.LogWarning("Agent {AgentId} is not found", item.AgentId);
142+
return false;
143+
}
144+
145+
return agent.Rules.Any(r => r.TriggerName == item.Title && !r.Disabled);
146+
}
130147
}

0 commit comments

Comments
 (0)