Esempio n. 1
0
        public async Task <ArrayWithTotalCount <TrackForHomeSection> > QueryMusicDb(MusicDbTrackQueryParamsModel req)
        {
            var query  = BuildFilterNew(req);
            var userId = Resolve <ICurrentUserContext>().Id;

            if (req.Randomize)
            {
                var result = await query
                             .OrderBy(t => Guid.NewGuid())
                             .Select(TrackForHomeSection.FromTrack(userId))
                             .ToArrayWithTotalCount(q =>
                                                    q.Take(req.Take)
                                                    );

                return(result);
            }
            else
            {
                var result = await query
                             .Select(TrackForHomeSection.FromTrack(userId))
                             .ToArrayWithTotalCount(q => q
                                                    .Skip(req.Skip)
                                                    .Take(req.Take)
                                                    );

                return(result);
            }
        }
Esempio n. 2
0
        public async Task <IReadOnlyCollection <TrackForHomeSection> > GetTracksWithVideoIdsIfFound(IEnumerable <string> wantedTracksYtIds)
        {
            var curUserId = Resolve <ICurrentUserContext>().Id;
            var tracks    = await Query <Track>()
                            .Where(track => wantedTracksYtIds.Contains(track.YoutubeVideos.First().Id))
                            .Select(TrackForHomeSection.FromTrack(curUserId))
                            .ToArrayAsync();

            return(tracks);
        }