public CenteredAlbumViewModel(IList<IAlbum> iAlbums, IMusicSession isession)
        {
            Albums = iAlbums;

            AlbumDistanceComparerFactory adcf = new AlbumDistanceComparerFactory(isession);
            _OrderByAfinity = new AfinityCollection<IAlbum>(this.Albums, al => adcf.GetComparer(al), 50);
            AffinityOrderedCollection = _OrderByAfinity.Collection;

            //CenterAlbum = Albums.MaxBy(isession.AlbumSorter.Sorter);
            _OrderByAfinity.Reference = Albums.MaxBy(isession.AlbumSorter.Sorter);

            ChangeArtist = RelayCommand.Instanciate(DoChangeArtist);
            ChangeGenre = RelayCommand.Instanciate(DoChangeGenre);
            Random = RelayCommand.Instanciate(DoRandom);
            ChangeAlbum = RelayCommand.Instanciate(DoChangeAlbum);
            Center = RelayCommand.Instanciate<IAlbum>(al => CenterAlbum = al);
        }
        public void TestPef()
        {

            _IMusicSession.AllAlbums.Should().HaveCount(2860);


            for (int k = 0; k < 10; k++)
            {
                AlbumDistanceComparerFactory adcf = new AlbumDistanceComparerFactory(_IMusicSession);
   
                TimeTracer tr2 = TimeTracer.TimeTrack("100 Building Comparator Cache");
                List<IUpdatableComparer<IAlbum>> cts = new List<IUpdatableComparer<IAlbum>>();
                using (tr2)
                {
                    for (int i = 0; i < 100; i++)
                    {
                        IUpdatableComparer<IAlbum> ct = adcf.GetComparer(_IMusicSession.AllAlbums[10]);
                        cts.Add(ct);
                    }
                }
            }
        }