Пример #1
0
        public async Task <MediaItem []> PerformAppleMusicGetRecentlyPlayedAsync(string userToken)
        {
            var developerToken = FetchDeveloperToken();

            if (developerToken == null)
            {
                throw new ArgumentNullException(nameof(developerToken), "Developer Token not configured. See README for more details.");
            }

            var urlRequest      = AppleMusicRequestFactory.CreateRecentlyPlayedRequest(developerToken, userToken);
            var dataTaskRequest = await UrlSession.CreateDataTaskAsync(urlRequest);

            var urlResponse = dataTaskRequest.Response as NSHttpUrlResponse;

            if (urlResponse?.StatusCode != 200)
            {
                return(new MediaItem [0]);
            }

            var jsonDictionary = NSJsonSerialization.Deserialize(dataTaskRequest.Data, NSJsonReadingOptions.AllowFragments, out NSError error) as NSDictionary;

            if (error != null)
            {
                throw new NSErrorException(error);
            }

            var results = jsonDictionary [ResponseRootJsonKeys.Data] as NSArray ??
                          throw new SerializationException(ResponseRootJsonKeys.Data);

            return(ProcessMediaItems(results));
        }
Пример #2
0
        public async Task <string> PerformAppleMusicStorefrontsLookupAsync(string regionCode)
        {
            var developerToken = FetchDeveloperToken();

            if (developerToken == null)
            {
                throw new ArgumentNullException(nameof(developerToken), "Developer Token not configured. See README for more details.");
            }

            var urlRequest      = AppleMusicRequestFactory.CreateStorefrontsRequest(regionCode, developerToken);
            var dataTaskRequest = await UrlSession.CreateDataTaskAsync(urlRequest);

            var urlResponse = dataTaskRequest.Response as NSHttpUrlResponse;

            if (urlResponse?.StatusCode != 200)
            {
                return(null);
            }

            return(ProcessStorefront(dataTaskRequest.Data));
        }
Пример #3
0
        public async Task <MediaItem [] []> PerformAppleMusicCatalogSearchAsync(string term, string countryCode)
        {
            var developerToken = FetchDeveloperToken();

            if (developerToken == null)
            {
                throw new ArgumentNullException(nameof(developerToken), "Developer Token not configured. See README for more details.");
            }

            var urlRequest      = AppleMusicRequestFactory.CreateSearchRequest(term, countryCode, developerToken);
            var dataTaskRequest = await UrlSession.CreateDataTaskAsync(urlRequest);

            var urlResponse = dataTaskRequest.Response as NSHttpUrlResponse;

            if (urlResponse?.StatusCode != 200)
            {
                return(new MediaItem [0] []);
            }

            return(ProcessMediaItemSections(dataTaskRequest.Data));
        }