/// <summary>
        /// Main
        /// </summary>
        /// <param name="args"></param>
        public static void Main(string[] args)
        {
            // Initial Sku defined
            var listSku = InitialSetup.InitializeSku();
            Dictionary <string, int> skuUnit = new Dictionary <string, int>();

            Console.WriteLine("Enter the scenario with comma separated value eg: 3A,2B,1C");
            Console.WriteLine("Make sure to enter combination values with % specifiier eg: 1C%1D");

            string scenario = Console.ReadLine();

            // Get all the values from the config file
            foreach (string value in scenario.Split(","))
            {
                if (!value.Contains("%"))
                {
                    skuUnit.Add(value.Substring(value.Length - 1), Convert.ToInt32(value.Substring(0, value.Length - 1)));
                }
                else
                {
                    // In case of value contains % then set it 0 and get it from calculation
                    skuUnit.Add(value, 0);
                }
            }

            // Get the price from the CalculatePromotion
            double totalPrice = CalculatePromotion(skuUnit, listSku);

            Console.WriteLine("Price for the Listed Items are:" + totalPrice);

            Console.ReadLine();
        }
示例#2
0
        public void TestScenarioC()
        {
            // Initial Sku defined
            var listSku = InitialSetup.InitializeSku();
            Dictionary <string, int> skuUnit = new Dictionary <string, int>();

            // Input Scenario
            var scenario = "3A,5B,1C%1D";

            AddScenarioToDictionary(skuUnit, scenario);

            Dictionary <string, int> dictConfigValue = new Dictionary <string, int>();

            dictConfigValue.Add("3A", 130);
            dictConfigValue.Add("2B", 45);
            dictConfigValue.Add("1C%1D", 30);

            // Act
            double totalPrice = Program.CalculatePricingAlgorithm(skuUnit, listSku, 0, dictConfigValue);

            // Assert
            Assert.AreEqual(280, totalPrice);
        }