/// <summary>
        /// This method reads files in parallel and generates output, depending on the type of output service is injected.
        /// </summary>
        /// <param name="wolverhamptonFilePath"></param>
        /// <param name="caufieldFilePath"></param>
        /// <returns></returns>
        public async Task StartProcessing(string wolverhamptonFilePath, string caufieldFilePath)
        {
            var wolverhamptonHorsesTask = _jsonEngine.ImportRace(wolverhamptonFilePath);
            var caufiledHorsesTask      = _xmlEngine.ImportRace(caufieldFilePath);

            await Task.WhenAll(wolverhamptonHorsesTask, caufiledHorsesTask);//waiting for taks to finish

            var result = wolverhamptonHorsesTask.Result;

            result.AddRange(caufiledHorsesTask?.Result);//combine both results

            _outputService.GenerateOutput(result);
        }
Example #2
0
 /// <summary>
 /// Prints the result in Console
 /// </summary>
 /// <param name="output"></param>
 public void PrintResult(OutputRecord output)
 {
     _outputService.GenerateOutput(output);
 }