public async Task <IEnumerable <GetFriendsResponse> > Handle(GetFriendsQuery request, CancellationToken cancellationToken) { _logger.LogInformation("GetFriendsQueryHandler was called"); var friends = await _repository.FindAsync(cancellationToken); if (!friends.Any()) { _notificationContext.AddNotification("Nenhum Amigo Encontrado", "Não existe nenhum amigo no Banco de Dados :("); return(default);
public async void VerifyGhostFriendships() { var body = new GetFriendsQuery() { UserId = 1 }; HttpResponseMessage response = await _client.GetAsync(UsersUrl + "/3/friends"); response.EnsureSuccessStatusCode(); IEnumerable <UserModel> friends = await response.DeserializeCollection <UserModel>(); Assert.True(friends.All(user => user.Id == 1)); }
public async Task <IList <FriendModel> > Handle(GetFriendsQuery request, CancellationToken cancellationToken) { var currentUserId = _currentUserService.GetUserIdOrThrow(); var requestedBy = await _dbContext.Friendships .Where(x => x.RequestedById == currentUserId) .Select(x => new FriendModel { Id = x.RequestedTo.Id, Name = x.RequestedTo.Name.FullName, Gender = x.RequestedTo.Gender.ToString(), Approved = x.Approved }) .AsNoTracking() .ToListAsync(cancellationToken); var requestedTo = await _dbContext.Friendships .Where(x => x.RequestedToId == currentUserId) .Select(x => new FriendModel { Id = x.RequestedBy.Id, Name = x.RequestedBy.Name.FullName, Gender = x.RequestedBy.Gender.ToString(), Approved = x.Approved }) .AsNoTracking() .ToListAsync(cancellationToken); var friends = requestedBy.Union(requestedTo).ToList(); foreach (var friend in friends) { friend.IsOnline = _connectedUsersService.ConnectedUsers .Any(x => x.UserId == friend.Id); } return(friends); }