Exemplo n.º 1
0
        public async Task<ContentResponse> Find(string query, int maxItems = 25, bool getArtists = true,
            bool getAlbums = true, bool getTracks = true)
        {
            if (string.IsNullOrWhiteSpace(query))
                throw new ArgumentNullException("query");

            if (maxItems > 25)
                throw new ArgumentOutOfRangeException("maxItems");

            await Authenticate();

            RestRequest request = GetPopulatedRequest("1/content/{namespace}/search");

            request.AddQueryString("q", query);

            if (maxItems != 25)
            {
                request.AddQueryString("maxItems", maxItems);
            }

            if (!(getArtists && getAlbums && getTracks))
            {
                var filter = new List<string>();

                if (getArtists) filter.Add("artists");
                if (getAlbums) filter.Add("albums");
                if (getTracks) filter.Add("tracks");

                request.AddQueryString("filters", filter.Aggregate("", (c, n) => c.Length == 0 ? c + n : c + ("+" + n)));
            }

            request.AddQueryString("accessToken", "Bearer " + Token.AccessToken);

            return await _client.ExecuteAsync<ContentResponse>(request);
        }
Exemplo n.º 2
0
        public async Task<XboxMusicResult> Find(string query)
        {
            if (string.IsNullOrWhiteSpace(query))
                throw new ArgumentNullException("query");

            if (TokenResponse == null || !TokenResponse.IsValid)
                await Authenticate();

            var request = GetPopulatedRequest("1/content/{namespace}/search");

            request.AddQueryString("q", query);

            request.AddQueryString("maxItems", 25);

            var filter = new List<string> { "artists", "albums", "tracks" };

            request.AddQueryString("filters", filter.Aggregate("", (c, n) => c.Length == 0 ? c += n : c += "+" + n));

            request.AddQueryString("accessToken", "Bearer " + TokenResponse.AccessToken);

            return await ExecuteAsync<XboxMusicResult>(request);
        }