public async Task <IEnumerable <TrackDto> > GetTopTracksAsync(int?count) { if (count == null) { count = 50; } var spec = new TopTracksSpecification(count); var tracks = await _trackRepository.ListAsync(spec); return(tracks.Select(t => new TrackDto { TrackId = t.Id, Name = t.Name, Artist = t.Album.Artist.Name, ArtistId = t.Album.ArtistId, Album = t.Album.Title, AlbumId = t.Album.Id, Score = t.Score, FromCache = t.FromCache })); }
public void SortsByScoreDescending() { var spec = new TopTracksSpecification(10); var testTrackList = new List <Track> { new Track { Id = 1, Score = 1 }, new Track { Id = 2, Score = 2 }, new Track { Id = 3, Score = 3 } }; var result = testTrackList .AsQueryable() .OrderByDescending(spec.OrderByDescending); Assert.AreEqual(3, result.First().Id); Assert.AreEqual(1, result.Last().Id); }
public async Task GetTopTracks() { var testTracks = new List <Track> { new Track { Id = 1, Score = 1 }, new Track { Id = 2, Score = 2 }, new Track { Id = 3, Score = 3 } }; _context.AddRange(testTracks); _context.SaveChanges(); var spec = new TopTracksSpecification(2); var tracks = await _trackRepository.ListAsync(spec); Assert.AreEqual(3, tracks.First().Id); Assert.AreEqual(2, tracks.Count()); }