public CommandManager(ConsoleUi ui, ICatalogLoader catalogLoader, ShoppingCart shoppingCart) { _nextCommands = new Dictionary <Type, ICommand[]> { { ShowCatalogCmd.GetType(), new[] { AddToCartCmd, ExitCmd } }, { ExitCmd.GetType(), new ICommand[0] }, { AddToCartCmd.GetType(), new[] { ShowCatalogCmd, AddToCartCmd, ExitCmd } }, }; _commandContext = new CommandContext(ui, catalogLoader, shoppingCart); }
public static void Main() { // Configure Application (config file + service init) UI = new ConsoleUi(Console.Out); CatalogLoader = new CatalogLoaderWithCache(new CatalogLoader()); //var shoppingCart = new ShoppingCart(new SimplePricer()); var shoppingCart = new ShoppingCart(new DiscountPricer()); CommandParser = new CommandParser(Console.In); CommandManager = new CommandManager(UI, CatalogLoader, shoppingCart); MainLoop().Wait(); }
public CatalogLoaderWithCache(ICatalogLoader catalogLoader) => _innerLoader = catalogLoader;
public CommandContext(ConsoleUi ui, ICatalogLoader catalogLoader, ShoppingCart shoppingCart) { Ui = ui; Loader = catalogLoader; ShoppingCart = shoppingCart; }