private async Task <bool> ProcessContactFeeds(List <FeedOperationDetails> fodList) { List <WallService.WallRequestData> requestData = new List <WallService.WallRequestData>(); using (List <FeedOperationDetails> .Enumerator enumerator = fodList.GetEnumerator()) { while (enumerator.MoveNext()) { FeedOperationDetails current = enumerator.Current; requestData.Add(new WallService.WallRequestData() { UserId = RemoteIdHelper.GetItemIdByRemoteId(current.OwnerRemoteId), Offset = this.GetRequiredOffset(current), Count = current.ItemCount }); } } BackendResult <List <WallData>, ResultCode> res = await WallService.Current.GetWallForManyUsers(requestData); if (res.ResultCode != ResultCode.Succeeded) { return(false); } for (int i = 0; i < fodList.Count && i < res.ResultData.Count; ++i) { FeedOperationDetails fod = fodList[i]; WallData currentWallData = res.ResultData[i]; int nextOffset = this.GetRequiredOffset(fod) + currentWallData.wall.Count; Feed feed = await SocialManager.OpenContactFeedAsync(fod); foreach (WallPost wallPost in currentWallData.wall) { FeedItem feedItem = this.CreateFeedItem(wallPost, currentWallData.groups, currentWallData.profiles, true); if (feedItem != null) { this.SetRequiredOffset(feedItem, nextOffset); ((ICollection <FeedItem>)feed.Items).Add(feedItem); } } await feed.SaveAsync(); currentWallData = null; } return(true); }