/// <summary> /// Mark the end of this job /// </summary> /// <param name="component">Last component to execute</param> public void End(Component <ComponentOut, JobOut> component) { ComponentWrapper <JobIn, JobOut, ComponentOut, JobOut> wrapperComponent = new ComponentWrapper <JobIn, JobOut, ComponentOut, JobOut>(component); _next = wrapperComponent; }
/// <summary> /// Register a new component to execute after this one /// </summary> /// <typeparam name="TComponentOut">Output type of the component</typeparam> /// <param name="component">Component to add</param> /// <returns>A wrapper to chain components</returns> public ComponentWrapper <JobIn, JobOut, ComponentOut, TComponentOut> Then <TComponentOut>( Component <ComponentOut, TComponentOut> component) { ComponentWrapper <JobIn, JobOut, ComponentOut, TComponentOut> wrappedComponent = new ComponentWrapper <JobIn, JobOut, ComponentOut, TComponentOut>(component); _next = wrappedComponent; return(wrappedComponent); }