protected virtual async Task <bool> InternalIsEnabledAsync(TState state, bool useBatchChecker) { using (var scope = ServiceProvider.CreateScope()) { var context = new SimpleStateCheckerContext <TState>(scope.ServiceProvider.GetRequiredService <ICachedServiceProvider>(), state); foreach (var provider in state.StateCheckers.WhereIf(!useBatchChecker, x => x is not ISimpleBatchStateChecker <TState>)) { if (!await provider.IsEnabledAsync(context)) { return(false); } } foreach (ISimpleStateChecker <TState> provider in Options.GlobalStateCheckers .WhereIf(!useBatchChecker, x => !typeof(ISimpleBatchStateChecker <TState>).IsAssignableFrom(x)) .Select(x => ServiceProvider.GetRequiredService(x))) { if (!await provider.IsEnabledAsync(context)) { return(false); } } return(true); } }
public async Task <bool> IsEnabledAsync(SimpleStateCheckerContext <TState> context) { return((await IsEnabledAsync(new SimpleBatchStateCheckerContext <TState>(context.ServiceProvider, new[] { context.State }))).Values.All(x => x)); }
public Task <bool> IsEnabledAsync(SimpleStateCheckerContext <SimpleStateCheckerTestBase.MyStateEntity> context) { context.State.GlobalCheckCount += 1; return(Task.FromResult(context.State.LastModificationTime.HasValue)); }
public Task <bool> IsEnabledAsync(SimpleStateCheckerContext <SimpleStateCheckerTestBase.MyStateEntity> context) { context.State.CheckCount += 1; return(Task.FromResult(context.State.CreationTime > DateTime.Parse("2020-01-01", CultureInfo.InvariantCulture))); }