static void Main(string[] args) { try { // Sales order example var pipelineContext = new SalesOrderPipelineContext() { StoreRepository = new StoreRepository(), PaymentProcessor = new PaymentProcessor(), }; var modules = from type in Assembly.GetExecutingAssembly().GetTypes() where typeof(ISalesOrder).IsAssignableFrom(type) && !type.IsInterface select type; var backbone = new Backbone <SalesOrderPipelineEvent>(modules); backbone.Execute(pipelineContext); #region purchase /* Purchase example * var purchasePipelineContext = new PurchaseContext() * { * StoreRepository = new StoreRepository(), * PaymentProcessor = new PaymentProcessor(), * }; * * * var backbonePurchase = new Backbone<PurchasePipelineEvent>(new List<Type>(){ typeof(PurchaseOrder), typeof(PurchaseSupplier) }); * * backbonePurchase.Execute(purchasePipelineContext); */ #endregion Console.ReadKey(); } catch (Exception ex) { Console.Write(ex.Message); Console.ReadKey(); } }
public void Logic(SalesOrderPipelineContext context) { context.message = "AdjustInventory"; Console.WriteLine("AdjustInventory"); }