diff --git a/src/Squidex.Domain.Apps.Core.Operations/HandleRules/RuleService.cs b/src/Squidex.Domain.Apps.Core.Operations/HandleRules/RuleService.cs index 211c5d380..18329060a 100644 --- a/src/Squidex.Domain.Apps.Core.Operations/HandleRules/RuleService.cs +++ b/src/Squidex.Domain.Apps.Core.Operations/HandleRules/RuleService.cs @@ -56,6 +56,11 @@ namespace Squidex.Domain.Apps.Core.HandleRules Guard.NotNull(rule, nameof(rule)); Guard.NotNull(@event, nameof(@event)); + if (!rule.IsEnabled) + { + return null; + } + if (!(@event.Payload is AppEvent appEvent)) { return null; diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Operations/HandleRules/RuleServiceTests.cs b/tests/Squidex.Domain.Apps.Core.Tests/Operations/HandleRules/RuleServiceTests.cs index b9811bf86..f21de9c6b 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Operations/HandleRules/RuleServiceTests.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/Operations/HandleRules/RuleServiceTests.cs @@ -253,5 +253,18 @@ namespace Squidex.Domain.Apps.Core.Operations.HandleRules Assert.Equal((ruleError.ToString(), RuleResult.Failed, TimeSpan.Zero), result); } + + [Fact] + public async Task Should_not_create_if_rule_disabled() + { + var ruleConfig = new Rule(new ContentChangedTrigger(), new ValidAction()); + var ruleEnvelope = Envelope.Create(new ContentCreated()); + + ruleConfig = ruleConfig.Disable(); + + var job = await sut.CreateJobAsync(ruleConfig, ruleEnvelope); + + Assert.Null(job); + } } -} \ No newline at end of file +}