Exemple #1
0
        public async Task <List <Post> > GetPostsAsync(DateTime?lastSyncDate)
        {
            var importedPosts = new List <Post>();

            foreach (var page in _pagesId)
            {
                var facebookPosts = await _facebookPostCreator.GetRawPosts(page.PageId);

                var defaultTitle = _titleBuilder + await _facebookPostCreator.GetPageName(page.PageId);

                foreach (var fbPost in facebookPosts)
                {
                    var isNew      = DateTime.Parse(fbPost.Created_time) > lastSyncDate;
                    var hasContent = !string.IsNullOrEmpty(fbPost.Message);

                    if (isNew && hasContent)
                    {
                        var parsedPost = ExternalPostMapper.ConvertFacebookPostToPost(fbPost, defaultTitle);

                        var attachments = await _facebookPostCreator.GetPostAttachments(fbPost.Id);

                        if (attachments.FirstOrDefault() != null)
                        {
                            var attachmentTitle = attachments.First().Title;
                            if (!string.IsNullOrEmpty(attachmentTitle) && attachmentTitle.Length < 100)
                            {
                                parsedPost.Title = attachmentTitle;
                            }

                            if (attachments.First().Type == "share")
                            {
                                parsedPost.Content +=
                                    "Link: <a href=\"" + attachments.First().Url + "\" target=\"_blank\">" + attachments.First().Title + "</a>";
                            }
                            parsedPost.PostFiles = await _facebookPostCreator.GetPostImages(attachments.First(), fbPost.Id);
                        }
                        importedPosts.Add(parsedPost);
                    }
                }
            }
            return(importedPosts);
        }
 public void Mapper_ConvertFacebookPostToPost_should_throw_argument_null_exception_when_input_argument_is_null()
 {
     Assert.Throws <ArgumentNullException>(() => ExternalPostMapper.ConvertFacebookPostToPost(null, null));
 }