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)); }