public Task <bool> ToggleFavourited(ulong itemId, EFavouriteType type) { switch (type) { case EFavouriteType.Album: return(ToggleAlbumFavourite(itemId)); case EFavouriteType.Track: return(ToggleTrackFavourite(itemId)); case EFavouriteType.Artist: return(ToggleArtistFavourite(itemId)); case EFavouriteType.Playlist: return(TogglePlaylistFavourite(itemId)); default: throw new ArgumentException("Invalid type."); } }
public bool IsFavourited(ulong itemId, EFavouriteType type = EFavouriteType.Unknown) { switch (type) { case EFavouriteType.Album: return(this.favouriteAlbums.Contains(itemId)); case EFavouriteType.Track: return(this.favouriteTracks.Contains(itemId)); case EFavouriteType.Artist: return(this.favouriteArtists.Contains(itemId)); case EFavouriteType.Playlist: return(this.favouritePlaylists.Contains(itemId)); default: return(this.favouriteTracks.Contains(itemId) || this.favouriteAlbums.Contains(itemId) || this.favouriteArtists.Contains(itemId) || this.favouritePlaylists.Contains(itemId)); } }
public bool CanFavourite(ulong itemId, EFavouriteType type = EFavouriteType.Unknown) => this.IsLoggedIn && !this.userPlaylists.Contains(itemId);