public void ClimateItem_MeanValueTest() { ClimateItem left = new ClimateItem() { IndoorValue = "18.5", OutdoorValue = "-20.0" }; ClimateItem right = new ClimateItem() { IndoorValue = "19.3", OutdoorValue = "22.0" }; ClimateItem resultValue = ClimateItem.ClimateMeanValues(left, right); Assert.Equal("18.9", resultValue.IndoorValue); Assert.Equal("1.0", resultValue.OutdoorValue); }
public IActionResult GetBySource(string source) { _logger.LogInformation("The source is {Source}", source); ClimateItem item = null; if (source.Equals("Nibe")) { // Read data from Nibe, if reading works we get data, if not we get null and try to do a login item = nibe.CurrentReading(AppConfigs); if (item == null) { _logger.LogInformation("Logging in to Nibe"); var uri = new UriBuilder(AppConfigs.NibeHost) { Path = $"/oauth/authorize", Query = "response_type=code&client_id=" + AppConfigs.NibeClientId + "&scope=READSYSTEM&redirect_uri=" + AppConfigs.NibeRedirectURI + "&state=12345" }.Uri; _logger.LogInformation("Connecting to {uri}", uri); return(Redirect(uri.AbsoluteUri)); } } if (source.Equals("Netatmo")) { item = netatmo.CurrentReading(AppConfigs); } if (source.Equals("Reading")) { ClimateItem netatmoItem = netatmo.CurrentReading(AppConfigs); ClimateItem nibeItem = null; nibeItem = nibe.CurrentReading(AppConfigs); if (nibeItem == null) { var uri = new UriBuilder(AppConfigs.NibeHost) { Path = $"/oauth/authorize", Query = "response_type=code&client_id=" + AppConfigs.NibeClientId + "&scope=READSYSTEM&redirect_uri=" + AppConfigs.NibeRedirectURI + "&state=12345" }.Uri; _logger.LogInformation("redirecting to {redirect}", uri.AbsoluteUri); return(Redirect(uri.AbsoluteUri)); } item = ClimateItem.ClimateMeanValues(netatmoItem, nibeItem); } if (source.Equals("Ping")) { item = new ClimateItem() { IndoorValue = "20.5", OutdoorValue = "11.1", TimeStamp = DateTime.Now }; _logger.LogInformation("Ping returning {item}", item.ToString()); } if (source.Equals("Version")) { item = new ClimateItem() { IndoorValue = AppConfigs.BuildVersion, OutdoorValue = AppConfigs.BuildVersion, TimeStamp = DateTime.Now }; _logger.LogInformation("Version returning {item}", AppConfigs.BuildVersion); } if (item == null) { return(new Microsoft.AspNetCore.Mvc.NoContentResult()); } else { return(Json(item)); } }