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); } } } }