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)); }
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; } }