예제 #1
0
파일: FormMain.cs 프로젝트: wertrain/seader
        /// <summary>
        /// バックグラウンドでの処理を行います。
        /// フィードの更新処理を行います。
        /// 設定パラメータは Hashtable で指定します。
        /// Hashtable["Url"]       ... フィードのURLを指定します。指定がない場合、全フィードの更新を行います。
        /// Hashtable["ExpandAll"] ... true の場合、読み込み後に全ツリーノードを開きます。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void backgroundWorkerUpdateFeed_DoWork(object sender, DoWorkEventArgs e)
        {
            var worker = (BackgroundWorker)sender;

            worker.ReportProgress(0);

            Hashtable args = (Hashtable)e.Argument;

            if (args == null)
            {
                args = new Hashtable();
            }

            Feed.FeedReader feedReader = new Feed.FeedReader();

            if (args.ContainsKey("Url"))
            {
                Uri           uri  = new Uri((string)args["Url"]);
                Feed.FeedInfo info = feedReader.Read(uri, settingsManager.Setting.DummyUserAgent);

                if (null == info)
                {
                    args["Error"] = true;
                }
                else
                {
                    if (false == this.feedTreeManager.UpdateFeed(info))
                    {
                        args["Error"] = true;
                    }
                }
            }
            else
            {
                foreach (var url in settingsManager.Setting.FeedUrls)
                {
                    var uri  = new Uri(url);
                    var feed = feedReader.Read(uri, settingsManager.Setting.DummyUserAgent);
                    this.feedTreeManager.UpdateFeed(feed);
                }
            }

            e.Result = args;
        }
예제 #2
0
파일: FormMain.cs 프로젝트: wertrain/seader
        /// <summary>
        /// バックグラウンドでの処理を行います。
        /// フィードの更新処理を行います。
        /// 設定パラメータは Hashtable で指定します。
        /// Hashtable["Url"]       ... フィードのURLを指定します。指定がない場合、全フィードの更新を行います。
        /// Hashtable["ExpandAll"] ... true の場合、読み込み後に全ツリーノードを開きます。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void backgroundWorkerUpdateFeed_DoWork(object sender, DoWorkEventArgs e)
        {
            var worker = (BackgroundWorker)sender;
            worker.ReportProgress(0);

            Hashtable args = (Hashtable)e.Argument;
            if (args == null)
            {
                args = new Hashtable();
            }

            Feed.FeedReader feedReader = new Feed.FeedReader();

            if (args.ContainsKey("Url"))
            {
                Uri uri = new Uri((string)args["Url"]);
                Feed.FeedInfo info = feedReader.Read(uri);

                if (null == info)
                {
                    args["Error"] = true;
                }
                else
                {
                    if (false == this.feedTreeManager.UpdateFeed(info))
                    {
                        args["Error"] = true;
                    }
                }
            }
            else
            {
                foreach (var url in settingsManager.Setting.FeedUrls)
                {
                    var uri = new Uri(url);
                    var feed = feedReader.Read(uri);
                    this.feedTreeManager.UpdateFeed(feed);
                }
            }

            e.Result = args;
        }