public override void Execute(object parameter) { if (CanExecute(parameter)) { int id = int.Parse(parameter.ToString()); SAForum forum = new SAForum() { ID = id }; Navigating.Fire(this); NavigateToForum(forum); } }
public static SAForum Build(HtmlNode node) { var url = node.Attributes["href"].Value; var tokens = url.Split('='); SAForum forum = new SAForum(); forum.ID = Int32.Parse(tokens.Last()); forum.ForumName = node.InnerText.Trim(); forum.ForumName = ContentFilter.Censor(forum.ForumName); return forum; }
private void NavigateToForum(SAForum forum) { if (forum == null) { MessageBox.Show("Could not locate valid forum.", ":(", MessageBoxButton.OK); return; } PhoneApplicationService.Current.State["Forum"] = forum; var frame = App.Current.RootVisual as PhoneApplicationFrame; if (frame != null) { string uri = "/ThreadList.xaml?ID=" + forum.ID; frame.Navigate(new Uri(uri, UriKind.RelativeOrAbsolute)); } }
private List<SAForum> ParseData(HtmlDocument doc) { if(doc == null) return null; var parent = doc.DocumentNode; List<SAForum> forums = new List<SAForum>(100); var selectNode = parent.Descendants("select") .Where(node => node.GetAttributeValue("name", "").Equals("forumid")) .FirstOrDefault(); if (selectNode != null) { var forumNodes = selectNode.Descendants("option").ToArray(); foreach (var node in forumNodes) { if (worker.CancellationPending) return null; var value = node.Attributes["value"].Value; int id = 0; if (Int32.TryParse(value, out id) && id > 0) { string name = node.NextSibling.InnerText; name = HttpUtility.HtmlDecode(name); if (name != String.Empty) { name = name.Replace("-", ""); name = name.Trim(); if (!forumBlackList.Contains(name)) { var forum = new SAForum() { ID = id, ForumName = name }; Data.SAForumDB.SetDefaultMapping(forum); forums.Add(forum); } } } } } return forums; }
public static void SetDefaultMapping(SAForum forum) { int id = forum.ID; foreach (var subforum in DefaultSubforums) { if (subforum.ForumIDs.Contains(id)) { subforum.Forums.Add(forum); return; } } if (forum.Subforum == null) { forum.Subforum = subforums[0]; } }