XDAFileWatcher.ServiceHost.ForceEventRequestHandler C# (CSharp) Méthode

ForceEventRequestHandler() private méthode

private ForceEventRequestHandler ( GSF.ServiceProcess.ClientRequestInfo requestInfo ) : void
requestInfo GSF.ServiceProcess.ClientRequestInfo
Résultat void
        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());
            }
        }