Пример #1
0
        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);
        }
Пример #2
0
        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();
        }
Пример #3
0
 public CatalogLoaderWithCache(ICatalogLoader catalogLoader) => _innerLoader = catalogLoader;
Пример #4
0
 public CommandContext(ConsoleUi ui, ICatalogLoader catalogLoader, ShoppingCart shoppingCart)
 {
     Ui           = ui;
     Loader       = catalogLoader;
     ShoppingCart = shoppingCart;
 }