//public static async Task<MyMovieList> GetDataFromAPI(string souceCompany) public static async Task <List <MyMovieData> > GetDataFromAPI(string souceCompany) { string apiURL = GetUrlString(souceCompany, false); MyMovieList movieWorldData = await GetRequest(apiURL, souceCompany); MyMovieData moviveDetailData = new MyMovieData(); MyMovieData detailData = new MyMovieData(); List <MyMovieData> movieFinalList = new List <MyMovieData>(); if (movieWorldData != null) { List <MyMovieData> movieList = movieWorldData.Movies; Parallel.ForEach(movieList, (item, loopState) => { moviveDetailData = item; //Console.WriteLine("after to get movie detail"); detailData = Program.getDetailDataFromAPI(item, souceCompany).GetAwaiter().GetResult(); movieFinalList.Add(detailData); }); } return(movieFinalList); }
public static async Task <MyMovieData> getDetailDataFromAPI(MyMovieData item, string souceCompany) { string apiDetailURL = GetUrlString(souceCompany, true); try { var moviceIDURL = apiDetailURL + item.ID; HttpResponseMessage responseData = new HttpResponseMessage(); int numberOfRetry = 0; MyMovieData movieFinalData = new MyMovieData(); using (HttpClient client = new HttpClient()) { do { using (var requestMessage = new HttpRequestMessage(HttpMethod.Get, moviceIDURL)) { requestMessage.Headers.Add("x-access-token", "sjd1HfkjU83ksdsm3802k"); requestMessage.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); responseData = await client.SendAsync(requestMessage); numberOfRetry++; if (responseData.IsSuccessStatusCode) { using (HttpContent content = responseData.Content) { MyMovieDetailData myMovieDetailData = new MyMovieDetailData(); myMovieDetailData = await content.ReadAsAsync <MyMovieDetailData>(); movieFinalData = item; movieFinalData.Price = myMovieDetailData.Price; movieFinalData.DataSource = souceCompany; if (movieFinalData.Price != "") { movieFinalData.PriceDecimal = Convert.ToDecimal(movieFinalData.Price); } return(movieFinalData); } } } } while (responseData.IsSuccessStatusCode == false & numberOfRetry < 5); } return(null); } catch (Exception e) { Console.WriteLine(e); return(null); } }