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