示例#1
0
        public static void Main(string[] args)
        {
            var baseFilter = new HotslogsFilter
            {
                Mode         = (GameMode)Enum.Parse(typeof(GameMode), Settings.Default.BaseWinrateGameMode),
                LookbackDays = Settings.Default.BaseWinrateNumberOfDays > 0 ? Settings.Default.BaseWinrateNumberOfDays : (int?)null
            };
            var adjFilter = new HotslogsFilter
            {
                Mode         = (GameMode)Enum.Parse(typeof(GameMode), Settings.Default.AdjustmentsGameMode),
                LookbackDays = Settings.Default.AdjustmentsNumberOfDays > 0 ? Settings.Default.AdjustmentsNumberOfDays : (int?)null
            };
            var stats = StatisticsCollection.FromHotslogsExport(Settings.Default.HotsLogsExportPath, baseFilter, adjFilter);

            stats.SerializeToFile(Settings.Default.ExtractDestinationPath);
        }
        private void DoLoad()
        {
            Ready = false;
            Task <StatisticsCollection> loadTask;

            if (Settings.Default.UseRawHotslogsExport)
            {
                loadTask = Task.Factory.StartNew(() =>
                {
                    var baseFilter = new HotslogsFilter
                    {
                        Mode         = (GameMode)Enum.Parse(typeof(GameMode), Settings.Default.BaseWinrateGameMode),
                        LookbackDays = Settings.Default.BaseWinrateNumberOfDays > 0 ? Settings.Default.BaseWinrateNumberOfDays : (int?)null
                    };
                    var adjFilter = new HotslogsFilter
                    {
                        Mode         = (GameMode)Enum.Parse(typeof(GameMode), Settings.Default.AdjustmentsGameMode),
                        LookbackDays = Settings.Default.AdjustmentsNumberOfDays > 0 ? Settings.Default.AdjustmentsNumberOfDays : (int?)null
                    };
                    return(StatisticsCollection.FromHotslogsExport(Settings.Default.HotsLogsExportPath, baseFilter, adjFilter));
                });
            }
            else
            {
                loadTask = Task.Factory.StartNew(() => StatisticsCollection.DeserializeFromFile(Settings.Default.DraftDataPath));
            }

            loadTask.ContinueWith(r =>
            {
                Ready = true;
                if (r.IsFaulted)
                {
                    LoadError = "Failed to load: " + r.Exception.Message;
                }
                else if (r.IsCompleted)
                {
                    LoadError = null;
                    _stats    = r.Result;
                    ReInit();
                }
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }