private async Task OnAddToFavoritesCommandExecuted(object arg1, object arg2)
        {
            TrackingData     trackingData = (TrackingData)arg2;
            StopAndRoutePair stopAndRoute = trackingData.StopAndRoute;

            var trackingDataViewModel = this.MainPage.ViewModel as ITrackingDataViewModel;

            if (trackingDataViewModel != null)
            {
                if (trackingData.IsFavorite)
                {
                    // Un-favorite all routes that match this tracking data:
                    foreach (var currentTrackingData in trackingDataViewModel.RealTimeData)
                    {
                        if (string.Equals(trackingData.RouteId, currentTrackingData.RouteId, StringComparison.OrdinalIgnoreCase) &&
                            string.Equals(trackingData.StopId, currentTrackingData.StopId, StringComparison.OrdinalIgnoreCase))
                        {
                            currentTrackingData.IsFavorite = false;
                        }
                    }

                    await Favorites.RemoveAsync(stopAndRoute);
                }
                else
                {
                    foreach (var currentTrackingData in trackingDataViewModel.RealTimeData)
                    {
                        if (string.Equals(trackingData.RouteId, currentTrackingData.RouteId, StringComparison.OrdinalIgnoreCase) &&
                            string.Equals(trackingData.StopId, currentTrackingData.StopId, StringComparison.OrdinalIgnoreCase))
                        {
                            currentTrackingData.IsFavorite = true;
                        }
                    }

                    await Favorites.AddAsync(stopAndRoute);
                }

                await Favorites.PersistAsync();
            }
        }