protected void AddExecutor(
            bool defaultExecutor = false)
        {
            _currentExecutorSettings
            .ExecuteConditions = _conditionalQueueBuilder.GetFuncIfConditions();

            if (defaultExecutor)
            {
                _conditionalQueueBuilder.SetDefault(
                    _currentExecutorSettings,
                    _currentContainer);
            }
            else
            {
                _conditionalQueueBuilder.Enque(
                    _currentExecutorSettings,
                    _currentContainer);
            }

            if (_executeIf)
            {
                _conditionalQueueBuilder.RemoveIfCondition();
                _executeIf = false;
            }

            _skipCurrentExecutor     = false;
            _currentContainer        = null;
            _currentExecutorSettings = null;
        }
 protected void SetExecutor(
     Func <M, IPipeCache, PipeResult <R> > executor,
     bool isDefault = false)
 {
     _skipCurrentExecutor     = false;
     _currentContainer        = new AsyncFuncCacheContainer <M, R>(executor);
     _currentExecutorSettings = isDefault
          ? new ExecutorSettings <M, R> {
         Label = "Default"
     }
          : new ExecutorSettings <M, R>();
 }
 protected void SetExecutor(
     Func <IAsyncExecutor <M, R> > executor,
     bool isDefault = false)
 {
     _skipCurrentExecutor     = false;
     _currentContainer        = new AsyncExecutorContainer <M, R>(executor);
     _currentExecutorSettings = isDefault
          ? new ExecutorSettings <M, R> {
         Label = "Default"
     }
          : new ExecutorSettings <M, R>();
 }
Beispiel #4
0
        public async Task <T> GetStaticSettings <T>(int settingID)
            where T : class
        {
            ExecutorSettings settings = default(ExecutorSettings);

            try
            {
                settings = await GetStaticSettingsByID(settingID);
            }
            catch
            {
                _staticSettings.TryRemove(settingID, out var _);
                throw;
            }

            return(settings.GetDeserialized <T>());
        }
Beispiel #5
0
        protected bool IfBreak(
            ExecutorSettings <M, R> settings,
            PipeResult <R> result)
        {
            if (settings.FailedBreak &&
                result.Success == ExecutionResult.Failed &&
                result.Break)
            {
                return(true);
            }

            if (settings.OkBreak &&
                result.Success == ExecutionResult.Successful &&
                result.Break)
            {
                return(true);
            }

            return(false);
        }
Beispiel #6
0
 protected bool IfConditions(ExecutorSettings <M, R> settings, M model)
 {
     return(settings.ExecuteConditions.HasValue
         ? settings.ExecuteConditions.Value.All(x => x(model))
         : true);
 }