Exemple #1
0
        public static FilledClientOrder CalClientOrder(ClientOrder clientOrder)
        {
            FilledClientOrder filledClientOrder = new FilledClientOrder();

            try
            {
                foreach (var oneMediaOrder in clientOrder.GetList())
                {
                    if (AllMediaBundles.allBundles.ContainsKey(oneMediaOrder.MediaType))
                    {
                        FilledMediaOrder filledMediaOrder = MediaOrderCalculator.CalMediaOrder(oneMediaOrder);
                        filledClientOrder.AddFilledMediaOrder(filledMediaOrder);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }

            return(filledClientOrder);
        }
Exemple #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Please input your orders like '10 IMG'");
            Console.WriteLine("Input 'OK' in a new line to complete");
            List <string> orders  = new List <string>();
            string        oneLine = Console.ReadLine();

            while (oneLine.ToUpper() != "OK")
            {
                orders.Add(oneLine.ToUpper());
                oneLine = Console.ReadLine();
            }

            ClientOrder clientOrder = new ClientOrder();

            foreach (var one in orders)
            {
                string[] strOrders = one.Split(' ');
                if (strOrders.Length < 2)
                {
                    continue;
                }
                int posts = 0;
                int.TryParse(strOrders[0], out posts);
                if (posts > 0)
                {
                    MediaOrder mediaOrder = new MediaOrder(strOrders[1].ToUpper(), posts);
                    clientOrder.AddMediaOrder(mediaOrder);
                }
            }
            InitAllMediaBundleItem.Run();
            FilledClientOrder filledClientOrder = ClientOrderCalculator.CalClientOrder(clientOrder);

            Console.WriteLine("\nThe result is......\n");
            Console.WriteLine(filledClientOrder.GetResutlStr());

            Console.ReadKey();
        }
        public void CalClientOrderTest()
        {
            InitAllMediaBundleItem.Run();
            ClientOrder cli = new ClientOrder();

            cli.AddMediaOrder(new MediaOrder("IMG", 28));
            cli.AddMediaOrder(new MediaOrder("FLAC", 28));
            cli.AddMediaOrder(new MediaOrder("VID", 28));
            FilledClientOrder actual = ClientOrderCalculator.CalClientOrder(cli);

            Assert.IsTrue(actual.GetBundles(0).SequenceEqual(new List <int> {
                3, 0
            }));
            Assert.IsTrue(actual.GetBundles(1).SequenceEqual(new List <int> {
                3, 0, 1
            }));
            Assert.IsTrue(actual.GetBundles(2).SequenceEqual(new List <int> {
                2, 2, 0
            }));

            Assert.AreEqual(actual.GetList()[0].offset, 2);
            Assert.AreEqual(actual.GetList()[1].offset, 2);
            Assert.AreEqual(actual.GetList()[2].offset, 0);
        }