Ejemplo n.º 1
0
        public void Execute(Server server, TcpClient client, IMessage message)
        {
            DisconnectMessage disconnectMessage = message as DisconnectMessage;

            User user = server.GetUsers().Find(u => u.SessionIds.Contains(disconnectMessage.SessionId));

            if (user != null)
            {
                server.RemoveClient(client);
                server.RemoveUsers(user, disconnectMessage.SessionId, client);
            }

            DisconnectResponseMessage disconnectResponseMessage = new DisconnectResponseMessage
            {
                Username = user.Username
            };

            string disconnectResponseMessageJson = JsonSerializer.Serialize(disconnectResponseMessage);

            byte[] disconnectResponseMessageBytes = System.Text.Encoding.UTF8.GetBytes(disconnectResponseMessageJson);

            foreach (TcpClient remoteClient in server.GetClients())
            {
                remoteClient.GetStream().Write(disconnectResponseMessageBytes, 0, disconnectResponseMessageBytes.Length);
            }
        }
        public void Execute(MainWindowViewModel viewModel, IMessage message)
        {
            DisconnectResponseMessage disconnectResponseMessage = message as DisconnectResponseMessage;

            viewModel.ChatHistory += $"{disconnectResponseMessage.Username} disconnected{Environment.NewLine}";
        }