Example #1
0
        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);
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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;
 }
Example #6
0
        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);
        }
Example #8
0
        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);
        }
Example #9
0
 public SmartViewModel(ForecastIOResponse forecast)
 {
     this.Forecast = forecast;
 }
Example #10
0
        protected override IEnumerable <Forecast> ParseResponse(string response, int utcOffset)
        {
            ForecastIOResponse dataObject = JsonConvert.DeserializeObject <ForecastIOResponse>(response);

            return(ConvertResponceToForecasts(dataObject));
        }