Browse Source

Add early-exit guard for states with no non-batch checkers in batch path

pull/25276/head
maliming 6 months ago
parent
commit
3c52892db0
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 6
      framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/SimpleStateCheckerManager.cs

6
framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/SimpleStateCheckerManager.cs

@ -69,9 +69,13 @@ public class SimpleStateCheckerManager<TState> : ISimpleStateCheckerManager<TSta
} }
} }
var hasNonBatchGlobalCheckers = Options.GlobalStateCheckers
.Any(x => !typeof(ISimpleBatchStateChecker<TState>).IsAssignableFrom(x));
foreach (var state in states) foreach (var state in states)
{ {
if (result[state]) if (result[state] &&
(hasNonBatchGlobalCheckers || state.StateCheckers.Any(x => x is not ISimpleBatchStateChecker<TState>)))
{ {
result[state] = await EvaluateCheckersAsync(state, false, scope); result[state] = await EvaluateCheckersAsync(state, false, scope);
} }

Loading…
Cancel
Save