/// <summary> /// Running the main workflow of data transformation and exchange /// </summary> /// <returns>result of data posting</returns> public async Task <AnswerResponse> RunAsync() { try { DatasetIdResponse dataset = await GetDatasetAsync(); VehiclesResponse vehicles = await GetVehiclesAsync(dataset.datasetId); List <Task> tasks = new List <Task>(); foreach (int vehicleId in vehicles.vehicleIds) { tasks.Add(Task.Run(() => GetVehicleAsync(dataset.datasetId, vehicleId))); } await Task.WhenAll(tasks); Answer answer = ConvertToAnswer(); // Post the answer AnswerResponse answerResponse = await PostAnswerAsync(dataset.datasetId, answer); return(answerResponse); } catch (Exception e) { throw new ApiException(e.Message, e.InnerException); } }