public void Refresh() { GeneralStatistics.Clear(); TracksByArtist.Clear(); AlbumsByReleaseType.Clear(); ArtistsByGrouping.Clear(); GeneralStatistics.Add(new Statistic("Track Artists", _service.GetNumberOfTrackArtists())); GeneralStatistics.Add(new Statistic("Album Artists", _service.GetNumberOfAlbumArtists())); GeneralStatistics.Add(new Statistic("Albums", _service.GetNumberOfAlbums())); GeneralStatistics.Add(new Statistic("Tracks", _service.GetNumberOfTracks())); GeneralStatistics.Add(new Statistic("Total Time", _service.GetTotalTime())); _service.GetTracksByArtist(10) .Select(a => new Statistic(a.Item1, a.Item2)) .ToList() .ForEach(TracksByArtist.Add); _service.GetAlbumsByReleaseType() .Select(a => new Statistic(a.Item1.GetDisplayName(), a.Item2)) .ToList() .ForEach(AlbumsByReleaseType.Add); _service.GetArtistsByGrouping() .Select(a => new Statistic(a.Item1, a.Item2)) .ToList() .ForEach(ArtistsByGrouping.Add); }
private void ResetSortedCollections() { var dateAdded = new OptimizedObservableCollection <Track>( _libraryService.Tracks.OrderByDescending(p => p.CreatedAt)); TracksByDateAdded.SwitchTo(dateAdded); var tracksByTitle = AlphaKeyGroup.CreateGroups(_libraryService.Tracks, CultureInfo.CurrentCulture, item => ((Track)item).Title); TracksByTitle.SwitchTo(tracksByTitle); var tracksByArtist = AlphaKeyGroup.CreateGroups(_libraryService.Tracks, CultureInfo.CurrentCulture, item => ((Track)item).DisplayArtist); TracksByArtist.SwitchTo(tracksByArtist); var tracksByAlbum = AlphaKeyGroup.CreateGroups(_libraryService.Tracks, CultureInfo.CurrentCulture, item => ((Track)item).AlbumTitle); TracksByAlbum.SwitchTo(tracksByAlbum); var artistsByName = AlphaKeyGroup.CreateGroups( _libraryService.Artists.Where(p => !p.IsSecondaryArtist), CultureInfo.CurrentCulture, item => ((Artist)item).Name); ArtistsByName = artistsByName; var albumsByDateAdded = new OptimizedObservableCollection <Album>( _libraryService.Albums.OrderByDescending(p => p.Tracks.Min(track => track.CreatedAt))); AlbumsByDateAdded = albumsByDateAdded; var albumsByTitle = AlphaKeyGroup.CreateGroups(_libraryService.Albums, CultureInfo.CurrentCulture, item => ((Album)item).Title); AlbumsByTitle = albumsByTitle; var albumsByArtist = AlphaKeyGroup.CreateGroups(_libraryService.Albums, CultureInfo.CurrentCulture, item => ((Album)item).Artist.Name); AlbumsByArtist = albumsByArtist; }