public static void Run() { AllMediaBundles.allBundles = new SortedDictionary <string, MediaBundles>(); List <string> sections = IniHelper.ReadSections(); foreach (var FormatType in sections) { List <SingleBundle> bundleTempList = new List <SingleBundle>(); List <string> keys = IniHelper.ReadKeys(FormatType); foreach (var one in keys) { string value = IniHelper.ReadValue(FormatType, one); int posts = 0; double charge = 0; if (int.TryParse(one, out posts) && double.TryParse(value, out charge)) { SingleBundle bundleEntity = new SingleBundle(posts, charge); if (!bundleTempList.Contains(bundleEntity)) { bundleTempList.Add(bundleEntity); } } else { Console.WriteLine("error occured while getting bundles from ini "); } } MediaBundles mediaBundles = new MediaBundles(FormatType); mediaBundles.BundleList = bundleTempList; mediaBundles.SortListByDecend(); if (!AllMediaBundles.allBundles.ContainsKey(FormatType) && bundleTempList.Count > 0) { AllMediaBundles.allBundles.Add(FormatType, mediaBundles); } } }
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); }