public async Task <Model.Forecast> GetAllForecastByName(string input) { var result = await _repository.GetAllForecastByName(input); if (result is null) { return(null); } result = await _client.GetAllForecastByName(input); var list = result.list.GroupBy(x => x.dt_txt.Split(' ').First()).ToList(); result.list = list.Select(item => item.First()).ToList(); foreach (var item in result.list) { item.main.temp_min = (list.FirstOrDefault(x => x.Key == item.dt_txt.Split(' ').First()) ?? throw new InvalidOperationException()) .Min(x => x.main.temp_min); item.main.temp_max = (list.FirstOrDefault(x => x.Key == item.dt_txt.Split(' ').First()) ?? throw new InvalidOperationException()) .Max(x => x.main.temp_min); } //await _repository.SaveAllForecast(result); return(result); }