public async Task LoadAllItems(BlogGroup group) { var cachedItems = await LoadCachedItems(group); group.ItemCount = cachedItems.Count; group.NewItemCount = 0; var newItems = await LoadLiveItems(group); foreach (var item in newItems.Where(i => !cachedItems.Contains(i, new BaseItemComparer()))) { var error = string.Empty; try { var client = GetClient(); var page = await client.GetStringAsync(item.PageUri); item.ImageUriList = new ObservableCollection <Uri>(BlogUtility.ExtractImagesFromPage(page)); foreach (var image in item.ImageUriList) { ImageUriManager.AddImage(item.Id, image); } } catch (Exception ex) { error = ex.Message; } if (!string.IsNullOrEmpty(error)) { await _dialog.ShowDialogAsync(error); } cachedItems.Add(item); group.NewItemCount++; await _storage.SaveItem(group.Id.GetHashCode().ToString(), item); } foreach (var item in cachedItems.OrderByDescending(i => i.PostDate)) { foreach (var image in item.ImageUriList) { ImageUriManager.AddImage(item.Id, image); } group.Items.Add(item); } group.ItemCount = group.Items.Count(); }
private void LoadTestGroups() { var jeremyGroup = new BlogGroup { Id = JEREMY_BLOG, PageUri = new Uri(JEREMY_BLOG, UriKind.Absolute), Title = "Jeremy Likness' Blog", RssUri = new Uri("http://www.wintellect.com/CS/blogs/jlikness/rss.aspx", UriKind.Absolute), }; GroupList.Add(jeremyGroup); var item = new BlogItem { Id = SAMPLE_BLOG, PageUri = new Uri(SAMPLE_BLOG, UriKind.Absolute), Title = "Windows 8: The Facts about ARM, Metro, and the Blue Stack", Description = "Many eyes will be focused on Barcelona on February 29, 2012 when Microsoft releases the Windows 8 Consumer Preview or what many are calling the beta version of the new platform. You’ve probably heard quite a bit about the Metro interface. It has design...", PostDate = DateTime.Now, ImageUriList = new ObservableCollection <Uri>(new[] { new Uri( "http://lh6.ggpht.com/-qhW3FfZ7vXI/TzScQ_3eEEI/AAAAAAAAAds/3en8ijjglEg/stacks_thumb%25255B1%25255D.jpg?imgmax=800", UriKind.Absolute), new Uri( "http://lh5.ggpht.com/-mUJv5DN5sOQ/TzScRSjHfJI/AAAAAAAAAd8/XErEJslVnKI/stackclr_thumb%25255B1%25255D.png?imgmax=800", UriKind.Absolute), new Uri( "http://lh3.ggpht.com/-yCXImOFtSrc/TzScR2uTZ-I/AAAAAAAAAeM/43a7SGj5Uwo/stacklanguage_thumb%25255B1%25255D.png?imgmax=800", UriKind.Absolute) }), Group = jeremyGroup }; jeremyGroup.Items.Add(item); }
private async Task <IList <BlogItem> > LoadCachedItems(BlogGroup group) { var retVal = new List <BlogItem>(); var groupFolder = group.Id.GetHashCode().ToString(); foreach (var item in await _storage.ListItems(groupFolder)) { try { var post = await _storage.RestoreItem <BlogItem>(groupFolder, item); post.Group = group; retVal.Add(post); } catch (Exception ex) { Debug.WriteLine(ex.ToString()); } } return(retVal); }
private async Task <IList <BlogItem> > LoadLiveItems(BlogGroup group) { return(await _syndicationHelper.LoadItemsAsync(group)); }