public App(string[] data = null) { InitializeComponent(); if (data != null) { EntitiyData entitiyData = new EntitiyData { Location = data[0], Country = data[1], DateTime = long.Parse(data[2]), Temp = double.Parse(data[3]), Icon = data[4], Name = data[5], Desc = data[6], Humidity = long.Parse(data[7]), Pressure = long.Parse(data[8]), Wind = double.Parse(data[9]) }; MainPage = new NavigationPage(new DetailPage(entitiyData)); } else { MainPage = new NavigationPage(new MainPage()); } }
public DetailPage(EntitiyData data) { InitializeComponent(); Title = $"Weather in {data.Location}, {data.Country}"; BindingContext = data; }
async void OnGetWeatherButtonClicked(object sender, EventArgs e) { if (!string.IsNullOrWhiteSpace(_cityEntry.Text)) { loadingData.IsVisible = true; EntitiyData entitiyData = await restService.GetWeatherData(GenerateRequestUri(Constants.Endpoint, "/weather")); data = entitiyData; BindingContext = data; listForecast.ItemsSource = await restService.GetForecastData(GenerateRequestUri(Constants.Endpoint, "/forecast")); loadingData.IsVisible = false; Console.WriteLine("DEBUG - Button Clicked!"); } }
public async Task <List <EntitiyData> > GetForecastData(string query) { List <EntitiyData> list = null; try { var response = await client.GetAsync(query); if (response.IsSuccessStatusCode) { var content = await response.Content.ReadAsStringAsync(); ForecastData forecastData = JsonConvert.DeserializeObject <ForecastData>(content); list = new List <EntitiyData>(); for (int i = 0; i < forecastData.List.Count; i++) { if (i % 8 == 7) { EntitiyData entitiyData = new EntitiyData { Location = forecastData.City.Name, Country = forecastData.City.Country, DateTime = forecastData.List[i].Dt, Temp = forecastData.List[i].Main.Temp, Icon = forecastData.List[i].Weather[0].Icon, Name = forecastData.List[i].Weather[0].Main, Desc = forecastData.List[i].Weather[0].Description, Humidity = forecastData.List[i].Main.Humidity, Pressure = forecastData.List[i].Main.Pressure, Wind = forecastData.List[i].Wind.Speed }; list.Add(entitiyData); } } } } catch (Exception ex) { Debug.WriteLine("\t\tERROR {0}", ex.Message); } return(list); }
async void OnGetLocationButtonClicked(object sender, EventArgs e) { try { var request = new GeolocationRequest(GeolocationAccuracy.Medium); var location = await Geolocation.GetLocationAsync(request); if (location != null) { lt = location.Latitude.ToString(); lg = location.Longitude.ToString(); //await DisplayAlert("Keterangan",$"Latitude: {location.Latitude}, Longitude: { location.Longitude}, Altitude: { location.Altitude}","OK"); loadingData.IsVisible = true; EntitiyData entitiyData = await restService.GetWeatherData(GenerateRequestLatLon(Constants.Endpoint, "/weather", lt, lg)); data = entitiyData; BindingContext = data; listForecast.ItemsSource = await restService.GetForecastData(GenerateRequestLatLon(Constants.Endpoint, "/forecast", lt, lg)); loadingData.IsVisible = false; } } catch (FeatureNotSupportedException fnsEx) { await DisplayAlert("Error", fnsEx.Message, "OK"); } catch (FeatureNotEnabledException fneEx) { await DisplayAlert("Error", fneEx.Message, "OK"); } catch (PermissionException pEx) { await DisplayAlert("Error", pEx.Message, "OK"); } catch (Exception ex) { await DisplayAlert("Error", ex.Message, "OK"); } }
public async Task <EntitiyData> GetWeatherData(string query) { EntitiyData entitiyData = null; try { var response = await client.GetAsync(query); if (response.IsSuccessStatusCode) { var content = await response.Content.ReadAsStringAsync(); WeatherData weatherData = JsonConvert.DeserializeObject <WeatherData>(content); entitiyData = new EntitiyData { Location = weatherData.Title, Country = weatherData.Sys.Country, DateTime = weatherData.Dt, Temp = weatherData.Main.Temperature, Icon = weatherData.Weather[0].Icon, Name = weatherData.Weather[0].Visibility, Desc = weatherData.Weather[0].Description, Humidity = weatherData.Main.Humidity, Pressure = weatherData.Main.Pressure, Wind = weatherData.Wind.Speed }; } } catch (Exception ex) { Debug.WriteLine("\t\tERROR {0}", ex.Message); } return(entitiyData); }
async void OnItemSelected(object sender, SelectedItemChangedEventArgs e) { EntitiyData item = (EntitiyData)e.SelectedItem; await Navigation.PushAsync(new DetailPage(item)); }