private static MyVehicleResponse GetVehicleResponseFromJsonStr(string jsonStr) { JObject resultsTmp = JObject.Parse(jsonStr); MyVehicleResponse result = new MyVehicleResponse(); result.VehicleId = Convert.ToInt32(resultsTmp["vehicleId"]); result.Year = Convert.ToInt32(resultsTmp["year"]); result.Make = Convert.ToString(resultsTmp["make"]); result.Model = Convert.ToString(resultsTmp["model"]); result.DealerId = Convert.ToInt32(resultsTmp["dealerId"]); return(result); }
static void Main(string[] args) { Stopwatch sw = new Stopwatch(); sw.Start(); Answer answer = new Answer(); ConcurrentBag <DealerAnswer> dealersAnswer = new ConcurrentBag <DealerAnswer>(); ConcurrentBag <string> dealerIDs = new ConcurrentBag <string>(); ConcurrentBag <VehicleAnswer> vehiclesAnswer = new ConcurrentBag <VehicleAnswer>(); ConcurrentBag <MyVehicleResponse> vehiclesResponse = new ConcurrentBag <MyVehicleResponse>(); //1 dataSetIdString string dataSetIdJsonStr = Global.Get("/api/datasetId"); JObject results = JObject.Parse(dataSetIdJsonStr); JToken dataSetIdStr = results["datasetId"]; string dataSetIdString = dataSetIdStr.ToString(); Console.WriteLine("dataSetIdStr:" + dataSetIdStr.ToString()); //2 vehiclesAnswer string vehiclesJsonStr = Global.Get("/api/" + dataSetIdStr.ToString() + "/vehicles"); results = JObject.Parse(vehiclesJsonStr); JToken vehicles = results["vehicleIds"]; Parallel.For(0, vehicles.Count(), i => { string vehicleId = vehicles.ToList()[i].ToString(); string tmpVehicleJsonStr = GetVehicle(dataSetIdString, vehicleId); JObject resultsTmp = JObject.Parse(tmpVehicleJsonStr); string dealerID = resultsTmp["dealerId"].ToString(); dealerIDs.Add(dealerID); VehicleAnswer tmpVehicle = GetVehicleAnswerFromJsonStr(tmpVehicleJsonStr); vehiclesAnswer.Add(tmpVehicle); MyVehicleResponse tmpVehicleResponse = GetVehicleResponseFromJsonStr(tmpVehicleJsonStr); vehiclesResponse.Add(tmpVehicleResponse); }); //3 dealersAnswer and dealersAnswerJson var dealerIds = dealerIDs.Distinct().ToList(); Parallel.For(0, dealerIds.Count(), i => { string tmpDealerJsonStr = GetDealer(dataSetIdString, dealerIds[i]); JObject resultsTmp = JObject.Parse(tmpDealerJsonStr); DealerAnswer dealerAnswer = GetDealerAnswerFromJsonStr(tmpDealerJsonStr, vehiclesResponse); dealersAnswer.Add(dealerAnswer); }); answer.Dealers = new List <DealerAnswer>(); answer.Dealers.AddRange(dealersAnswer); string answerJsonStr = JsonConvert.SerializeObject(answer); Console.WriteLine(answerJsonStr); //4 Post dealersAnswerJson string url = "/api/" + dataSetIdString + "/answer"; string jsonContent = answerJsonStr; string postResultStr = Global.Post(url, jsonContent); Console.WriteLine("Post result:" + postResultStr); sw.Stop(); Console.WriteLine("Time Eclipsed:" + Math.Round(sw.Elapsed.TotalSeconds, 2) + " Seconds"); Console.ReadKey(); }