static int Main(string[] args) { string forecastIOKey = args[0]; string iftttKey = args[1]; var forecastRequest = new ForecastIORequest(forecastIOKey, 47.754433f, -122.214010f, Unit.si); ForecastIOResponse forecastResponse = forecastRequest.Get(); double totalRainfall = forecastResponse.daily.data.Where(x => x.precipType != null && x.precipType.Equals("rain")).Sum(x => x.precipIntensity); using (var client = new HttpClient()) { string totalRainfallFormatted = totalRainfall.ToString("0.##"); var content = new StringContent($"{{\"value1\":{totalRainfallFormatted}}}", Encoding.UTF8, "application/json"); HttpResponseMessage result = client.PostAsync($"https://maker.ifttt.com/trigger/weeklyforecast_rain_inches/with/key/{iftttKey}", content).Result; if (result.IsSuccessStatusCode) { return(0); } return((int)result.StatusCode); } }
public void SetUp() { var client = new Mock <ForecastIOClient>("apikey"); var response = new ForecastIOResponse(); response.latitude = -39.801f; response.longitude = 87.333f; response.daily = new Daily(); response.daily.data = new List <DailyForecast>(); response.daily.data.Add( new DailyForecast() { temperatureMin = 20.0f, temperatureMax = 50.0f, cloudCover = 0.3f, precipProbability = 0.3f } ); var task = Task.FromResult(response); client.Setup(c => c.GetForecastResponse(-39.801f, 87.333f)).Returns(task); var responseMapper = new ForecastIOResponseMapper(); _service = new ForecastIOService(client.Object, responseMapper); }
private static string MakeUmbrellaResponse(ForecastIOResponse forecastIoResponse, out string[] noumbrellaicons, out string icon) { noumbrellaicons = new string[] { "clear-day", "clear-night", "fog", "cloudy", "partly-cloudy-day", "partly-cloudy-night" }; icon = forecastIoResponse.currently.icon; var response = "unknown"; if (icon.Equals("rain")) { response = "umbrella"; } else if (icon.Equals("wind")) { response = "marypoppins"; } else { string s = icon; if (Array.Exists(noumbrellaicons, x => x.Equals(s))) { response = "noumbrella"; } } return(response); }
private void Window_Loaded(object sender, RoutedEventArgs e) { Background = new SolidColorBrush(Colors.Black); _wakeUpDetector = new WakeUpDetector(); _wakeUpDetector.WakeUpConfirmedEvent += WakeUpDetectorOnWakeUpConfirmedEvent; _wakeUpDetector.WakeUpProgressEvent += WakeUpDetectorOnWakeUpProgressEvent; _musicPlayer = new MusicPlayer(); var request = new ForecastIORequest("1151936ce22897f529d08c57a1e8bb71", 40.579219f, -111.999608f, Unit.us); _forecast = request.Get(); StartClock(); if (_wakeUpDetector.StartDetection()) { Background = new SolidColorBrush(Colors.Black); //Begin playing alarm clock sound on loop _musicPlayer.InitAudioAsset("AlarmClock.wav", true); _musicPlayer.PlayMusic(); } else //Could not load Kinect Sensor. Just skip it. { _wakeUpDetector.Dispose(); DoWakeupRoutine(); } }
public ForecastWeatherData(ForecastIOResponse response) { Temperature = response.currently.temperature; WindDirection = (int)response.currently.windBearing; WindSpeed = (int)response.currently.windSpeed; Condition = response.currently.summary; Humidity = (int)(response.currently.humidity * 100); Pressure = response.currently.pressure / 1.3332239; }
private void bw_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; hourlyString = ""; var request = new ForecastIORequest("bd996ecbf406f3ab16eae62ced5e3ed3", latitude, longitude, Unit.auto); wData = request.Get(); response = "It took " + request.ApiResponseTime + " for a response and has been called " + request.ApiCallsMade + " times today."; }
public Forecast MapResponse(ForecastIOResponse response) { var forecast = new Forecast(); forecast.Latitude = response.latitude; forecast.Longitude = response.longitude; forecast.MinimumTemperature = response.daily.data.ElementAt(0).temperatureMin; forecast.MaximumTemperature = response.daily.data.ElementAt(0).temperatureMax; forecast.PrecipitationProbability = response.daily.data.ElementAt(0).precipProbability; forecast.CloudCover = response.daily.data.ElementAt(0).cloudCover; forecast.Date = DateTime.Now; return(forecast); }
private List <Forecast> ConvertResponceToForecasts(ForecastIOResponse dataObject) { var forecasts = new List <Forecast>(); var creationTime = DateTime.SpecifyKind(GetForecastUTCCreationTime(DateTime.UtcNow).AddHours( dataObject.offset), DateTimeKind.Unspecified); foreach (var hourForecast in dataObject.hourly.data) { var parameters = new List <AbstractParameter>(); ConvertHourForecast(hourForecast, parameters); var validTime = ParseXValidTime(hourForecast, (int)dataObject.offset); Forecast forecast = new Forecast(parameters, creationTime, validTime); forecasts.Add(forecast); } return(forecasts); }
public SmartViewModel(ForecastIOResponse forecast) { this.Forecast = forecast; }
protected override IEnumerable <Forecast> ParseResponse(string response, int utcOffset) { ForecastIOResponse dataObject = JsonConvert.DeserializeObject <ForecastIOResponse>(response); return(ConvertResponceToForecasts(dataObject)); }