Ejemplo n.º 1
0
        /// <summary>
        /// Gets the movie details async.
        /// </summary>
        /// <returns>The movie details</returns>
        /// <param name="provider">Provider.</param>
        /// <param name="id">Identifier.</param>
        public async Task <MovieDetails> GetMovieDetailsAsync(string provider, string id)
        {
            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add(_externalApiSettings.TokenName, _externalApiSettings.TokenValue);
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                string url = _buildURLService.GetURL(id, provider, _externalApiSettings);

                HttpResponseMessage response = await client.GetAsync(url);

                string stringResult = await response.Content.ReadAsStringAsync();

                MovieDetails json = JsonConvert.DeserializeObject <MovieDetails>(stringResult);
                return(json);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Gets the list of movie async.
        /// </summary>
        /// <returns>The list of movie async.</returns>
        public async Task <IEnumerable <Movie> > GetListOfMovieAsync()
        {
            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add(_externalApiSettings.TokenName, _externalApiSettings.TokenValue);
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                List <string> urlList = _buildURLService.GetURL(_externalApiSettings);

                IEnumerable <Task <IEnumerable <Movie> > > downloadTasksQuery =
                    from url in urlList select ProcessURLAsync(url, client);

                Task <IEnumerable <Movie> >[] downloadTasks = downloadTasksQuery.ToArray();

                Task <IEnumerable <Movie> > firstFinishedTask = await Task.WhenAny(downloadTasks);

                IEnumerable <Movie> data = await firstFinishedTask;

                return(data);
            }
        }