#pragma warning disable IDE0060 // Remove unused parameter static void Main(string[] args) #pragma warning restore IDE0060 // Remove unused parameter { ProductController = new ProductController(); ConsoleController = new ConsoleController(); //Start the employee screen var employeeScreen = new IO.EmployeeConsole(); var orderPrinter = new IO.OrderPrinter(); //Setup till-specific instances var tillDrawer = new TillDrawer(DefaultCashSet()); var inputHandler = new EventHandlers.InputHandler(); var paymentcontroller = new PaymentController(tillDrawer); var cart = new ShoppingCart(ProductController, paymentcontroller); var orderControler = new OrderController(); //Subscribe to events //Listeners to EmployeeScreen employeeScreen.InputRequested += inputHandler.GetAndHandleInput; //Listeners to inputhandler inputHandler.BarcodeScanned += cart.EditCart; inputHandler.ProgramClosing += HandleEmployeeTillClosing; inputHandler.CartContentRequested += cart.DisplayCartContent; inputHandler.PaymentStarted += cart.StartPayment; inputHandler.InstructionsRequested += employeeScreen.PrintInstructions; inputHandler.TillContentRequested += paymentcontroller.TillDrawer.PrintContents; inputHandler.OrderRequested += orderControler.DisplayOrder; inputHandler.CatalogueRequested += ProductController.PrintCatalogue; //Listeners to ShoppingCart cart.CartContentChanged += ConsoleController.PrintNewItem; cart.ChangeRequested += paymentcontroller.DetermineChange; cart.PaymentCompleted += orderPrinter.PrintOrder; cart.PaymentCompleted += cart.ResetContent; //Listeners to paymentcontroller paymentcontroller.ChangeFound += ConsoleController.Print; paymentcontroller.PaymentPossible += cart.FinalizeTransaction; //Start the process employeeScreen.PrintInstructions(); while (runProcess) { employeeScreen.GetInput(); } }
public PaymentController(TillDrawer tillDrawer) { this.TillDrawer = tillDrawer; }