public async Task SendMessage(string socketId, string message) { if (UserId == null) { return; } var chatMessage = await _teamRepository.AddMessageToTeam(UserId, message); var team = await _teamRepository.FindOneByUserIdAsync(UserId); var teamMembers = await _userRepository.FindManyByUserIdAsync(team.Members.Select(x => x.UserId).ToArray()); foreach (var memberSocketId in teamMembers.Select(x => x.SocketId).Distinct()) { //if (!member.IsOnline) return; await InvokeClientMethodToAllAsync("receiveMessage", memberSocketId, new { UserId = chatMessage.UserId, UserName = teamMembers.FirstOrDefault(usr => usr.Id == UserId)?.Name ?? "Desconhecido", UserEmail = teamMembers.FirstOrDefault(usr => usr.Id == UserId)?.Email, Message = chatMessage.Message, SentAt = chatMessage.SentAt, }); } }