Esempio n. 1
0
        public void GetLatestForecast()
        {
            //String uri = XML_FOLDER + Utils.GetXmlFileName(mForecastTown, XML_72HR_POSTFIX);
            String uri = XML_FOLDER + Utils.GetXmlFileName(mForecastTown, XML_WEEKDAY_POSTFIX);

            ForecastDownloader forecastDownloader = new ForecastDownloader();
            forecastDownloader.DownloadStringCompleted += ((sender, e) =>
            {
                if (e.Error != null || e.Result == null)
                {
                }
                else
                {
                    //Utils.saveXML(Utils.GetXmlFileName(mForecastTown, XML_72HR_POSTFIX), e.Result);
                    Utils.saveXML(Utils.GetXmlFileName(mForecastTown, XML_WEEKDAY_POSTFIX), e.Result);
                    UpdateFromXml();
                }

                OnUpdateCompleted();
            });
            forecastDownloader.DownloadStringAsync(new Uri(uri, UriKind.Absolute));
        }
        /*-------------------------------------------------------------------------------*/
        public void Get72HrForecast()
        {
            String uri = XML_FOLDER + Utils.GetXmlFileName(Navigation.ForecastCity, XML_72HR_POSTFIX);

            ForecastDownloader forecastDownloader = new ForecastDownloader();
            forecastDownloader.DownloadStringCompleted += ((sender, e) =>
            {
                if (e.Error != null)
                {
                    if (e.Error.Message == WeatherForecast.Util.DownloadStringCompletedEventArgs.NETWORK_UNAVAILABLE)
                    {
                        Load72HrForecastData();
                    }
                }
                else if (e.Result == null)
                {
                    Load72HrForecastData();
                }
                else
                {
                    Utils.saveXML(Utils.GetXmlFileName(Navigation.ForecastCity, XML_72HR_POSTFIX), e.Result);
                    Load72HrForecastData();

                    TileUpdateWorker tileUpdateWorker = new TileUpdateWorker();
                    tileUpdateWorker.UpdateFromXml();
                }
            });
            forecastDownloader.DownloadStringAsync(new Uri(uri, UriKind.Absolute));

/*            if (NetworkInterface.GetIsNetworkAvailable())
            {
                try
                {
                    WebClient downloader = new WebClient();
                    //Uri rssUri = new Uri(XML_FOLDER + XML_WEEKDAY, UriKind.Absolute);
                    String uri = "";
                    if (Navigation.ForecastCity.ID.StartsWith("630"))
                        uri = XML_FOLDER + GetXmlFileName(XML_72HR_POSTFIX);
                    else
                        uri = XML_FOLDER + GetXmlFileName(XML_72HR_POSTFIX);
                    Uri rssUri = new Uri(uri, UriKind.Absolute);
                    downloader.DownloadStringCompleted += new DownloadStringCompletedEventHandler(On72HrForecastDownloaded);
                    downloader.DownloadStringAsync(rssUri);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("無法下載最新的天氣資訊!請檢查網路連線。");
                    Load72HrForecastData();
                }
            }
            else
            {
                MessageBox.Show("無法下載最新的天氣資訊!請檢查網路連線。");
                Load72HrForecastData();
            }*/
        }