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 })); }
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); }
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); }