private async Task ApplyTemperatureSummaries(TemperatureSummary temperatureSummary) { var temperature = await _weatherStationReadingRepository .GetTemperatureReading(STATIONID, TemperatureReadingType.OUTSIDE); var today = temperature .Recent .Where(m => m.MeasurementTime >= DateTime.Today); var latest = today .OrderByDescending(m => m.MeasurementTime) .FirstOrDefault(); if (today.Any()) { temperatureSummary.Location = TemperatureReadingType.OUTSIDE.ToString(); temperatureSummary.HighToday = today.Max(v => v.Value); temperatureSummary.LowToday = today.Min(v => v.Value); if (latest != null) { temperatureSummary.Latest = latest.Value; temperatureSummary.LatestMeasurementTime = latest.MeasurementTime; } } }
public Summary Build() { _logger.Log(LogLevel.Information, "Building summary..."); var rainfallSummaries = new List <RainfallSummary>(); var temperatureSummary = new TemperatureSummary(); Task.WaitAll( ApplyRainfallSummaries(rainfallSummaries), ApplyTemperatureSummaries(temperatureSummary)); return(new Summary() { RainfallSummaries = rainfallSummaries, TemperatureSummary = temperatureSummary }); }