Ejemplo n.º 1
0
        /// <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);
            }
        }