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