public void BuyStuff() { IDatabase database = CreateDatabase(); IShoppingService shoppingService = new ShoppingService(database); IOrderProcessor orderProcessor = new OrderProcessor(database); IActionHandler actionHandler = new ActionHandler(); User user = shoppingService.SignIn("*****@*****.**", "secret"); Cart cart = shoppingService.GetCart("*****@*****.**"); Product ball = shoppingService.GetProduct("Ball"); cart.AddProduct(ball); cart.AddProduct(ball); cart.AddProduct(shoppingService.GetProduct("Monitor")); var completedOrder = actionHandler .Handle(() => orderProcessor.CompleteOrder(cart)); var order = completedOrder.Item; if (completedOrder.IsValid) { Console.WriteLine($"Order was completed. You've spent {order.TotalPrice} PLN."); return; } Console.WriteLine(completedOrder.ErrorMessage); }