Пример #1
0
        public async Task <List <FeedPostsResponse> > Handle(GetPostsOfFollowersQuery request,
                                                             CancellationToken cancellationToken)
        {
            var user = await _feedContext.Users.Where(u => u.UserId.Equals(request.UserId)).Include(u => u.Following)
                       .FirstOrDefaultAsync(cancellationToken) ??
                       await _mediator.Send(new CreateNewFeedUserProfileCommand(request.UserId), cancellationToken);

            var followersAsString = user.Following.Select(u => u.UserId).ToList();
            var serializedRequest =
                JsonConvert.SerializeObject(new PaginatedFeedPostsRequest(request.Page, followersAsString));

            Console.WriteLine(serializedRequest);
            try
            {
                var task = Task.Run(() => _rabbit.Request <List <FeedPostsResponse> >(serializedRequest),
                                    cancellationToken);
                return(task.Wait(TimeSpan.FromSeconds(2)) ? task.Result : new List <FeedPostsResponse>());
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }