public IEnumerable <GetSyntheticCovidCasesResult> Handle(GetSyntheticCovidCasesFilter filter) { var data = _csvContext.GetCsvData <CovidData>("Resources/input.csv"); var result = data .Select(x => new { month = Convert.ToDateTime(x.Date).ToString("yyyy-MM"), x.Cases, x.Deaths }) .GroupBy(x => new { x.month }) .Select(x => new GetSyntheticCovidCasesResult { month = x.Key.month, cases = x.Sum(y => y.Cases), deaths = x.Sum(y => y.Deaths) }); if (!string.IsNullOrEmpty(filter?.month)) { result = result.Where(x => x.month == filter.month); } return(result); }
public IActionResult Index([FromQuery] GetSyntheticCovidCasesFilter filter) { var data = _getSyntheticCovidQueryHandler.Handle(filter); return(Ok(data)); }