public IEnumerable <WeatherForecast> WeatherForecasts() { return(_services.GetForecasts()); }
public ActionResult <AllStdevs> GetAllStdevsFrom(long cityId, DateTime fromDate, DateTime toDate) { if (fromDate == default) { fromDate = DateTime.Now.Date; } if (toDate == default) { toDate = DateTime.Now.Date; } if ((toDate - fromDate).TotalDays > 14 || (toDate - fromDate).TotalDays < 0) { Log.Error($"No data was provided for city with Id {cityId} as time period was too big {fromDate.Date} - {toDate.Date}"); return(BadRequest(new ErrorHandlingModel { Error = HandlingErrors.TimeSpanTooLong })); } var userName = User.Claims.Single(a => a.Type == System.Security.Claims.ClaimTypes.NameIdentifier).Value; var unit = _context.UserSettings.First(x => x.User == userName).Units; var forecasts = service.GetForecasts(fromDate, toDate, cityId); foreach (var item in forecasts) { item.Temperature = converter.ConvertetFromCelcius(item.Temperature, unit); } ; var actualTemperature = service.GetActualTemperatures(fromDate, toDate, cityId); foreach (var item in actualTemperature) { item.Temperature = converter.ConvertetFromCelcius(item.Temperature, unit); } var averageActualTemperature = actualTemperature.Average(i => (double?)i.Temperature); var providers = service.GetProvidersWithStdevs(actualTemperature, forecasts, averageActualTemperature); var allStdevs = new AllStdevs { CityId = cityId, FromDate = fromDate, ToDate = toDate, Providers = providers }; foreach (var provider in allStdevs.Providers.ToList()) { foreach (var stdev in provider.Stdevs.ToList()) { if (stdev.Factual == null) { provider.Stdevs.Remove(stdev); } } } return(Ok(allStdevs)); }