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); }
protected override void PrepareActionPipe(ActionPipe actionPipe) { actionPipe.Pipe(Preconditions.CheckNotNull(OnExecute)); }