public static async Task <WeatherModel> GetWeather(string zipCode) { //Sign up for a free API key at http://openweathermap.org/appid string key = "2c526a0142a73d3f29394eccf6ec1cb0"; string queryString = "http://api.openweathermap.org/data/2.5/weather?zip=" + zipCode + ",us&appid=" + key + "&units=imperial"; dynamic results = await DataService.GetDataFromService(queryString).ConfigureAwait(false); if (results["weather"] != null) { WeatherModel weather = new WeatherModel(); weather.Title = (string)results["name"]; weather.Temperature = (string)results["main"]["temp"] + " F"; weather.Wind = (string)results["wind"]["speed"] + " mph"; weather.Humidity = (string)results["main"]["humidity"] + " %"; weather.Visibility = (string)results["weather"][0]["main"]; DateTime time = new System.DateTime(1970, 1, 1, 0, 0, 0, 0); DateTime sunrise = time.AddSeconds((double)results["sys"]["sunrise"]); DateTime sunset = time.AddSeconds((double)results["sys"]["sunset"]); weather.Sunrise = sunrise.ToString() + " UTC"; weather.Sunset = sunset.ToString() + " UTC"; return(weather); } else { return(null); } }
public WeatherMainPage() { InitializeComponent(); BindingContext = new WeatherModel(); //WeatherModel wm = new WeatherModel(); //BindingContext = wm; }
private async void getWeatherBtn_Clicked(object sender, EventArgs e) { if (!String.IsNullOrEmpty(zipCodeEntry.Text)) { WeatherModel weather = await Core.GetWeather(zipCodeEntry.Text); BindingContext = weather; getWeatherBtn.Text = "Search Again"; } }
/// <summary> /// Uruchamia socket klienta. /// </summary> /// <param name="city">Nazwa miasta</param> /// <returns>Dane o pogodzie</returns> public static WeatherModel StartClient(string city) { byte[] bytes = new byte[1024]; WeatherModel model = new WeatherModel(); try { IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName()); IPAddress ipAddress = ipHostInfo.AddressList[0]; IPEndPoint remoteEP = new IPEndPoint(ipAddress, 11000); Socket sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); try { sender.Connect(remoteEP); Console.WriteLine("Połączono z {0}", sender.RemoteEndPoint.ToString()); byte[] msg = Encoding.UTF8.GetBytes(city + "<EOF>"); int bytesSent = sender.Send(msg); int bytesRec = sender.Receive(bytes); model = Helper.Deserialize <WeatherModel>(Encoding.UTF8.GetString(bytes, 0, bytesRec)); sender.Shutdown(SocketShutdown.Both); sender.Close(); } catch (ArgumentNullException ane) { Console.WriteLine("ArgumentNullException : {0}", ane.ToString()); } catch (SocketException se) { Console.WriteLine("SocketException : {0}", se.ToString()); } catch (Exception e) { Console.WriteLine("Unexpected exception : {0}", e.ToString()); } } catch (Exception e) { Console.WriteLine(e.ToString()); } return(model); }
/// <summary> /// Podpina dane do kontrolek /// </summary> /// <param name="model">Dane o pogodzie</param> private void BindData(WeatherModel model) { _model = model; labelMiasto.Text = model.Miasto + ", woj: " + model.Wojewodztwo; labelKraj.Text = model.Kraj; labelTemperatura.Text = model.Temperatura + " °C"; labelOpis.Text = model.Opis; labelOpady.Text = model.Opady + " mm/m2"; labelCisnienie.Text = model.Cisnienie + " hPa"; labelWiatr.Text = model.Wiatr + " m/s"; pictureBoxFoto.Image = (GetFoto(model.Foto)); var d1 = model.Dni.ElementAtOrDefault(0); if (d1 != null) { labelD1Opis.Text = d1.Opis; labelD1Temperatura.Text = d1.Temperatura + " °C"; labelD1Cisnienie.Text = d1.Cisnienie + " hPa"; labelD1Dzien.Text = d1.Dzien; pictureBoxD1Foto.Image = (GetFoto(d1.Foto)); } var d2 = model.Dni.ElementAtOrDefault(1); if (d2 != null) { labelD2Opis.Text = d2.Opis; labelD2Temperatura.Text = d2.Temperatura + " °C"; labelD2Cisnienie.Text = d2.Cisnienie + " hPa"; labelD2Dzien.Text = d2.Dzien; pictureBoxD2Foto.Image = (GetFoto(d2.Foto)); } var d3 = model.Dni.ElementAtOrDefault(2); if (d3 != null) { labelD3Opis.Text = d3.Opis; labelD3Temperatura.Text = d3.Temperatura + " °C"; labelD3Cisnienie.Text = d3.Cisnienie + " hPa"; labelD3Dzien.Text = d3.Dzien; pictureBoxD3Foto.Image = (GetFoto(d3.Foto)); } labelAktualizacja.Text = "Ostatnia aktualizacja: " + model.Aktualizacja.ToString("HH:mm:ss dd.MM.yyyy"); }
public static void WriteWeatherForecast(WeatherModel model, string webcite) { Console.WriteLine($"________-------- {webcite} --------________"); Console.WriteLine(); Console.WriteLine("The weather in Saint Petersburg:"); Console.WriteLine($" * Temperature in Celsius - {model.Temperature} degrees."); double temperature = Convert.ToDouble(model.Temperature.Replace(".", ",")); temperature = Math.Round(temperature * 9 / 5 + 32, 2); Console.WriteLine($" * Temperature in Fahrenheit - {temperature} degrees."); Console.WriteLine($" * Humidity - {model.Humidity}%."); Console.WriteLine($" * Probability of precipitation - {model.PrecipitationProbability}%."); Console.WriteLine($" * Сloudiness - {model.CloudCover}%."); Console.WriteLine($" * Wind speed - {model.WindSpeed} m/s."); Console.WriteLine($" * Wind Direction(comes from) - {model.WindDirection} degrees clockwise from due north."); Console.WriteLine(); Console.WriteLine(); }
public static async Task <WeatherModel> GetConditions(string city) { var client = new HttpClient(); var stringResult = await client.GetStringAsync( "http://api.openweathermap.org/data/2.5/weather?" + $"q={city}&APPID={myApiKey}&units=imperial"); var json = JObject.Parse(stringResult); var outModel = new WeatherModel() { Conditions = json["weather"][0]["main"].ToString(), TempF = decimal.Parse(json["main"]["temp"].ToString()) }; return(outModel); }