예제 #1
0
 /// <summary>
 /// 執行排程工作的代理程式
 /// </summary>
 /// <param name="task">
 /// 叫用的工作
 /// </param>
 /// <remarks>
 /// 這個方法的呼叫時機為叫用週期性或耗用大量資料的工作時
 /// </remarks>
 protected override void OnInvoke(ScheduledTask task)
 {
     TileUpdateWorker tileUpdateWorker = new TileUpdateWorker();
     tileUpdateWorker.UpdateCompleted += ((sender) =>
     {
         NotifyComplete();
     });
     tileUpdateWorker.Update();
 }
        /*-------------------------------------------------------------------------------*/
        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();
            }*/
        }