public string ProcessMessage(ChatMessage message)
        {
            if (message == null)
            {
                return(string.Empty);
            }

            chatsService.CreateChat(message.Chat);
            chatsService.CreateUser(message.Author);
            chatsService.AddUserToChat(message.Chat.Id, message.Author.Id);

            var commandType = MessageParser.GetCommandTypeFromMessage(message);

            if (commandType == CommandType.NotCommand)
            {
                return(string.Empty);
            }

            var command = CreateCommand(commandType, message);

            return(command.Execute());
        }
Exemplo n.º 2
0
        public async Task AddUserToChat(int chatId, string userId)
        {
            var result = await _chatsService.AddUserToChat(chatId, userId);

            if (!result)
            {
                return;
            }

            var changedChat = await _chatsService.GetEntityByIdAsync(chatId);

            foreach (var user in changedChat.Users)
            {
                if (!UsersConnections.ContainsKey(user.Id))
                {
                    continue;
                }
                foreach (string connectionId in UsersConnections[user.Id])
                {
                    await Clients.Client(connectionId).SendAsync("ChatChanged", changedChat);
                }
            }
        }