コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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");
        }
コード例 #3
0
        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;
                    }
                }
            }
        }