예제 #1
0
        public async Task <PagedList <UserDto> > GetOnlineFriends(Guid userId, PaginationParams paginationParams)
        {
            List <Guid> onlineUsersIds = GetOnlineUsers();
            List <Guid> userFriendsIds = _friendsRelationService.GetUserFriendsId(userId);

            List <Guid>      onlineFriendsIds   = onlineUsersIds.Intersect(userFriendsIds).ToList();
            PagedList <Guid> onlineFriendsPages = PagedList <Guid> .Create(onlineFriendsIds,
                                                                           paginationParams.PageNumber,
                                                                           paginationParams.PageSize,
                                                                           (paginationParams.PageNumber - 1) *paginationParams.PageSize + paginationParams.Skip);

            List <UserDto> onlineFriendsFromApi = await _userService.GetUsersAsync(onlineFriendsPages);

            return(PagedList <UserDto> .CreateNewWithSameParams(onlineFriendsPages, onlineFriendsFromApi));
        }
예제 #2
0
 public PagedList <PostDto> GetLatestFriendsPosts(Guid userId, PaginationParams paginationParams)
 {
     _logger.LogDebug("Trying to get user and friends latest posts: {userid}", userId);
     if (userId == Guid.Empty)
     {
         throw new ArgumentNullException(nameof(userId));
     }
     try
     {
         List <Guid>    friendsId   = _friendsRelationService.GetUserFriendsId(userId);
         List <PostDto> latestPosts = GetLatestFriendsPosts(userId, friendsId);
         return(PagedList <PostDto> .Create(latestPosts,
                                            paginationParams.PageNumber,
                                            paginationParams.PageSize,
                                            (paginationParams.PageNumber - 1) *paginationParams.PageSize + paginationParams.Skip));
     }
     catch (Exception ex)
     {
         _logger.LogError(ex, "Error occured during getting latest posts.");
         throw;
     }
 }