// GET: Home
        public async Task<ActionResult> Index()
        {
            //add event subscriptions
            EventSubscriptions.Add<EmailOrderConfirmation>();
            EventSubscriptions.Add<NotifyWarehouse>();
            EventSubscriptions.Add<DeductOnHandInventory>();

            //publish
            IEventPublisher eventPublisher = new EventPublisherLibrary.EventPublisher(new EventSubscriptions());
            await eventPublisher.PublishAsync<OrderSubmittedEvent>(new OrderSubmittedEvent { OrderId = Guid.NewGuid().ToString() });
            await eventPublisher.PublishAsync<OrderSubmittedEvent>(new OrderSubmittedEvent { OrderId = Guid.NewGuid().ToString() });

            return Content("OK");
        }
        // GET: Home
        public async Task <ActionResult> Index()
        {
            //add event subscriptions
            EventSubscriptions.Add <EmailOrderConfirmation>();
            EventSubscriptions.Add <NotifyWarehouse>();
            EventSubscriptions.Add <DeductOnHandInventory>();

            //publish
            IEventPublisher eventPublisher = new EventPublisherLibrary.EventPublisher(new EventSubscriptions());
            await eventPublisher.PublishAsync <OrderSubmittedEvent>(new OrderSubmittedEvent { OrderId = Guid.NewGuid().ToString() });

            await eventPublisher.PublishAsync <OrderSubmittedEvent>(new OrderSubmittedEvent { OrderId = Guid.NewGuid().ToString() });

            return(Content("OK"));
        }