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); }
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); }
public async Task <List <ResponseTweetDto> > GetTweetByHashtag(GetByTextDto request) { return(await _iGetTweetCommand.GetTweetByHashtagHandler(request)); }