Пример #1
0
        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);
            }
        }
Пример #2
0
 public async Task <bool> IsEnabledAsync(SimpleStateCheckerContext <TState> context)
 {
     return((await IsEnabledAsync(new SimpleBatchStateCheckerContext <TState>(context.ServiceProvider, new[] { context.State }))).Values.All(x => x));
 }
Пример #3
0
 public Task <bool> IsEnabledAsync(SimpleStateCheckerContext <SimpleStateCheckerTestBase.MyStateEntity> context)
 {
     context.State.GlobalCheckCount += 1;
     return(Task.FromResult(context.State.LastModificationTime.HasValue));
 }
Пример #4
0
 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)));
 }