Example #1
0
        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;
        }