public async Task <MinSpreadResponse> Handle(MinSpreadCommand request, CancellationToken cancellationToken) { var fileDesc = new WeatherFileDescription(_kata04Config.WeatherFilePath); WeatherDataReader reader = new WeatherDataReader(fileDesc); using (var stream = new StreamReader(_kata04Config.WeatherFilePath)) { var result = await reader.ProcessFile(stream); return(new MinSpreadResponse { MinRangeDayNumber = result.WeatherData .Select(w => new { Day = w.Day, Departure = w.MxT - w.MnT }) .OrderBy(m => m.Departure) .First().Day }); } }
public WeatherDataReader(WeatherFileDescription fileDescription) { _fileDescription = fileDescription; _fieldParser = new FieldParser(_fileDescription.DataFields); }