private void GetRunners()
 {
     if (SelectedRace != null)
     {
         if (SelectedRace.SelectedMarket != null)
         {
             var marketId = SelectedRace.SelectedMarket.MarketId;
             Console.WriteLine("Market {0} Selected", marketId);
             var marketCatalogue = service.GetMarketCatalogueForMarket(marketId, MarketProjection.RUNNER_METADATA);
             this.race = new MatchedBetRace();
             this.race.MarketId = marketId;
             this.race.MarketName = string.Format("{0} - {1}", selectedEvent.Name, selectedRace.RaceTitle);
             var runnerList = new ObservableCollection<MarketSelectorRunnerViewModel>();
             if (marketCatalogue.Any())
             {
                 foreach(var runner in marketCatalogue[0].Runners)
                 {
                     var runnerVM = new MatchedBetRunner()
                     {
                         SelectionId = runner.SelectionId,
                         RunnerName = runner.RunnerName,
                         SortPriority = runner.SortPriority,
                         ClothNumber = runner.Metadata.ContainsKey("CLOTH_NUMBER") ?
                                         runner.Metadata["CLOTH_NUMBER"] : "-"
                     };
                     race.Runners.Add(runnerVM);
                     runnerList.Add(new MarketSelectorRunnerViewModel(runnerVM));
                 }
             }
             this.Summary = new MarketSelectorSummaryViewModel(this.race.MarketName, runnerList);
             RaisePropertyChanged(() => ShowSummary);
         }
     }
 }
        private void GetRaces()
        {
            var races = new ObservableCollection<MarketSelectorRaceViewModel>();
            if (SelectedEvent != null)
            {
                var catalogue = service.GetMarketCatalogueForEvent(this.selectedEvent.EventId).OrderBy(mc => mc.Description.MarketTime);

                DateTime? currentTime = null;
                MarketSelectorRaceViewModel race = null;
                foreach (var market in catalogue)
                {
                    if (currentTime == null || currentTime != market.Description.MarketTime)
                    {
                        race = new MarketSelectorRaceViewModel();
                        race.StartTime = market.Description.MarketTime;
                        races.Add(race);
                        currentTime = race.StartTime;
                    }

                    if (race != null && market.Description.MarketType == "WIN")
                    {
                        race.Distance = market.MarketName;

                        var raceMarket = new MarketSelectorMarketViewModel();
                        raceMarket.MarketId = market.MarketId;
                        raceMarket.MarketName = "Win";
                        race.Markets.Add(raceMarket);
                    }
                }
            }
            this.Races = races;
            this.SelectedRace = this.Races.Any() ? this.Races[0] : null;
            RaisePropertyChanged(() => ShowRaces);
        }