static async Task Main(string[] args)
        {
            var options           = new Microsoft.EntityFrameworkCore.DbContextOptions <SalesOrderContext>();
            var salesOrderContext = new SalesOrderContext(options);

            var serviceBusHelper     = new StorageQueueHelper();
            var testFileHelper       = new TextFileHelper();
            var productRepository    = new ProductRepository(testFileHelper);
            var productService       = new ProductService(productRepository);
            var salesOrderRepository = new SalesOrderRepository(salesOrderContext);
            var salesOrderService    = new SalesOrderService(salesOrderRepository);

            var salesOrderProcessor = new SalesOrderProcessor(
                serviceBusHelper, productService, salesOrderService);

            await salesOrderProcessor.Run();
        }
        static async Task Main(string[] args)
        {
            // How manu to create?
            int salesOrderCount = int.Parse(args[0]);

            // Set-up Helpers and Dependencies
            var serviceBusHelper = new StorageQueueHelper();
            var textFileHelper   = new TextFileHelper();

            // Set-up data access
            var options           = new Microsoft.EntityFrameworkCore.DbContextOptions <SalesOrderContext>();
            var salesOrderContext = new SalesOrderContext(options);

            var productRepository    = new ProductRepository(textFileHelper);
            var productService       = new ProductService(productRepository);
            var salesOrderRepository = new SalesOrderRepository(salesOrderContext);

            var consoleLogger = new ConsoleLogger();

            // Process sales orders - will run forever
            var generateSalesOrders = new GenerateSalesOrders(
                serviceBusHelper, productService, consoleLogger);
            await generateSalesOrders.Run(salesOrderCount);
        }