Exemplo n.º 1
0
        public async Task SendChatMessageAsync(ChatMessageDto chatMessageDto)
        {
            var chatMessageEntity = mapper.Map <ChatMessageEntity>(chatMessageDto);
            await chatMessageRepository.InsertAsync(chatMessageEntity);

            await gameRepository.AddMessageIdToGameAsync(chatMessageDto.GameId, chatMessageEntity.Id);

            var chatMessageToSendDto = mapper.Map <ChatMessageToSendDto>(chatMessageEntity);
            var sender = await userRepository.GetAsync(chatMessageDto.UserId);

            chatMessageToSendDto.UserName = sender.Login;

            var groupName = chatMessageDto.GameId.ToString();
            await Clients.Group(groupName).SendAsync("SendChatMessage", chatMessageToSendDto);
        }