private void GetServerNews()
{
IConfiguration config = ConfigurationManager.GetConfiguration(ProfileManager.CurrentProfile.GameModel);
INewsProvider newsProvider = config.CreateNewsProvider();
if (newsProvider != null) {
List<NewsItem> news = new List<NewsItem>();
try {
foreach (NewsItem item in newsProvider.GetNews()) {
news.Add(new NewsItem(item));
}
} catch (WebException e) {
news = new List<NewsItem>();
news.Add(new NewsItem() {
Subject = e.Message,
Content = e.Message,
Date = DateTime.Now.ToString(),
Mode = "NOTICE"
});
}
this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new DoAddServerNews((s) => {
Rect viewbox;
string mode;
foreach (NewsItem n in news) {
mode = n.Mode;
if (mode == "NOTICE") {
viewbox = new Rect(215, 54, 90, 18);
mode = LanguageManager.Model[e => e.NewsType_Notice];
} else if (mode == "EVENT") {
viewbox = new Rect(215, 36, 90, 18);
mode = LanguageManager.Model[e => e.NewsType_Event];
} else if (mode == "PATCH") {
viewbox = new Rect(215, 0, 90, 18);
mode = LanguageManager.Model[e => e.NewsType_Patch];
} else {
viewbox = new Rect(215, 0, 90, 18);
}
ServerNews.Add(new ServerNewsItemViewModel(LanguageManager) {
Title = n.Subject,
Content = n.Content,
Date = string.IsNullOrEmpty(n.Date) ? null : (DateTime?)DateTime.ParseExact(n.Date, "MM-dd-yyyy", CultureInfo.InvariantCulture),
TypeName = mode,
Link = n.Url,
ImgVB = viewbox
});
}
}), news);
}
}