示例#1
0
        public void Run()
        {
            var products = new List <ProductDTO>
            {
                new ProductDTO {
                    Code = "A", RetailPrice = 1.25m, VolumePrice = 3m, VolumeQuantity = 3
                },
                new ProductDTO {
                    Code = "B", RetailPrice = 4.25m
                },
                new ProductDTO {
                    Code = "C", RetailPrice = 1m, VolumePrice = 5m, VolumeQuantity = 6
                },
                new ProductDTO {
                    Code = "D", RetailPrice = 0.75m
                }
            };

            terminal.SetPricing(products);
            terminal.Scan("A");
            terminal.Scan("B");
            terminal.Scan("C");
            terminal.Scan("D");
            terminal.Scan("A");
            terminal.Scan("B");
            terminal.Scan("A");

            Console.WriteLine($"ABCDABA = 13.25? Result: {terminal.CalculateTotal()}");

            Console.ReadLine();
        }
示例#2
0
 private static void SetDefaultPrices(IPointOfSaleTerminal terminal)
 {
     terminal.SetPricing("A", 1.25m);
     terminal.SetPricing("A", 3, 3m);
     terminal.SetPricing("B", 4.25m);
     terminal.SetPricing("C", 1m);
     terminal.SetPricing("C", 6, 5m);
     terminal.SetPricing("D", 0.75m);
 }
示例#3
0
        private static void Init()
        {
            var productA = new ProductA();
            var productB = new ProductB();
            var productC = new ProductC();
            var productD = new ProductD();

            List <Product> products = new List <Product> {
                productA, productB, productC, productD
            };

            PointOfSale = new POS(products);
            Terminal    = new Terminal(PointOfSale);

            Utils.DoSafe(() =>
            {
                Terminal.SetPricing(productA.Code, (decimal)1.25d);
            });

            Utils.DoSafe(() =>
            {
                Terminal.SetPricing(productA.Code, (decimal)3.00d, 3);
            });

            Utils.DoSafe(() =>
            {
                Terminal.SetPricing(productB.Code, (decimal)4.25d);
            });

            Utils.DoSafe(() =>
            {
                Terminal.SetPricing(productC.Code, (decimal)1.00d);
            });

            Utils.DoSafe(() =>
            {
                Terminal.SetPricing(productC.Code, (decimal)5.00d, 6);
            });

            Utils.DoSafe(() =>
            {
                Terminal.SetPricing(productD.Code, (decimal)0.75d);
            });
        }