Example #1
0
        public ActionPipe GetActionPipe()
        {
            var mainPipe = new ActionPipe
            {
                ThreadPool       = ThreadPool,
                WorkItemPriority = WorkItemPriority,
                OnException      = OnException
            };

            PrepareActionPipe(mainPipe);

            var taskPipe = new ActionPipe
            {
                ThreadPool       = mainPipe.ThreadPool,
                WorkItemPriority = mainPipe.WorkItemPriority,
                OnException      = mainPipe.OnException
            };

            taskPipe.Pipe(() => PerformStart = DateTime.Now);
            taskPipe.Pipe(BeforeActionPipe);
            taskPipe.Pipe(mainPipe);
            taskPipe.Pipe(() =>
            {
                PerformEnd      = DateTime.Now;
                PerformDuration = PerformEnd - PerformStart;
            });
            taskPipe.Pipe(MakeReport);
            taskPipe.Pipe(AfterActionPipe);

            return(taskPipe);
        }
Example #2
0
 protected override void PrepareActionPipe(ActionPipe actionPipe)
 {
     actionPipe.Pipe(Preconditions.CheckNotNull(OnExecute));
 }