public MainWindow() { InitializeComponent(); DataContext = new OpenWeatherViewModel(); ApiHelper.InitializeClient(); }
public void InitializeViewModelTest() { OpenWeatherViewModel vm = new OpenWeatherViewModel(null, DateTime.Today.ToShortDateString()); vm.InitializeViewModel(); Assert.IsNull(vm.HourlyDate); }
public void ShowWeatherInfoTest() { OpenWeatherViewModel vm = new OpenWeatherViewModel(null, DateTime.Today.ToShortDateString()); vm.InitializeViewModel(); Assert.IsNull(vm.HourlyDate); vm.ShowWeatherInfo(DateTime.Today.ToShortDateString()); Assert.IsNull(vm.Clouds_All); }
private async void LoadCountrisTask() { var l = await OpenWeatherViewModel.GetCountriesAsync(); foreach (var x in l.OrderBy(y => y.Value)) { this.ComboBoxCountry.Items.Add(new ComboBoxItem { Tag = x.Key, Content = x.Value }); } this.ComboBoxCountry.IsTextSearchEnabled = true; }
public OpenWeatherModel Get(int airportId) { AirportModel airport = new AirportModel(); using (var connection = GetOpenConnection()) { airport = connection.Query <AirportModel>( @"select AirportId, AirportName, CityName, CountryName, AirportCode, Latitude, Longitude from Airports where AirportId = " + airportId).FirstOrDefault();//<= TODO: use parameters } //TODO: add link to config string urlBase = "http://api.openweathermap.org/data/2.5/onecall?lat={0}&lon={1}&exclude=minutely,hourly,daily&APPID=6ce31626181846df8fb15eed32a345b0&units=metric"; string url = String.Format(urlBase, airport.Latitude, airport.Longitude); OpenWeatherViewModel weatherForecastViewModel = new OpenWeatherViewModel(); string answer; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) using (Stream stream = response.GetResponseStream()) using (StreamReader reader = new StreamReader(stream)) { answer = reader.ReadToEnd(); } weatherForecastViewModel = JsonConvert.DeserializeObject <OpenWeatherViewModel>(answer); OpenWeatherModel model = new OpenWeatherModel(); model = new OpenWeatherModel { CountryName = airport.AirportName,//TODO: change property to airpirtName Sunrise = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc).AddSeconds(weatherForecastViewModel.Current.Sunrise).ToLocalTime(), Sunset = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc).AddSeconds(weatherForecastViewModel.Current.Sunset).ToLocalTime(), Temperature = weatherForecastViewModel.Current.Temp, WeatherMainDescription = weatherForecastViewModel.Current.Weather.Select(w => w.Main).Aggregate((i, j) => i + " " + j), Updated = DateTime.Now, Icon = "http://openweathermap.org/img/wn/" + weatherForecastViewModel.Current.Weather.First()?.Icon + "@2x.png" }; return(model); }
private async void ButonSearchLatitudeLongitude_OnClick(object sender, RoutedEventArgs e) { this.InitVisibility(Visibility.Collapsed); try { var data = await OpenWeatherViewModel.GetWeatherAsync(((ComboBoxItem)ComboBoxCountry.SelectedItem).Tag.ToString(), this.TextBoxPostalCode.Text); data.ForecastViewModel = await ForecastViewModel.GetForecastAsync(((ComboBoxItem)ComboBoxCountry.SelectedItem).Tag.ToString(), this.TextBoxPostalCode.Text); DataContext = data; this.InitVisibility(Visibility.Visible); } catch (System.Net.Http.HttpRequestException exception) { #if DEBUG Console.WriteLine(exception); #endif } }
public OpenWeatherView() { InitializeComponent(); BindingContext = new OpenWeatherViewModel(Navigation); }