예제 #1
0
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("GetLatestTweets started.");

            string userId = req.Query["uid"];

            var dbUsers = await _userRepository.TopAsync(p => p.UserId == userId, 1);

            if (dbUsers == null || dbUsers.Count() == 0)
            {
                return(new JsonResult(null));
            }

            var user = dbUsers.ToList().FirstOrDefault(p => p.UserId == userId);

            if (user.Hashtags == null || user.Hashtags.Count == 0)
            {
                return(new JsonResult(null));
            }

            var tweets = _tweetRepository.GetTweetsByHashtags(
                user.Hashtags.Select(p => p.Text).ToArray(),
                DateTime.UtcNow.AddDays(_configurations.Value.AppSettings.TweetsFilterIntervalInDays));

            if (tweets != null)
            {
                tweets = tweets.OrderByDescending(p => p.TweetCreatedOn);
            }

            log.LogInformation("GetLatestTweets completed.");
            return(new JsonResult(tweets));
        }