public async Task Send(MessageRequest messageRequest) { var message = await _messagesService.CreateEntityAsync(messageRequest); if (message == null) { return; } var createdMessage = await _messagesService.GetEntityByIdAsync(message.Id); var usersInChat = await _chatsService.GetUsersByChatIdAsync(createdMessage.ChatId); foreach (var userDto in usersInChat) { // Sending to email await SendToEmailIfNeeded(userDto, createdMessage); if (!UsersConnections.ContainsKey(userDto.Id)) { continue; } foreach (string connectionId in UsersConnections[userDto.Id]) { await Clients.Client(connectionId).SendAsync("ReceiveMessage", createdMessage); } } }