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);
                }
            }
        }
Пример #2
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);
        }