/// <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()); } }
/// <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; } } }