private async Task Init(FbPagingData <FbPost> posts) { if (posts == null || !posts.data.Any()) { return; } PostsToBeCreated.AddRange(posts.data); await AddCommentIds(posts); if (posts.paging != null && posts.paging.next != null) { var nextPagePosts = await _fbClient.GetPagingData <FbPost>(posts.paging.next); await Init(nextPagePosts); } }
private void RemoveDuplicated() { if (PostsToBeCreated.Any()) { var postIds = PostsToBeCreated.Select(t => t.id).ToList(); var existingPostIds = _conversationService.FindAll() .Where(t => (t.Source == ConversationSource.FacebookVisitorPost || t.Source == ConversationSource.FacebookWallPost) && postIds.Contains(t.OriginalId)).Select(t => t.OriginalId).ToList(); PostsToBeCreated.RemoveAll(t => existingPostIds.Contains(t.id)); } if (CommentsToBeCreated.Any()) { var commentIds = CommentsToBeCreated.Select(t => t.id).ToList(); var existingCommentIds = _messageService.FindAll().Where(t => t.Source == MessageSource.FacebookPostComment && commentIds.Contains(t.OriginalId)).Select(t => t.OriginalId).ToList(); CommentsToBeCreated.RemoveAll(t => existingCommentIds.Contains(t.id)); } if (ReplyCommentsToBeCretaed.Any()) { var replyCommentIds = ReplyCommentsToBeCretaed.Select(t => t.id).ToList(); var existingReplyCommentIds = _messageService.FindAll().Where(t => t.Source == MessageSource.FacebookPostReplyComment && replyCommentIds.Contains(t.OriginalId)).Select(t => t.OriginalId).ToList(); ReplyCommentsToBeCretaed.RemoveAll(t => existingReplyCommentIds.Contains(t.id)); } if (ConversationsToBeCreated.Any()) { var ConversationIds = ConversationsToBeCreated.Select(t => t.Id).ToList(); List <string> MessageIds = new List <string>(); foreach (var conversation in ConversationsToBeCreated) { MessageIds.AddRange(conversation.Messages.data.Select(m => m.Id).ToList()); } var existingMessageIds = _messageService.FindAll().Where(t => t.Source == MessageSource.FacebookMessage && MessageIds.Contains(t.OriginalId)).Select(t => t.OriginalId).ToList(); foreach (var conversation in ConversationsToBeCreated) { conversation.Messages.data.RemoveAll(t => existingMessageIds.Contains(t.Id)); } } }
private void Clear() { PostsToBeCreated.Clear(); CommentsToBeCreated.Clear(); ReplyCommentsToBeCretaed.Clear(); }