示例#1
0
        public void CalMediaOrderTest()
        {
            InitAllMediaBundleItem.Run();
            FilledMediaOrder filledMediaOrder = MediaOrderCalculator.CalMediaOrder(new MediaOrder("FLAC", 28));

            Assert.AreEqual(filledMediaOrder.offset, 2);

            List <int> actual = filledMediaOrder.filledBundleList.Select(item => item.CountNeeded).ToList();

            Assert.IsTrue(actual.SequenceEqual(new List <int> {
                3, 0, 1
            }));
        }
示例#2
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);
        }
示例#3
0
        public static FilledMediaOrder CalMediaOrder(MediaOrder mediaOrderItem)
        {
            MediaBundles     mediaBundles     = AllMediaBundles.allBundles[mediaOrderItem.MediaType];
            FilledMediaOrder filledMediaOrder = new FilledMediaOrder(mediaOrderItem.MediaType, mediaOrderItem.TargetPosts);

            try
            {
                FilledResult filledResult = MiniumBundleCalculator.CalBundles(mediaOrderItem.TargetPosts, mediaBundles.BundleList.Select(item => item.PostsCount).ToList());
                filledMediaOrder.offset = filledResult.Offset;

                for (int i = 0; i < filledResult.filledNumbers.Count; i++)
                {
                    FilledSingleBundle filledSingleBundle = new FilledSingleBundle(mediaBundles.BundleList[i]);
                    filledSingleBundle.CountNeeded = filledResult.filledNumbers[i];
                    filledMediaOrder.filledBundleList.Add(filledSingleBundle);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }

            return(filledMediaOrder);
        }