static void LoadTrainerAndJockeyStats(StarterCollection sc)
        {
            var accumulators = new Dictionary<string, StatisticDataAccumulator>();

            foreach (var starter in sc)
            {
                string key = MakeTrainerJockeyKey(starter.Trainer, starter.Jockey);

                if(!accumulators.ContainsKey(key))
                {
                    accumulators.Add(key, new StatisticDataAccumulator());
                }

                accumulators[key].Add(starter);
            }

            foreach (var key in accumulators.Keys)
            {
                if(_globalStatsPerTrainerAndJockey.ContainsKey(key))
                {
                    _globalStatsPerTrainerAndJockey.Remove(key);
                }

                _globalStatsPerTrainerAndJockey.Add(key, FactorStatistic.Make(accumulators[key]));

            }
        }
        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));
        }
Ejemplo n.º 3
0
 void UpdateDisplay()
 {
     this.Text = string.Format("Trainer: {0} Factor {1}", _horse.CorrespondingBrisHorse.TrainersFullName, _selectedFactorStatistic.Name);
     _startersForSpecifiedBitMask = StarterCollection.Make(_allStarters, _selectedFactorStatistic.BitMask);
     LoadGrid();
     _tbTrainerName.Text = _horse.CorrespondingBrisHorse.TrainersFullName;
     _tbFactorName.Text = _selectedFactorStatistic.Name;
     _tbMCLWinPercent.Text = string.Format("{0:0.00}", GetWinPercent(RaceType.MCL | RaceType.DIRT | RaceType.TURF));
     _tbMSWWinPercent.Text = string.Format("{0:0.00}", GetWinPercent(RaceType.MSW | RaceType.DIRT | RaceType.TURF));
     _tbStakesWinPercent.Text = string.Format("{0:0.00}", GetWinPercent(RaceType.STAKES | RaceType.DIRT | RaceType.TURF));
     _tbALWWinPercent.Text = string.Format("{0:0.00}", GetWinPercent(RaceType.ALW | RaceType.DIRT | RaceType.TURF));
     _tbCLMWinPercent.Text = string.Format("{0:0.00}", GetWinPercent(RaceType.CLM | RaceType.DIRT | RaceType.TURF));
     _tbDirtWinPercent.Text = string.Format("{0:0.00}", GetWinPercent(RaceType.MCL | RaceType.MSW | RaceType.STAKES | RaceType.ALW | RaceType.CLM | RaceType.DIRT));
     _tbTurfWinPercent.Text = string.Format("{0:0.00}", GetWinPercent(RaceType.MCL | RaceType.MSW | RaceType.STAKES | RaceType.ALW | RaceType.CLM | RaceType.TURF));
     LoadSummariesGrid();
 }
        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)));
        }
Ejemplo n.º 5
0
 private void FactorStatsPerTrainerForm_Load(object sender, EventArgs e)
 {
     _allStarters = StarterCollection.Make(_horse.CorrespondingBrisHorse.TrainersFullName, _selectedFactorStatistic.BitMask);
     UpdateFactorStatsGrid();
     UpdateDisplay();
 }