From 5ee8c619ec7fb5112557d1f8f4a6002eada7987d Mon Sep 17 00:00:00 2001 From: Sebastian Date: Wed, 30 Sep 2020 14:37:18 +0200 Subject: [PATCH] Rule fixes. --- .../Rules/IRuleEnqueuer.cs | 2 +- .../Rules/RuleDomainObject.cs | 2 +- .../Rules/RuleEnqueuer.cs | 48 +++++++++---------- .../Squidex/Config/Orleans/OrleansServices.cs | 2 +- .../Rules/RuleDomainObjectTests.cs | 2 +- .../Rules/RuleEnqueuerTests.cs | 2 +- 6 files changed, 29 insertions(+), 29 deletions(-) diff --git a/backend/src/Squidex.Domain.Apps.Entities/Rules/IRuleEnqueuer.cs b/backend/src/Squidex.Domain.Apps.Entities/Rules/IRuleEnqueuer.cs index 0a06a363e..76615f166 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Rules/IRuleEnqueuer.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Rules/IRuleEnqueuer.cs @@ -14,6 +14,6 @@ namespace Squidex.Domain.Apps.Entities.Rules { public interface IRuleEnqueuer { - Task Enqueue(Rule rule, Guid ruleId, Envelope @event); + Task EnqueueAsync(Rule rule, Guid ruleId, Envelope @event); } } \ No newline at end of file diff --git a/backend/src/Squidex.Domain.Apps.Entities/Rules/RuleDomainObject.cs b/backend/src/Squidex.Domain.Apps.Entities/Rules/RuleDomainObject.cs index b5310a537..2be7ad683 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Rules/RuleDomainObject.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Rules/RuleDomainObject.cs @@ -100,7 +100,7 @@ namespace Squidex.Domain.Apps.Entities.Rules var @event = SimpleMapper.Map(command, new RuleManuallyTriggered { RuleId = Snapshot.Id, AppId = Snapshot.AppId }); - await ruleEnqueuer.Enqueue(Snapshot.RuleDef, Snapshot.Id, Envelope.Create(@event)); + await ruleEnqueuer.EnqueueAsync(Snapshot.RuleDef, Snapshot.Id, Envelope.Create(@event)); return null; } diff --git a/backend/src/Squidex.Domain.Apps.Entities/Rules/RuleEnqueuer.cs b/backend/src/Squidex.Domain.Apps.Entities/Rules/RuleEnqueuer.cs index aa883e68c..fc01ca334 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Rules/RuleEnqueuer.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Rules/RuleEnqueuer.cs @@ -50,46 +50,46 @@ namespace Squidex.Domain.Apps.Entities.Rules this.localCache = localCache; } - public async Task Enqueue(Rule rule, Guid ruleId, Envelope @event) + public async Task EnqueueAsync(Rule rule, Guid ruleId, Envelope @event) { Guard.NotNull(rule, nameof(rule)); Guard.NotNull(@event, nameof(@event)); - using (localCache.StartContext()) - { - var jobs = await ruleService.CreateJobsAsync(rule, ruleId, @event); + var jobs = await ruleService.CreateJobsAsync(rule, ruleId, @event); - foreach (var (job, ex) in jobs) + foreach (var (job, ex) in jobs) + { + if (ex != null) { - if (ex != null) - { - await ruleEventRepository.EnqueueAsync(job, null); + await ruleEventRepository.EnqueueAsync(job, null); - await ruleEventRepository.UpdateAsync(job, new RuleJobUpdate - { - JobResult = RuleJobResult.Failed, - ExecutionResult = RuleResult.Failed, - ExecutionDump = ex.ToString(), - Finished = job.Created - }); - } - else + await ruleEventRepository.UpdateAsync(job, new RuleJobUpdate { - await ruleEventRepository.EnqueueAsync(job, job.Created); - } + JobResult = RuleJobResult.Failed, + ExecutionResult = RuleResult.Failed, + ExecutionDump = ex.ToString(), + Finished = job.Created + }); + } + else + { + await ruleEventRepository.EnqueueAsync(job, job.Created); } } } public async Task On(Envelope @event) { - if (@event.Payload is AppEvent appEvent) + using (localCache.StartContext()) { - var rules = await GetRulesAsync(appEvent.AppId.Id); - - foreach (var ruleEntity in rules) + if (@event.Payload is AppEvent appEvent) { - await Enqueue(ruleEntity.RuleDef, ruleEntity.Id, @event); + var rules = await GetRulesAsync(appEvent.AppId.Id); + + foreach (var ruleEntity in rules) + { + await EnqueueAsync(ruleEntity.RuleDef, ruleEntity.Id, @event); + } } } } diff --git a/backend/src/Squidex/Config/Orleans/OrleansServices.cs b/backend/src/Squidex/Config/Orleans/OrleansServices.cs index 080301dd3..41ec6a8ce 100644 --- a/backend/src/Squidex/Config/Orleans/OrleansServices.cs +++ b/backend/src/Squidex/Config/Orleans/OrleansServices.cs @@ -59,10 +59,10 @@ namespace Squidex.Config.Orleans options.HostSelf = false; }); + builder.AddIncomingGrainCallFilter(); builder.AddIncomingGrainCallFilter(); builder.AddIncomingGrainCallFilter(); builder.AddIncomingGrainCallFilter(); - builder.AddIncomingGrainCallFilter(); builder.AddIncomingGrainCallFilter(); var orleansPortSilo = config.GetOptionalValue("orleans:siloPort", 11111); diff --git a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/RuleDomainObjectTests.cs b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/RuleDomainObjectTests.cs index dd049faae..9ebc25b89 100644 --- a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/RuleDomainObjectTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/RuleDomainObjectTests.cs @@ -165,7 +165,7 @@ namespace Squidex.Domain.Apps.Entities.Rules Assert.Null(result); - A.CallTo(() => ruleEnqueuer.Enqueue(sut.Snapshot.RuleDef, sut.Id, + A.CallTo(() => ruleEnqueuer.EnqueueAsync(sut.Snapshot.RuleDef, sut.Id, A>.That.Matches(x => x.Payload is RuleManuallyTriggered))) .MustHaveHappened(); } diff --git a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/RuleEnqueuerTests.cs b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/RuleEnqueuerTests.cs index 72e6fef39..2b111bc95 100644 --- a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/RuleEnqueuerTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/RuleEnqueuerTests.cs @@ -86,7 +86,7 @@ namespace Squidex.Domain.Apps.Entities.Rules A.CallTo(() => ruleService.CreateJobsAsync(rule.RuleDef, rule.Id, @event, true)) .Returns(new List<(RuleJob, Exception?)> { (job, null) }); - await sut.Enqueue(rule.RuleDef, rule.Id, @event); + await sut.EnqueueAsync(rule.RuleDef, rule.Id, @event); A.CallTo(() => ruleEventRepository.EnqueueAsync(job, now, default)) .MustHaveHappened();