Exemplo n.º 1
0
        public async Task <DarkSky> GetForecast(double latitude, double longitude, string units = "us")
        {
            using (var client = new HttpClient())
            {
                var url  = $"https://api.darksky.net/forecast/{Constants.DARK_SKY_API_KEY}/{latitude},{longitude}?units={units}";
                var json = await client.GetStringAsync(url);

                if (string.IsNullOrWhiteSpace(json))
                {
                    return(null);
                }

                return(DarkSky.FromJson(json));
            }
        }
Exemplo n.º 2
0
        private void DataLayerDarkSky_GotData(object sender, DataLayerEventArgs <DarkSky> e)
        {
            ClearValues();

            DarkSky darkSky = e.Item;

            Cursor = Cursors.Arrow;

            if (darkSky == null)
            {
                return;
            }

            UpdateValues(darkSky);
        }
Exemplo n.º 3
0
        private async Task ExecuteGetWeatherCommand()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;
            try
            {
                DarkSky weatherRoot = null;
                var     units       = IsImperial ? "us" : "si";

                if (UseGPS)
                {
                    var gps = await CrossGeolocator.Current.GetPositionAsync(new TimeSpan(0, 0, 1));

                    weatherRoot = await WeatherService.GetForecast(gps.Latitude, gps.Latitude, units);
                }
                else
                {
                    //Get weather by city
                    var positions = await CrossGeolocator.Current.GetPositionsForAddressAsync(Location.Trim());

                    if (positions?.Any() == true)
                    {
                        weatherRoot = await WeatherService.GetForecast(positions.First().Latitude, positions.First().Longitude, units);
                    }
                }


                //Get forecast based on cityId
                Forecast = await WeatherService.GetTimeMachine(weatherRoot.Latitude, weatherRoot.Longitude, 0, units);

                var unit = IsImperial ? "F" : "C";
                Temp      = $"Temp: {weatherRoot?.Currently?.Temperature ?? 0}°{unit}";
                Condition = weatherRoot?.Currently?.Summary ?? string.Empty;
                await CrossTextToSpeech.Current.Speak(Temp + " " + Condition);
            }
            catch (Exception ex)
            {
                Temp = "Unable to get Weather";
            }
            finally
            {
                IsBusy = false;
            }
        }
Exemplo n.º 4
0
        public static async Task prompt()
        {
            string input  = Console.ReadLine();
            string result = await getUrl("https://maps.googleapis.com/maps/api/geocode/json?address=" + input +
                                         "=AIzaSyC_33A_wFm7dUaMlpwiUy_5huiuJ7XAkYs"); //missing an '&key=' at end of address

            //Console.WriteLine(result);
            // deserialize

            Google g   = JsonConvert.DeserializeObject <Google>(result);
            double lat = g.results.ElementAt(0).geometry.location.lat;
            double lng = g.results.ElementAt(0).geometry.location.lng;

            String LatLng      = (lat.ToString() + "," + lng.ToString());
            string callDarkSky = await getUrl("https://api.darksky.net/forecast/8ffe5c523d0f256c9cf3a1dd22c7dad8/" + LatLng);

            //Console.WriteLine(callDarkSky);

            DarkSky dS       = JsonConvert.DeserializeObject <DarkSky>(callDarkSky);
            string  currSum  = dS.daily.summary;
            string  currCond = dS.currently.summary;

            int    sunSet  = dS.daily.data.ElementAt(4).sunsetTime;
            int    sunRise = dS.daily.data.ElementAt(3).sunriseTime;
            double temp    = dS.currently.temperature;

            DateTime dateTimeRise = new DateTime(1970, 1, 1, 0, 0, 0, 0);

            dateTimeRise = dateTimeRise.AddSeconds(sunRise).ToLocalTime();
            DateTime dateTimeSet = new DateTime(1970, 1, 1, 0, 0, 0, 0);

            dateTimeSet = dateTimeSet.AddSeconds(sunSet).ToLocalTime();

            Console.WriteLine(currSum + " " + currCond + ", " + temp + "deg F" + ". "
                              + "Sunrise is: " + dateTimeRise + ". " + "Sunset is: " + dateTimeSet + ".");
            Console.ReadLine();


            // Directory.CreateDirectory("html");
            // File.WriteAllText(@"/code/weather/index.html", dS.ToString());
        }
Exemplo n.º 5
0
        /// <summary>
        /// Updates weather information on the window
        /// </summary>
        /// <param name="darkSky"></param>
        private void UpdateValues(DarkSky darkSky)
        {
            // Tab Currently
            textBoxApparentTemperature.Text = darkSky.Currently.ApparentTemperature.ToStringCultureFormatted();
            textBoxDewPoint.Text            = darkSky.Currently.DewPoint.ToStringCultureFormatted();
            textBoxHumidity.Text            = darkSky.Currently.Humidity.ToStringCultureFormatted();
            textBoxIcon.Text = darkSky.Currently.Icon;
            textBoxNearestStormDistance.Text = darkSky.Currently.NearestStormDistance.ToStringCultureFormatted();
            textBoxPrecipIntensity.Text      = darkSky.Currently.PrecipIntensity.ToStringCultureFormatted();
            textBoxPrecipIntensityError.Text = darkSky.Currently.PrecipIntensityError.ToStringCultureFormatted();
            textBoxPrecipProbability.Text    = darkSky.Currently.PrecipProbability.ToStringCultureFormatted();
            textBoxPrecipType.Text           = darkSky.Currently.PrecipType;
            textBoxPressure.Text             = darkSky.Currently.Pressure.ToStringCultureFormatted();
            textBoxSummary.Text     = darkSky.Currently.Summary;
            textBoxTemperature.Text = darkSky.Currently.Temperature.ToStringCultureFormatted();
            textBoxTime.Text        = darkSky.Currently.Time.ToDateTime().ToStringCultureFormatted();
            textBoxWindBearing.Text = darkSky.Currently.WindBearing.ToStringCultureFormatted();
            textBoxWindGust.Text    = darkSky.Currently.WindGust.ToStringCultureFormatted();
            textBoxWindSpeed.Text   = darkSky.Currently.WindSpeed.ToStringCultureFormatted();
            textBoxTimezone.Text    = darkSky.Timezone;

            // Tab Daily
            textBoxTimeDaily.Text                = darkSky.Daily.Data[0].Time.ToDateTime().ToStringCultureFormatted();
            textBoxIconDaily.Text                = darkSky.Daily.Icon;
            textBoxPrecipIntensityDaily.Text     = darkSky.Daily.Data[0].PrecipIntensity.ToStringCultureFormatted();
            textBoxPrecipProbabilityDaily.Text   = darkSky.Daily.Data[0].PrecipProbability.ToStringCultureFormatted();
            textBoxTemperatureHighDaily.Text     = darkSky.Daily.Data[0].TemperatureHigh.ToStringCultureFormatted();
            textBoxDewPointDaily.Text            = darkSky.Daily.Data[0].DewPoint.ToStringCultureFormatted();
            textBoxPressureDaily.Text            = darkSky.Daily.Data[0].Pressure.ToStringCultureFormatted();
            textBoxWindGustDaily.Text            = darkSky.Daily.Data[0].WindGust.ToStringCultureFormatted();
            textBoxSummaryDaily.Text             = darkSky.Daily.Summary;
            textBoxTemperatureLowDaily.Text      = darkSky.Daily.Data[0].TemperatureLow.ToStringCultureFormatted();
            textBoxTemperatureLowTimeDaily.Text  = darkSky.Daily.Data[0].TemperatureLowTime.ToDateTime().ToStringCultureFormatted();
            textBoxTemperatureHighTimeDaily.Text = darkSky.Daily.Data[0].TemperatureHighTime.ToDateTime().ToStringCultureFormatted();
            textBoxTemperatureMax.Text           = darkSky.Daily.Data[0].TemperatureMax.ToStringCultureFormatted();
            textBoxTemperatureMaxTime.Text       = darkSky.Daily.Data[0].TemperatureMaxTime.ToDateTime().ToStringCultureFormatted();
            textBoxWindSpeedDaily.Text           = darkSky.Daily.Data[0].WindSpeed.ToStringCultureFormatted();
            textBoxWindBearingDaily.Text         = darkSky.Daily.Data[0].WindBearing.ToStringCultureFormatted();
        }
Exemplo n.º 6
0
 public ThermometerController(IOptions <DarkSky> darkSky, IThermometerRepo thermometerRepo)
 {
     _darkSky         = darkSky.Value;
     _thermometerRepo = thermometerRepo;
 }