public ProgramAddition Populate(ProgramAddition programChanges, RaceDayKey raceDay, BetTypeCode product)
        {
            if (product.IsVGame())
            {
                PopulateVxyStatistics(programChanges, raceDay, product);
            }
            else if (product == BetTypeCode.DD)
            {
                PopulateDdStatistics(programChanges, raceDay, product);
            }

            return(programChanges);
        }
        private void PopulateVxyStatistics(ProgramAddition programChanges, RaceDayKey raceDay, BetTypeCode product)
        {
            IList <int> raceNumbers = _raceDayServiceGateway.GetRaceNumbersForPool(raceDay, product);
            IList <RaceInvestmentDistribution> raceInvestmentDistributions = _raceDayServiceGateway.GetInvestmentDistribution(raceDay, product);

            foreach (var raceNumber in raceNumbers)
            {
                IList <WinOdds> winOddses = _raceDayServiceGateway.GetWinOdds(raceDay, raceNumber);

                programChanges.RaceBetStatistics.Add(new RaceBetStatistics
                {
                    RaceNumber        = raceNumber,
                    OddsAndInvestment = CreateStartBetStatistics(winOddses, raceInvestmentDistributions.SingleOrDefault(r => r.RaceNumber == raceNumber))
                });
            }
        }
        private void PopulateDdStatistics(ProgramAddition programChanges, RaceDayKey raceDay, BetTypeCode product)
        {
            IList <int> raceNumbers = _raceDayServiceGateway.GetRaceNumbersForPool(raceDay, product);

            foreach (var raceNumber in raceNumbers)
            {
                IList <WinOdds>   winOdds   = _raceDayServiceGateway.GetWinOdds(raceDay, raceNumber);
                IList <PlaceOdds> placeOdds = _raceDayServiceGateway.GetPlaceOdds(raceDay, raceNumber);

                programChanges.RaceBetStatistics.Add(new RaceBetStatistics
                {
                    RaceNumber        = raceNumber,
                    OddsAndInvestment = CreateStartBetStatistics(winOdds, placeOdds)
                });
            }
        }