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
            }));
        }
Exemplo n.º 2
0
        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());
        }