public ArtistSinglesViewModel(Artist artist) { PlayAudioTrack = delegate(Track track) { var l = MediaPropertiesLibrary.Audio.Library.Library.Songs.Where(t => t.Artists.Contains(artist)) .ToList(); DispatcherLibrary.Dispatcher.Dispatch("Multiple Track Selected For Play", l, l.FindIndex(t => t == track)); }; _singles.Source = new ObservableCollection<Track>(artist.Singles); Singles.Refresh(); OnPropertyChanged(nameof(Singles)); }
public ArtistAlbumsViewModel(Artist artist) { PlayAlbum = new PlayAlbum(album => { var l = MediaPropertiesLibrary.Audio.Library.Library.Songs.Where(track => track.Artists.Contains(artist)) .ToList(); DispatcherLibrary.Dispatcher.Dispatch("Multiple Track Selected For Play", l, l.FindIndex(track => track.Album == album)); }); _albums.Source = new ObservableCollection<Album>(artist.Albums); Albums.Refresh(); OnPropertyChanged(nameof(Albums)); }
public ArtistViewModel(Artist artist) { var genres = Library.Songs.Where(track => track.Artists.Contains(artist)).SelectMany(track => track.Genres).Distinct().ToList(); var t = Library.Songs.Where(track => track.Genres.Intersect(genres).Any()) .SelectMany(track => track.Artists).Where(artist2 => artist2 != artist).Distinct() .OrderBy(a => Library.Songs.Where(track => track.Artists.Contains(a)).SelectMany(track => track.Genres).Intersect(genres).Count()) .ToList(); Artist = artist; PopularModel = new ArtistViewPopularModel { MostListenedTracks = Library.Songs.Where(track => track.Artists.Contains(artist)).OrderByDescending(track => track.UserTag.TimesListened).Take(5).ToList(), RelatedArtists = t.Take(7).ToList() }; AlbumsModel = new ArtistAlbumsViewModel(artist); SinglesModel = new ArtistSinglesViewModel(artist); }
public static ImageSource AccessCover(Artist artist) { if (!string.IsNullOrEmpty(artist.Tag?.Picture) && File.Exists(artist.Tag.Picture)) return new BitmapImage(new Uri(artist.Tag.Picture)); return artist.Albums.FirstOrDefault(album => album.Cover != null)?.Cover; }
public void AccessArtist(Artist artist) { if (artist != null) Dispatcher.Dispatch("Publish pages", new Pages.ArtistView(new Pages.ArtistViewModel(artist))); }