private void ExecuteQueueFavorite(IEnumerable list) { var favorites = list.OfType <Favorite>(); foreach (var favorite in favorites) { var favoriteHandler = FavoriteHandlers.FirstOrDefault(f => f.CanHandleFavorite(favorite)); if (favoriteHandler != null) { favoriteHandler.Queue(favorite); ToastService.Show(new ToastData { Message = "Favorite queued", Icon = AppIcons.Add }); } else { ToastService.Show("Unable to queue favorite"); Logger.Log("Unable to find favorite handler for type " + favorite.GetType() + " and id " + favorite.Id, Category.Warn, Priority.Medium); } } }
private void ExecutePlayFavorite(IEnumerable list) { var favorites = list.OfType <Favorite>(); var firstFavorite = favorites.FirstOrDefault(); if (firstFavorite != null) { var favoriteHandler = FavoriteHandlers.FirstOrDefault(f => f.CanHandleFavorite(firstFavorite)); if (favoriteHandler != null) { favoriteHandler.Play(firstFavorite); } else { ToastService.Show("Unable to play favorite"); Logger.Log("Unable to find favorite handler for type " + firstFavorite.GetType() + " and id " + firstFavorite.Id, Category.Warn, Priority.Medium); } ExecuteQueueFavorite(favorites.Skip(1)); } }