Example #1
0
 private void ConfigurePipeLine()
 {
     _pipeLine = _pipeLineBuilder
                 .UseHandler(_criticalAndCancelExceptionHandler)
                 .UseHandler(_fileDaleteHandler)
                 .UseHandler(_fileSendHandler)
                 .Build();
 }
Example #2
0
        public void SetNext(IPipeLineHandler <TContext> nextHandler)
        {
            if (nextHandler == null)
            {
                throw new ArgumentNullException(nameof(nextHandler), "Next handler cannot be null");
            }

            if (nextHandler == this)
            {
                throw new ArgumentException("Next handler cannot be same handler", nameof(nextHandler));
            }

            Next = nextHandler.ExecuteAsync;
        }
Example #3
0
        public PipeLineTask <TContext> Build()
        {
            if (!_handlers.Any())
            {
                throw new EmptyCollectionException("Need one or more handlers");
            }

            var handler = _handlers[0];
            PipeLineTask <TContext> pieLineTask = handler.ExecuteAsync;

            foreach (var nextHandler in _handlers.Skip(1))
            {
                handler.SetNext(nextHandler);
                handler = nextHandler;
            }

            Clear();

            return(pieLineTask);
        }