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