private async void SearchClick(object sender, RoutedEventArgs e) { string responseXML = await WeatherConnection.LoadDataAsync(searchTextBox.Text); Weather result; using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(responseXML))) { result = Weather.Parse(stream); int _id = db.Table.Local.Count; var wheaterToCreate = new Table() { Id = _id + 1, City = result.City, Temperature = (int)result.Temperature }; AddWeather(wheaterToCreate); } }
private void Worker_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; List <string> cities = new List <string> { "London", "Warsaw", "Paris", "Wrocław", "Poznań", "Łódź", "Gdańsk", "Cork" }; for (int i = 1; i <= cities.Count; i++) { string city = cities[i - 1]; if (worker.CancellationPending == true) { worker.ReportProgress(0, "Cancelled"); e.Cancel = true; return; } else { worker.ReportProgress( (int)Math.Round((float)i * 100.0 / (float)cities.Count), "Loading " + city + "..."); string responseXML = WeatherConnection.LoadDataAsync(city).Result; Weather result; using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(responseXML))) { result = Weather.Parse(stream); int _id = db.Table.Local.Count; var wheaterToCreate = new Table() { Id = _id + 1, City = result.City, Temperature = (int)result.Temperature }; AddWeather(wheaterToCreate); } Thread.Sleep(2000); } } worker.ReportProgress(100, "Done"); }
public async void GetWeatherFromWebSometimes() { DateTime date = DateTime.Now; string dateHours = date.ToString("HH:mm:ss"); CheckWeaterWelcomeTextBlock.Text = "Last update in app: " + dateHours; string responseXML = ""; responseXML = await WeatherConnection.LoadDataAsync(Properties.Settings.Default.City); using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(responseXML))) { XmlTextReader reader = new XmlTextReader(stream); while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: switch (reader.Name) { case "city": CheckWeaterNameCityTextBlock.Text = reader.GetAttribute("name"); while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: switch (reader.Name) { case "sun": CheckWeaterSunriseValueTextBlock.Text = reader.GetAttribute("rise"); CheckWeaterSunsetValueTextBlock.Text = reader.GetAttribute("set"); break; case "temperature": CheckWeaterTemperatureMinTextBlock.Text = "Min: " + reader.GetAttribute("min"); CheckWeaterTemperatureMaxTextBlock.Text = "Max: " + reader.GetAttribute("max"); break; case "speed": CheckWeaterWindSpeedNameTextBlock.Text = reader.GetAttribute("name"); break; case "direction": CheckWeaterWindDirectionNameTextBlock.Text = "Directory: " + reader.GetAttribute("name"); break; case "clouds": CheckCloudsNameTextBlock.Text = reader.GetAttribute("name"); break; case "weather": CheckWeaterValueTextBlock.Text = reader.GetAttribute("value"); break; case "lastupdate": CheckWeaterLastUpdateTextBlock.Text = "Last update: " + reader.GetAttribute("value"); break; } break; case XmlNodeType.Text: CheckWeaterCityCountry.Text = reader.Value; break; } } break; } break; } } } }