Exemple #1
0
        /// <summary>
        /// Checks for news updates and displays them, if necessary. Is the Async part of prepare.
        /// </summary>
        /// <param name="start">The start.</param>
        /// <remarks>Documented by Dev02, 2007-11-28</remarks>
        private void PrepareAsync(object start)
        {
            if (news == null) //prepare the news transformer in async news thread
            {
                news = new MLifter.BusinessLayer.News(Resources.RssFeedTransformer);
            }

            bool startup = (bool)start;

            if (!startup) //show dialog immediately
            {
                Browser.BeginInvoke((MethodInvoker) delegate { Browser.DocumentText = News.LoadingMessage; });
            }

            if (!Tools.IsUserOnline())
            {
                if (startup)
                {
                    return;
                }
                else
                {
                    lblConnectionError.Visible = true;
                    Browser.Visible            = false;
                }
            }
            else
            {
                string   newsContent;
                int      newNewsCount;
                DateTime newsDate = Settings.Default.NewsDate;
                if (news.GetNewsFeed(out newsContent, ref newsDate, out newNewsCount, Settings.Default.NewsFeedRss))
                {
                    if (newNewsCount > 0 || !startup)
                    {
                        Browser.BeginInvoke((MethodInvoker) delegate { Browser.DocumentText = newsContent; });
                        Settings.Default.NewsDate = newsDate;
                        Settings.Default.Save();
                    }
                }
                else if (!startup)
                {
                    lblConnectionError.Visible = true;
                    Browser.Visible            = false;
                }
            }
        }
        /// <summary>
        /// Shows the news.
        /// </summary>
        /// <remarks>Documented by Dev05, 2007-12-11</remarks>
        private void ShowNews()
        {
            try
            {
                webBrowserNews.BeginInvoke((MethodInvoker)delegate { webBrowserNews.DocumentText = News.LoadingMessage; });

                if (Tools.IsUserOnline())
                {
                    string newsContent;
                    int newNewsCount;

                    DateTime newsDate = Settings.Default.NewsDate;
                    MLifter.BusinessLayer.News news = new MLifter.BusinessLayer.News(Resources.RssFeedTransformer);
                    if (news.GetNewsFeed(out newsContent, ref newsDate, out newNewsCount, Settings.Default.NewsFeedRss, 1))
                    {
                        if (newNewsCount > 0 && !FirstUse)
                        {
                            expandoNews.BeginInvoke((MethodInvoker)delegate
                            {
                                expandoNews.Text = string.Format(Resources.NEWS_NEWNEWS, newNewsCount);
                                expandoNews.Collapsed = false;
                                expandoNews.SpecialGroup = true;
                            });
                        }

                        webBrowserNews.BeginInvoke((MethodInvoker)delegate { webBrowserNews.DocumentText = newsContent; });
                        Properties.Settings.Default.NewsDate = newsDate;
                        Properties.Settings.Default.Save();
                    }
                    else
                    {
                        webBrowserNews.BeginInvoke((MethodInvoker)delegate { webBrowserNews.DocumentText = News.UnavailableMessage; });
                    }
                }
                else
                    expandoNews.BeginInvoke((MethodInvoker)delegate { expandoNews.Collapsed = true; });
            }
            catch (Exception e)
            {
                Trace.WriteLine("News-Thread exception: " + e.ToString());
            }
        }
Exemple #3
0
        /// <summary>
        /// Checks for news updates and displays them, if necessary. Is the Async part of prepare.
        /// </summary>
        /// <param name="start">The start.</param>
        /// <remarks>Documented by Dev02, 2007-11-28</remarks>
        private void PrepareAsync(object start)
        {
            if (news == null) //prepare the news transformer in async news thread
                news = new MLifter.BusinessLayer.News(Resources.RssFeedTransformer);

            bool startup = (bool)start;

            if (!startup) //show dialog immediately
                Browser.BeginInvoke((MethodInvoker)delegate { Browser.DocumentText = News.LoadingMessage; });

            if (!Tools.IsUserOnline())
            {
                if (startup)
                    return;
                else
                {
                    lblConnectionError.Visible = true;
                    Browser.Visible = false;
                }
            }
            else
            {
                string newsContent;
                int newNewsCount;
                DateTime newsDate = Settings.Default.NewsDate;
                if (news.GetNewsFeed(out newsContent, ref newsDate, out newNewsCount, Settings.Default.NewsFeedRss))
                {
                    if (newNewsCount > 0 || !startup)
                    {
                        Browser.BeginInvoke((MethodInvoker)delegate { Browser.DocumentText = newsContent; });
                        Settings.Default.NewsDate = newsDate;
                        Settings.Default.Save();
                    }
                }
                else if (!startup)
                {
                    lblConnectionError.Visible = true;
                    Browser.Visible = false;
                }
            }
        }