private void ForceEventRequestHandler(ClientRequestInfo requestInfo)
{
if (requestInfo.Request.Arguments.ContainsHelpRequest)
{
StringBuilder helpMessage = new StringBuilder();
helpMessage.Append("Forces an event to be processed by the file watcher on a set of files.");
helpMessage.AppendLine();
helpMessage.AppendLine();
helpMessage.Append(" Usage:");
helpMessage.AppendLine();
helpMessage.Append(" ForceEvent <EventType> <File> [<File>...] [Options]");
helpMessage.AppendLine();
helpMessage.AppendLine();
helpMessage.Append(" EventType:".PadRight(20));
helpMessage.Append("Type of the event (Created, Changed, Deleted, Renamed)");
helpMessage.AppendLine();
helpMessage.Append(" File:".PadRight(20));
helpMessage.Append("Name of the file to be processed (wildcards allowed)");
helpMessage.AppendLine();
helpMessage.AppendLine();
helpMessage.Append(" Options:");
helpMessage.AppendLine();
helpMessage.Append(" -?".PadRight(20));
helpMessage.Append("Displays this help message");
DisplayResponseMessage(requestInfo, helpMessage.ToString());
}
else
{
FileEventType eventType;
string filePattern;
string orderedArg;
if (!requestInfo.Request.Arguments.Exists("OrderedArg1"))
{
SendResponse(requestInfo, false, "No event type was specified.");
return;
}
if (!Enum.TryParse(requestInfo.Request.Arguments["OrderedArg1"], true, out eventType))
eventType = FileEventType.None;
for (int i = 2; i <= requestInfo.Request.Arguments.OrderedArgCount; i++)
{
orderedArg = string.Format("OrderedArg{0}", i);
filePattern = requestInfo.Request.Arguments[orderedArg];
if (!Path.IsPathRooted(filePattern))
filePattern = Path.Combine(m_fileWatcher.RootPathToWatch, filePattern);
foreach (string filePath in FilePath.GetFileList(filePattern))
m_fileWatcher.ProcessEvent(filePath, eventType);
}
SendResponse(requestInfo, true, "Command {0} successfully invoked.", requestInfo.Request.Command.QuoteWrap());
}
}