private void ShowClients(ClientRequestInfo requestInfo)
{
if (requestInfo.Request.Arguments.ContainsHelpRequest)
{
StringBuilder helpMessage = new StringBuilder();
helpMessage.Append("Displays a list of clients currently connected to the service.");
helpMessage.AppendLine();
helpMessage.AppendLine();
helpMessage.Append(" Usage:");
helpMessage.AppendLine();
helpMessage.Append(" Clients -options");
helpMessage.AppendLine();
helpMessage.AppendLine();
helpMessage.Append(" Options:");
helpMessage.AppendLine();
helpMessage.Append(" -?".PadRight(20));
helpMessage.Append("Displays this help message");
helpMessage.AppendLine();
helpMessage.AppendLine();
UpdateStatus(requestInfo.Sender.ClientID, UpdateType.Information, helpMessage.ToString());
}
else
{
if (m_remoteClients.Count > 0)
{
// Display info about all of the clients connected to the service.
StringBuilder responseMessage = new StringBuilder();
responseMessage.AppendFormat("Clients connected to {0}:", Name);
responseMessage.AppendLine();
responseMessage.AppendLine();
responseMessage.Append("Client".PadRight(25));
responseMessage.Append(' ');
responseMessage.Append("Machine".PadRight(15));
responseMessage.Append(' ');
responseMessage.Append("User".PadRight(15));
responseMessage.Append(' ');
responseMessage.Append("Connected".PadRight(20));
responseMessage.AppendLine();
responseMessage.Append(new string('-', 25));
responseMessage.Append(' ');
responseMessage.Append(new string('-', 15));
responseMessage.Append(' ');
responseMessage.Append(new string('-', 15));
responseMessage.Append(' ');
responseMessage.Append(new string('-', 20));
lock (m_remoteClients)
{
foreach (ClientInfo clientInfo in m_remoteClients)
{
responseMessage.AppendLine();
if (!string.IsNullOrEmpty(clientInfo.ClientName))
responseMessage.Append(clientInfo.ClientName.PadRight(25));
else
responseMessage.Append("[Not Available]".PadRight(25));
responseMessage.Append(' ');
if (!string.IsNullOrEmpty(clientInfo.MachineName))
responseMessage.Append(clientInfo.MachineName.PadRight(15));
else
responseMessage.Append("[Not Available]".PadRight(15));
responseMessage.Append(' ');
if (!string.IsNullOrEmpty(clientInfo.ClientUser.Identity.Name))
responseMessage.Append(clientInfo.ClientUser.Identity.Name.PadRight(15));
else
responseMessage.Append("[Not Available]".PadRight(15));
responseMessage.Append(' ');
responseMessage.Append(clientInfo.ConnectedAt.ToString("MM/dd/yy hh:mm:ss tt").PadRight(20));
}
}
responseMessage.AppendLine();
responseMessage.AppendLine();
UpdateStatus(requestInfo.Sender.ClientID, UpdateType.Information, responseMessage.ToString());
}
else
{
UpdateStatus(requestInfo.Sender.ClientID, UpdateType.Information, "No clients are connected to {0}\r\n\r\n", Name);
}
}
}