Exemple #1
0
        public IList <TwitterTweetMessageDto> GetTwitterTweetMessages(int conversationId)
        {
            List <TwitterTweetMessageDto> result = new List <TwitterTweetMessageDto>();
            var converation = _conversationService.Find(conversationId, ConversationSource.TwitterTweet);

            if (converation == null)
            {
                return(result);
            }

            result = _messageService.FindAllByConversationId(conversationId)
                     .OrderBy(t => t.SendTime)
                     .ProjectTo <TwitterTweetMessageDto>()
                     .ToList();
            result.ForEach(t => { t.ParentId = t.ParentId == null ? -1 : t.ParentId; }); // -1?, front-end need this value by now.
            foreach (var message in result)
            {
                ChangeAttachmentMimeType(message.Attachments);
            }
            var messageDtoWithQuote = result.Where(t => !string.IsNullOrWhiteSpace(t.QuoteTweetId)).FirstOrDefault();

            if (messageDtoWithQuote == null)
            {
                return(result);
            }

            var messageWithQuote = _messageService.Find(messageDtoWithQuote.Id);
            var socialAccount    = _socialAccountService.Find(messageWithQuote.IntegrationAccountId);

            if (socialAccount == null)
            {
                return(result);
            }
            var quoteTweetMessage = _twitterService.GetTweetMessage(socialAccount, long.Parse(messageDtoWithQuote.QuoteTweetId));

            if (quoteTweetMessage != null)
            {
                result.Find(t => t.Id == messageDtoWithQuote.Id).QuoteTweet = Mapper.Map <BeQuotedTweetDto>(quoteTweetMessage);
                //  messageDtoWithQuote.QuoteTweet = Mapper.Map<BeQuotedTweetDto>(quoteTweetMessage);
            }

            return(result);
        }