Created
January 4, 2018 17:32
-
-
Save dtzitz/1d749928cf30ab666df2c19b3e78d78b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.IO; | |
using System.Linq; | |
using System.Runtime.InteropServices.WindowsRuntime; | |
using Windows.ApplicationModel.Background; | |
using Windows.Foundation; | |
using Windows.Foundation.Collections; | |
using Windows.UI.Xaml; | |
using Windows.UI.Xaml.Controls; | |
using Windows.UI.Xaml.Controls.Primitives; | |
using Windows.UI.Xaml.Data; | |
using Windows.UI.Xaml.Input; | |
using Windows.UI.Xaml.Media; | |
using Windows.UI.Xaml.Media.Imaging; | |
using Windows.UI.Xaml.Navigation; | |
using static isItFreezing.OpenWeatherProxy; | |
// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 | |
namespace isItFreezing | |
{ | |
/// <summary> | |
/// An empty page that can be used on its own or navigated to within a Frame. | |
/// </summary> | |
public sealed partial class MainPage : Page | |
{ | |
public MainPage() | |
{ | |
this.InitializeComponent(); | |
} | |
private async void Florida_Loaded(object sender, RoutedEventArgs e) | |
{ | |
int zipcode = 33709; | |
RootObject myWeather = await OpenWeatherMapProxy.GetWeatherAsync(zipcode); | |
//make the background | |
string flWeatherIcon = String.Format("ms-appx:///Assets/Florida/{0}.png", myWeather.weather[0].icon); | |
ImageBrush ib = new ImageBrush(); | |
ib.ImageSource = new BitmapImage(new Uri(flWeatherIcon, UriKind.Absolute)); | |
ib.Stretch = Stretch.UniformToFill; | |
Florida.Background = ib; | |
//weather info | |
flName.Text = myWeather.name; | |
flTemp.Text = "Temp: " + ((int)myWeather.main.temp).ToString()+ " F"; | |
flHumidity.Text = "Humidity: " + (myWeather.main.humidity).ToString(); | |
flCondition.Text = myWeather.weather[0].description; | |
//polling | |
var builder = new BackgroundTaskBuilder(); | |
builder.Name = "My background trigger"; | |
builder.SetTrigger(new TimeTrigger(30, false)); | |
} | |
private async void Colorado_Loaded(object sender, RoutedEventArgs e) | |
{ | |
int zipcode = 80918; | |
RootObject coWeather = await OpenWeatherMapProxy.GetWeatherAsync(zipcode); | |
//make the background | |
string coWeatherIcon = String.Format("ms-appx:///Assets/Colorado/{0}.png", coWeather.weather[0].icon); | |
ImageBrush ib = new ImageBrush(); | |
ib.ImageSource = new BitmapImage(new Uri(coWeatherIcon, UriKind.Absolute)); | |
ib.Stretch = Stretch.UniformToFill; | |
Colorado.Background = ib; | |
coName.Text = coWeather.name; | |
coTemp.Text = "Temp: " + ((int)coWeather.main.temp).ToString() + " F"; | |
coHumidity.Text = "Humidity: " + (coWeather.main.humidity).ToString(); | |
coCondition.Text = coWeather.weather[0].description; | |
} | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.IO; | |
using System.Linq; | |
using System.Net.Http; | |
using System.Runtime.Serialization; | |
using System.Runtime.Serialization.Json; | |
using System.Text; | |
using System.Threading.Tasks; | |
namespace isItFreezing | |
{ | |
class OpenWeatherProxy | |
{ | |
public class OpenWeatherMapProxy | |
{ | |
public static async Task<RootObject> GetWeatherAsync(int zipcode) | |
{ | |
var http = new HttpClient(); | |
string weatherUrl = String.Format("http://api.openweathermap.org/data/2.5/weather?zip={0},us&appid=nope&units=imperial", zipcode); | |
var response = await http.GetAsync(weatherUrl); | |
var result = await response.Content.ReadAsStringAsync(); | |
var seralizer = new DataContractJsonSerializer(typeof(RootObject)); | |
var ms = new MemoryStream(Encoding.UTF8.GetBytes(result)); | |
var data = (RootObject)seralizer.ReadObject(ms); | |
return data; | |
} | |
} | |
[DataContract] | |
public class Coord | |
{ | |
[DataMember] | |
public double lon { get; set; } | |
[DataMember] | |
public double lat { get; set; } | |
} | |
[DataContract] | |
public class Weather | |
{ | |
[DataMember] | |
public int id { get; set; } | |
[DataMember] | |
public string main { get; set; } | |
[DataMember] | |
public string description { get; set; } | |
[DataMember] | |
public string icon { get; set; } | |
} | |
[DataContract] | |
public class Main | |
{ | |
[DataMember] | |
public double temp { get; set; } | |
[DataMember] | |
public int pressure { get; set; } | |
[DataMember] | |
public int humidity { get; set; } | |
[DataMember] | |
public double temp_min { get; set; } | |
[DataMember] | |
public double temp_max { get; set; } | |
} | |
[DataContract] | |
public class Wind | |
{ | |
[DataMember] | |
public double speed { get; set; } | |
[DataMember] | |
public double deg { get; set; } | |
} | |
[DataContract] | |
public class Clouds | |
{ | |
[DataMember] | |
public int all { get; set; } | |
} | |
[DataContract] | |
public class Sys | |
{ | |
[DataMember] | |
public int type { get; set; } | |
[DataMember] | |
public int id { get; set; } | |
[DataMember] | |
public double message { get; set; } | |
[DataMember] | |
public string country { get; set; } | |
[DataMember] | |
public int sunrise { get; set; } | |
[DataMember] | |
public int sunset { get; set; } | |
} | |
[DataContract] | |
public class RootObject | |
{ | |
[DataMember] | |
public Coord coord { get; set; } | |
[DataMember] | |
public List<Weather> weather { get; set; } | |
[DataMember] | |
public string @base { get; set; } | |
[DataMember] | |
public Main main { get; set; } | |
[DataMember] | |
public int visibility { get; set; } | |
[DataMember] | |
public Wind wind { get; set; } | |
[DataMember] | |
public Clouds clouds { get; set; } | |
[DataMember] | |
public int dt { get; set; } | |
[DataMember] | |
public Sys sys { get; set; } | |
[DataMember] | |
public int id { get; set; } | |
[DataMember] | |
public string name { get; set; } | |
[DataMember] | |
public int cod { get; set; } | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment