private void FavoriteForumButton_OnClick(object sender, RoutedEventArgs e) { // TODO: Move to view model? Change click handler? var forumList = new List <ForumEntity>(); ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings; if (itemGridView.SelectedItems.Any()) { forumList.AddRange(itemGridView.SelectedItems.Cast <ForumEntity>()); List <long> forumIdList = forumList.Select(forum => forum.ForumId).ToList(); localSettings.Values["_forumIds"] = SerializeListToXml(forumIdList); _favoritesEntity = new ForumCategoryEntity("Favorites", "forumid=48") { ForumList = forumList }; Locator.ViewModels.MainForumsPageVm.SetFavoriteForums(new ObservableCollection <ForumCategoryEntity> { _favoritesEntity }); } else { localSettings.Values["_forumIds"] = null; Locator.ViewModels.MainForumsPageVm.SetFavoriteForums(null); } }
public async Task GetFavoriteForums() { var forumEntities = await _db.GetFavoriteForumsAsync(); var favorites = ForumGroupList.FirstOrDefault(node => node.Name.Equals("Favorites")); if (!forumEntities.Any()) { if (favorites != null) { ForumGroupList.Remove(favorites); } OnPropertyChanged("ForumGroupList"); return; } _favoritesEntity = new ForumCategoryEntity { Name = "Favorites", Location = string.Format(Constants.ForumPage, "forumid=48"), ForumList = forumEntities }; if (favorites == null) { ForumGroupList.Insert(0, _favoritesEntity); } else { ForumGroupList.RemoveAt(0); ForumGroupList.Insert(0, _favoritesEntity); } OnPropertyChanged("ForumGroupList"); }
public async void GetFavoriteForums() { using (var db = new FavoriteForumContext()) { var forumEntities = db.Forums.ToList(); _favoritesEntity = new ForumCategoryEntity("Favorites", "forumid=48") { ForumList = forumEntities }; SetFavoriteForums(new ObservableCollection <ForumCategoryEntity> { _favoritesEntity }); } }
public async Task <List <ForumCategoryEntity> > GetForumCategoryMainPage() { var forumGroupList = new List <ForumCategoryEntity>(); var doc = (await _webManager.DownloadHtml(Constants.FORUM_LIST_PAGE)).Document; HtmlNode forumNode = doc.DocumentNode.Descendants("select").FirstOrDefault(node => node.GetAttributeValue("name", string.Empty).Equals("forumid")); if (forumNode != null) { var forumNodes = forumNode.Descendants("option"); foreach (var node in forumNodes) { var value = node.Attributes["value"].Value; int id; if (!int.TryParse(value, out id) || id <= -1) { continue; } if (node.NextSibling.InnerText.Contains("--")) { string forumName = WebUtility.HtmlDecode(node.NextSibling.InnerText.Replace("-", string.Empty)); bool isSubforum = node.NextSibling.InnerText.Count(c => c == '-') > 2; var forumSubCategory = new ForumEntity(forumName, string.Format(Constants.FORUM_PAGE, value), string.Empty, isSubforum); forumGroupList.LastOrDefault().ForumList.Add(forumSubCategory); } else { string forumName = WebUtility.HtmlDecode(node.NextSibling.InnerText); var forumGroup = new ForumCategoryEntity(forumName, string.Format(Constants.FORUM_PAGE, value)); forumGroupList.Add(forumGroup); } } } #if DEBUG forumGroupList[3].ForumList.Add(AddDebugForum()); #endif return(forumGroupList); }
private void GetFavoriteForums() { if (!_localSettings.Values.ContainsKey("_forumIds")) { return; } DeserializeXmlToList((string)_localSettings.Values["_forumIds"]); var forumEntities = new List <ForumEntity>(); foreach (var f in ForumGroupList.Select(forumGroup => forumGroup.ForumList.Where(forum => _forumIds.Contains(forum.ForumId)).ToList())) { forumEntities.AddRange(f); } _favoritesEntity = new ForumCategoryEntity("Favorites", "forumid=48") { ForumList = forumEntities }; SetFavoriteForums(new ObservableCollection <ForumCategoryEntity> { _favoritesEntity }); }
public async Task <ObservableCollection <ForumCategoryEntity> > GetForumCategoryMainPage() { var forumGroupList = new ObservableCollection <ForumCategoryEntity>(); var result = await _webManager.GetData(Constants.FORUM_LIST_PAGE); HtmlDocument doc = result.Document; HtmlNode forumNode = doc.DocumentNode.Descendants("select") .FirstOrDefault(node => node.GetAttributeValue("name", string.Empty).Equals("forumid")); if (forumNode != null) { try { IEnumerable <HtmlNode> forumNodes = forumNode.Descendants("option"); foreach (HtmlNode node in forumNodes) { string value = node.Attributes["value"].Value; int id; if (!int.TryParse(value, out id) || id <= -1) { continue; } if (node.NextSibling.InnerText.Contains("--")) { string forumName = WebUtility.HtmlDecode(node.NextSibling.InnerText.Replace("-", string.Empty)); bool isSubforum = node.NextSibling.InnerText.Count(c => c == '-') > 2; var forumSubCategory = new ForumEntity { Name = forumName.Trim(), Location = string.Format(Constants.FORUM_PAGE, value), IsSubforum = isSubforum }; forumSubCategory.SetForumId(); forumGroupList.LastOrDefault().ForumList.Add(forumSubCategory); } else { string forumName = WebUtility.HtmlDecode(node.NextSibling.InnerText); var forumGroup = new ForumCategoryEntity(forumName, string.Format(Constants.FORUM_PAGE, value)); forumGroupList.Add(forumGroup); } } } catch (Exception ex) { throw new Exception("Main Forum Parsing Error: " + ex.StackTrace); } } #if DEBUG if (forumGroupList.Any()) { forumGroupList[3].ForumList.Add(AddDebugForum()); } #endif return(forumGroupList); }