internal static FactorStatistic Make(StatisticDataAccumulator sda) { return new FactorStatistic { BitMask = sda.BitMask, Name = sda.Name, Starters = sda.Starters, Winners = sda.Winners, Roi = sda.Roi, IV = sda.IV }; }
static void LoadJockeyStatsFromDb(string jockeyName) { var starters = new StarterCollection(); starters.LoadStartersForJockey(jockeyName); var globalStats = new StatisticDataAccumulator(); globalStats.Initialize(); starters.ForEach(globalStats.Add); if (_globalStatsPerJockey.ContainsKey(jockeyName)) { _globalStatsPerJockey.Remove(jockeyName); } _globalStatsPerJockey.Add(jockeyName, FactorStatistic.Make(globalStats)); }
static void LoadTrainerStatsFromDb(string trainer) { var starters = new StarterCollection(); starters.LoadStartersForTrainer(trainer); LoadTrainerAndJockeyStats(starters); var globalStats = new StatisticDataAccumulator(); globalStats.Initialize(); starters.ForEach(globalStats.Add); if (_globalStatsPerTrainer.ContainsKey(trainer)) { _globalStatsPerTrainer.Remove(trainer); } _globalStatsPerTrainer.Add(trainer, FactorStatistic.Make(globalStats)); StatisticDataAccumulatorCollection.Singleton.ToList().ForEach(acc=>acc.Initialize()); foreach (var starter in starters) { foreach (var accumulator in StatisticDataAccumulatorCollection.Singleton.Where(accumulator => (starter.FactorsFlag & accumulator.BitMask) != 0)) { accumulator.Add(starter); } } _factorStatsPerTrainer.Add(trainer, StatisticDataAccumulatorCollection.Singleton.ToDictionary(accumulator => accumulator.BitMask, accumulator => FactorStatistic.Make(accumulator))); }