コード例 #1
0
        private async Task <bool> ProcessHomeFeed(DownloadHomeFeedOperation downloadHomeFeedOperation)
        {
            try
            {
                List <Task>          taskList = new List <Task>();
                FeedOperationDetails op       = downloadHomeFeedOperation.FeedOperationDetails;
                BackendResult <NewsFeedData, ResultCode> res = await NewsFeedService.Current.GetNewsFeed(this.CreateNewsFeedGetParams(op));

                if (res.ResultCode == ResultCode.Succeeded)
                {
                    NewsFeedData newsFeedData = res.ResultData;
                    Feed         feed         = await SocialManager.OpenHomeFeedAsync(op);

                    foreach (NewsItem newsFeedItem in newsFeedData.items)
                    {
                        FeedItem feedItem = this.CreateFeedItem(newsFeedItem, newsFeedData.groups, newsFeedData.profiles);
                        if (feedItem != null)
                        {
                            ((ICollection <FeedItem>)feed.Items).Add(feedItem);
                        }
                    }
                    if (((IEnumerable <FeedItem>)feed.Items).Any <FeedItem>())
                    {
                        RemoteIdHelper.NewsFeedNewFromData.Instance.SetParams(((IEnumerable <FeedItem>)feed.Items).Last <FeedItem>().RemoteId, res.ResultData.new_offset, res.ResultData.next_from);
                    }
                    await feed.SaveAsync();

                    newsFeedData = (NewsFeedData)null;
                }
                return(res.ResultCode == ResultCode.Succeeded);
            }
            catch
            {
                Debugger.Break();
                return(false);
            }
        }