public void Execute(MetaChain instructions) { IProcessor <ProcessItem> chain = GenerateChain(instructions); if (chain.Initialize()) { chain.Execute(instructions.ToProcessItem()); chain.Teardown(); } }
private IProcessor <ProcessItem> GenerateChain(MetaChain instructions) { List <IProcessor <ProcessItem> > list = new List <IProcessor <ProcessItem> >(); foreach (var item in list) { IProcessor <ProcessItem> p = Factory.Create(item) as IProcessor <ProcessItem>; } IProcessor <ProcessItem> head = GenerateChain(list); return(head); }
public static ProcessItem ToProcessItem(this MetaChain chain) { ProcessItem item = new ProcessItem() { Parameters = new List <ProcessParameter>(), Settings = chain.Settings.Clone(), }; foreach (var param in chain.Parameters) { var p = param.Clone(); item.Parameters.Add(p); } return(item); }