public async Task <IActionResult> AddTemperatureAsync([FromRoute] Guid key, [FromBody] AddTemperatureRequestDto temperatureRequestDto) { var result = await CityService.AddTemperatureAsync(key, temperatureRequestDto); if (result.Success.HasValue && !result.Success.Value) { return(BadRequest(result)); } return(Created($"api/cities/{key.ToString()}/temperatures", result)); }
public async Task <AddTemperatureResponseDto> AddTemperatureAsync(Guid cityKey, AddTemperatureRequestDto addTemperatureRequestDto) { var city = await CityRepository.GetByKeyAsync(cityKey); if (city == null) { return new AddTemperatureResponseDto { Success = false, Message = "City not found." } } ; var weather = await WeatherService.GetWeatherByCityAsync(city.Name); if (weather.HasFailed) { return new AddTemperatureResponseDto { Success = false, Message = "Failed on try get city temperature." } } ; var temperature = new CityTemperature(city.Key, weather.Results.Temperature); await CityTemperatureRepository.AddAsync(temperature); return(new AddTemperatureResponseDto { Data = new CityTemperatureDto { City = city.Name, Temperature = temperature.Temperature, CreatedOn = temperature.CreatedOn.ToString("s") }, Success = true }); }