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));
            }
        }