Show correct unit in weather sample
This commit is contained in:
parent
bfb9713484
commit
f714f60d75
|
@ -193,7 +193,7 @@ namespace Ooui
|
||||||
public static string GetUrl (string path)
|
public static string GetUrl (string path)
|
||||||
{
|
{
|
||||||
var localhost = host == "*" ? "localhost" : host;
|
var localhost = host == "*" ? "localhost" : host;
|
||||||
var url = Path.Combine($"http://{localhost}:{port}{path}");
|
var url = $"http://{localhost}:{port}{path}";
|
||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,11 +16,13 @@ namespace WeatherApp
|
||||||
|
|
||||||
if (results["weather"] != null)
|
if (results["weather"] != null)
|
||||||
{
|
{
|
||||||
|
string tempUnit = GetTempUnit(units);
|
||||||
|
string speedUnit = GetSpeedUnit(units);
|
||||||
Weather weather = new Weather
|
Weather weather = new Weather
|
||||||
{
|
{
|
||||||
Title = (string)results["name"],
|
Title = (string)results["name"],
|
||||||
Temperature = (string)results["main"]["temp"] + " F",
|
Temperature = (string)results["main"]["temp"] + tempUnit,
|
||||||
Wind = (string)results["wind"]["speed"] + " mph",
|
Wind = (string)results["wind"]["speed"] + speedUnit,
|
||||||
Humidity = (string)results["main"]["humidity"] + " %",
|
Humidity = (string)results["main"]["humidity"] + " %",
|
||||||
Visibility = (string)results["weather"][0]["main"]
|
Visibility = (string)results["weather"][0]["main"]
|
||||||
};
|
};
|
||||||
|
@ -37,5 +39,29 @@ namespace WeatherApp
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static string GetSpeedUnit(string units)
|
||||||
|
{
|
||||||
|
switch (units)
|
||||||
|
{
|
||||||
|
case "imperial":
|
||||||
|
return " mph";
|
||||||
|
default:
|
||||||
|
return " kph";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string GetTempUnit(string units)
|
||||||
|
{
|
||||||
|
switch (units)
|
||||||
|
{
|
||||||
|
case "metric":
|
||||||
|
return " °C";
|
||||||
|
case "imperial":
|
||||||
|
return " °F";
|
||||||
|
default:
|
||||||
|
return " °K";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
namespace WeatherApp
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace WeatherApp
|
||||||
{
|
{
|
||||||
public class Weather
|
public class Weather
|
||||||
{
|
{
|
||||||
|
@ -9,6 +11,7 @@
|
||||||
public string Visibility { get; set; }
|
public string Visibility { get; set; }
|
||||||
public string Sunrise { get; set; }
|
public string Sunrise { get; set; }
|
||||||
public string Sunset { get; set; }
|
public string Sunset { get; set; }
|
||||||
|
public List<string> UnitOfMeasures { get; set; }
|
||||||
|
|
||||||
public Weather()
|
public Weather()
|
||||||
{
|
{
|
||||||
|
@ -21,6 +24,7 @@
|
||||||
this.Visibility = " ";
|
this.Visibility = " ";
|
||||||
this.Sunrise = " ";
|
this.Sunrise = " ";
|
||||||
this.Sunset = " ";
|
this.Sunset = " ";
|
||||||
|
this.UnitOfMeasures = new List<string>{"kelvin", "metric", "imperial"};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
<Label x:Name="zipCodeLabel" Text="Zip Code" Style="{StaticResource labelStyle}" />
|
<Label x:Name="zipCodeLabel" Text="Zip Code" Style="{StaticResource labelStyle}" />
|
||||||
<Entry x:Name="zipCodeEntry" />
|
<Entry x:Name="zipCodeEntry" />
|
||||||
<Label x:Name="unitOfMeasureLabel" Text="Unit Of Measure" Style="{StaticResource labelStyle}" />
|
<Label x:Name="unitOfMeasureLabel" Text="Unit Of Measure" Style="{StaticResource labelStyle}" />
|
||||||
<Entry x:Name="unitOfMeasure" Placeholder="kelvin (default), metric, imperial"/>
|
<Picker x:Name="unitOfMeasure" />
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
<StackLayout Padding="0,0,0,10" VerticalOptions="End">
|
<StackLayout Padding="0,0,0,10" VerticalOptions="End">
|
||||||
<Button x:Name="getWeatherBtn" Text="Get Weather" WidthRequest="185" BorderWidth="1" >
|
<Button x:Name="getWeatherBtn" Text="Get Weather" WidthRequest="185" BorderWidth="1" >
|
||||||
|
|
|
@ -12,14 +12,18 @@ namespace WeatherApp
|
||||||
getWeatherBtn.Clicked += GetWeatherBtn_Clicked;
|
getWeatherBtn.Clicked += GetWeatherBtn_Clicked;
|
||||||
|
|
||||||
//Set the default binding to a default object for now
|
//Set the default binding to a default object for now
|
||||||
this.BindingContext = new Weather();
|
this.BindingContext = Weather;
|
||||||
|
unitOfMeasure.ItemsSource = Weather.UnitOfMeasures;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Weather Weather { get; } = new Weather();
|
||||||
|
|
||||||
private async void GetWeatherBtn_Clicked(object sender, EventArgs e)
|
private async void GetWeatherBtn_Clicked(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (!String.IsNullOrEmpty(zipCodeEntry.Text))
|
if (!String.IsNullOrEmpty(zipCodeEntry.Text))
|
||||||
{
|
{
|
||||||
Weather weather = await Core.GetWeather(zipCodeEntry.Text, unitOfMeasure.Text);
|
|
||||||
|
Weather weather = await Core.GetWeather(zipCodeEntry.Text, (string)unitOfMeasure.SelectedItem);
|
||||||
if (weather != null)
|
if (weather != null)
|
||||||
{
|
{
|
||||||
this.BindingContext = weather;
|
this.BindingContext = weather;
|
||||||
|
|
Loading…
Reference in New Issue