public async Task AddAsync(CityTemperature cityTemperature) { const string insertCommand = @"insert into CityTemperature ([Key], [CityKey], [Temperature], [CreatedOn]) Values (@key, @cityKey, @temperature, @createdOn)"; using (var connection = GetConnection()) { try { using (var command = connection.CreateCommand()) { command.CommandText = insertCommand; command.Parameters.Add(CreateParameter("@key", SqlDbType.UniqueIdentifier, cityTemperature.Key)); command.Parameters.Add(CreateParameter("@cityKey", SqlDbType.UniqueIdentifier, cityTemperature.CityKey)); command.Parameters.Add(CreateParameter("@temperature", SqlDbType.Int, cityTemperature.Temperature)); command.Parameters.Add(CreateParameter("@createdOn", SqlDbType.DateTime, cityTemperature.CreatedOn)); connection.Open(); command.Prepare(); await command.ExecuteNonQueryAsync(); } } finally { connection.Close(); } } }
public void Remove(CityTemperature cityTemp) { if (cityTemp == null) { throw new ArgumentNullException(nameof(cityTemp)); } _context.CityTemperatures.Remove(cityTemp); _context.SaveChanges(); }
public void OnCreateCityTemperatureWithCityKeyAndTemperature() { var cityKey = Guid.NewGuid(); var temperature = Faker.RandomNumber.Next(0, 30); var cityTemperature = new CityTemperature(cityKey, temperature); cityTemperature.CreatedOn.Should().BeBefore(DateTime.UtcNow); cityTemperature.DeletedAt.Should().BeNull(); cityTemperature.IsDeleted.Should().BeFalse(); cityTemperature.CityKey.Should().Be(cityKey); cityTemperature.Temperature.Should().Be(temperature); }
public void OnCreateCityTemperature() { var key = Guid.NewGuid(); var cityKey = Guid.NewGuid(); var temperature = Faker.RandomNumber.Next(0, 30); var createdOn = DateTime.UtcNow.AddDays(-24); var cityTemperature = new CityTemperature(key, cityKey, temperature, createdOn); cityTemperature.CreatedOn.Should().Be(createdOn); cityTemperature.DeletedAt.Should().BeNull(); cityTemperature.IsDeleted.Should().BeFalse(); cityTemperature.CityKey.Should().Be(cityKey); cityTemperature.Temperature.Should().Be(temperature); cityTemperature.Key.Should().Be(key); }
/// <summary> /// Get the city temperature /// </summary> /// <param name="cityName">City name</param> /// <param name="metric">Metric in celsius/fahrenheit</param> public async Task <CityTemperature> GetCityTemperature(string cityName, Metric metric) { var client = _httpClientFactory.CreateClient("WeatherClient"); var url = $"http://api.openweathermap.org/data/2.5/weather?q={cityName}&appid={_options.APIKEY}"; var stringRes = await client.GetStringAsync(url); var res = JsonSerializer.Deserialize <WeatherResponce>(stringRes); var temp = metric == Metric.Celsius ? ConvertKelvinToCelsius(res.Main.Temp) : ConvertKelvinToFarenheit(res.Main.Temp); var result = new CityTemperature { City = cityName, Metric = metric, Temperature = temp }; return(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 }); }
public void AddCityTemperature(CityTemperature cityTemperature) { _cityTemperatures.Add(cityTemperature); }