private async void OnMediaItemAuthorMouseUp(object sender, MouseButtonEventArgs e) { if (!(sender is TextBlock clicked) || !(clicked.DataContext is IMediaInfo mediaInfo)) { return; } IArtistInfo artistInfo = await mediaInfo.GetArtistInfo(); UnknownPlaylist playlist = await UnknownPlaylist.FromArtist(artistInfo, false); NebulaClient.Navigate(typeof(PlaylistPage), playlist, new DrillInNavigationTransitionInfo()); }
public static async Task <UnknownPlaylist> FromArtist(IArtistInfo artistInfo, bool loadMedias = true) { UnknownPlaylist playlist = new UnknownPlaylist { Name = artistInfo.Title, Description = artistInfo.Url, Thumbnail = new Uri(artistInfo.LogoUrl), Tag = artistInfo }; if (!loadMedias) { return(playlist); } await foreach (IMediaInfo mediaInfo in artistInfo.GetMedias()) { playlist.AddMedia(mediaInfo); } return(playlist); }
public bool TryGetArtistInfo(int artistId, out IArtistInfo artistInfo) { //var query = _cacheTable // .CreateQuery<ArtistInfoEntity>() // .Where( // TableQuery.GenerateFilterCondition( // nameof(ArtistInfoEntity.RowKey), // QueryComparisons.Equal, // artistId.ToString())); var query = new TableQuery <ArtistInfoEntity>().Where( TableQuery.GenerateFilterCondition( nameof(ArtistInfoEntity.RowKey), QueryComparisons.Equal, artistId.ToString()) ); IEnumerable <ArtistInfoEntity> entities = _cacheTable.ExecuteQuery(query); artistInfo = entities?.FirstOrDefault(); return(entities.Any()); }
public ArtistData(IArtistInfo artist) { this.artist = artist; }
public ArtistInfoEntity(IArtistInfo info) { Id = info.Id; Name = info.Name; PartitionKey = "KISW"; }