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));
        }
Exemple #2
0
        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
            });
        }