Binboo.Core.Application.SafeProcessCommands C# (CSharp) Method

SafeProcessCommands() private method

private SafeProcessCommands ( IChatMessage message ) : void
message IChatMessage
return void
        private void SafeProcessCommands(IChatMessage message)
        {
            IPlugin plugin = _plugins.Where( p => p.Name == message.Body.PluginName() ).Single();
            var results = new List<string>();
            ICommandResult result = CommandResult.None;
            foreach (var commandLine in CommandsFor(message.Body))
            {
                _log.DebugFormat("Processing command line: {0}", commandLine);

                result = ProcessCommand(message.Sender.AsUser(), plugin, commandLine, result);
                results.Add(result.HumanReadable);

                _log.Info(result);
                if (result.Status != CommandStatus.Success) break;
            }

            var resultMessage = string.Join(Environment.NewLine, results.ToArray());
            _log.DebugFormat("Sending result message: '{0}'", resultMessage);

            message.Chat.SendMessage(resultMessage);
        }