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)); } }
private void DataLayerDarkSky_GotData(object sender, DataLayerEventArgs <DarkSky> e) { ClearValues(); DarkSky darkSky = e.Item; Cursor = Cursors.Arrow; if (darkSky == null) { return; } UpdateValues(darkSky); }
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; } }
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()); }
/// <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(); }
public ThermometerController(IOptions <DarkSky> darkSky, IThermometerRepo thermometerRepo) { _darkSky = darkSky.Value; _thermometerRepo = thermometerRepo; }