Beispiel #1
0
        private void OnConfigurationsReceived(object sender, ConfigurationReceivedEventArgs e)
        {
            SettingsInfo settingsInfo = SettingsInfo.FromJson(e.Args);

            OutputDirectory = settingsInfo.OutputDirectory;

            lock (_lock)
            {
                Monitor.Pulse(_lock);
            }
        }
        /// <summary>
        ///     Parse the msg recieved from the server.
        /// </summary>
        /// <param name="msg">The message to parse.</param>
        public void ParseMessage(string msg)
        {
            string[]    parameters = msg.Split('|');
            CommandEnum command    = (CommandEnum)Enum.Parse(typeof(CommandEnum), parameters[0]);

            switch (command)
            {
            case CommandEnum.NewLogCommand:
                Log(parameters[1], (EventLogEntryType)Enum.Parse(typeof(EventLogEntryType), parameters[2]));
                break;

            case CommandEnum.CloseDirectoryHandlerCommand:
                DirectoryHandlerClosedEventArgs
                    dhceArgs = new DirectoryHandlerClosedEventArgs(parameters[1], "hmm");

                DirectoryHandlerRemoved?.Invoke(this, dhceArgs);
                break;

            case CommandEnum.NewFileCommand:
                break;

            case CommandEnum.ConfigCommand:
                ConfigurationReceivedEventArgs creArgs = new ConfigurationReceivedEventArgs(parameters[1]);
                ConfigurationReceived?.Invoke(this, creArgs);
                break;

            case CommandEnum.LogHistoryCommand:
                string  jsonMsg        = msg.Replace(CommandEnum.LogHistoryCommand + "|", "");
                JObject logHistoryJson = JObject.Parse(jsonMsg);
                List <Tuple <string, EventLogEntryType> > entries =
                    logHistoryJson["LOGS"].ToObject <List <Tuple <string, EventLogEntryType> > >();

                foreach (Tuple <string, EventLogEntryType> logEntry in entries)
                {
                    Log(logEntry.Item1, logEntry.Item2);
                }
                LogHistoryMessageRecieved?.Invoke(this, null);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }