Пример #1
0
        public async Task <List <ResponseTweetDto> > GetTweetByHashtagHandler(GetByTextDto request)
        {
            var hashtag = await _dbContext.Hashtags.Where(p => p.Content.ToLower().Contains(request.Content.ToLower())).Select(p =>
                                                                                                                               new ResponseHashtagDto()
            {
                Id      = p.Id,
                Content = p.Content,
            }).ToListAsync();

            var list = new List <ResponseTweetDto>();

            if (hashtag != null && hashtag.Count > 0)
            {
                foreach (var tag in hashtag)
                {
                    var relations = await _dbContext.HashtagTweetRelations.Where(p => p.HashtagId == tag.Id).Select(p =>
                                                                                                                    new HashtagTweetRelationEntity()
                    {
                        Id        = p.Id,
                        HashtagId = p.HashtagId,
                        TweetId   = p.TweetId
                    }).ToListAsync();

                    if (relations != null && relations.Count > 0)
                    {
                        foreach (var relation in relations)
                        {
                            var tweet = await _dbContext.Tweets.Where(p => p.Id == relation.TweetId).Select(p =>
                                                                                                            new ResponseTweetDto()
                            {
                                Id           = p.Id,
                                Content      = p.Content,
                                CreatedAt    = p.CreatedAt,
                                CreatorId    = p.CreatorId,
                                LikeCount    = p.LikeCount,
                                RetweetCount = p.RetweetCount,
                                IsRetweet    = p.IsRetweet,
                            }).SingleOrDefaultAsync();

                            list.Add(tweet);
                        }
                    }
                }
            }

            List <ResponseTweetDto> SortedList = list.OrderByDescending(o => o.CreatedAt).ToList();

            return(SortedList);
        }
Пример #2
0
        public async Task <List <ResponseTweetDto> > GetTweetByContentHandler(GetByTextDto request)
        {
            var tweet = await _dbContext.Tweets.Where(p => p.Content.ToLower().Contains(request.Content.ToLower())).Select(p =>
                                                                                                                           new ResponseTweetDto()
            {
                Id           = p.Id,
                Content      = p.Content,
                CreatedAt    = p.CreatedAt,
                CreatorId    = p.CreatorId,
                LikeCount    = p.LikeCount,
                RetweetCount = p.RetweetCount,
                IsRetweet    = p.IsRetweet,
            }).ToListAsync();

            List <ResponseTweetDto> SortedList = tweet.OrderByDescending(o => o.CreatedAt).ToList();

            return(SortedList);
        }
Пример #3
0
 public async Task <List <ResponseTweetDto> > GetTweetByHashtag(GetByTextDto request)
 {
     return(await _iGetTweetCommand.GetTweetByHashtagHandler(request));
 }