Пример #1
0
        private void CommandLine(Session session, Packet packet)
        {
            var reply = new Packet(packet);

            string cmd;

            try
            {
                cmd = packet.GetString();

                if (string.IsNullOrEmpty(cmd))
                {
                    throw new Exception();
                }
            }
            catch (Exception)
            {
                ReplyError(session, packet, Error.Unexpected);
                return;
            }

            string[] cmdParts = cmd.Split(new[] { ' ' }, 2);

            if (cmdParts.Length < 1)
            {
                ReplyError(session, packet, Error.Unexpected);
                return;
            }

            string parms = cmdParts.Length == 2 ? cmdParts[1] : string.Empty;

            string output = commandLineProcessor.Execute(session, cmdParts[0].Trim(), parms);

            reply.AddString(output);
            session.Write(reply);
        }
Пример #2
0
        public override bool Execute()
        {
            if (Debug) Debugger.Launch();

            _success = true;
            var commandProcessor = new CommandLineProcessor(new CommandRepository(ReadCommands(Services.Services.GetService<IEnvironment>())));

            foreach (var cmd in commandProcessor.Execute(new[] { Noun, Verb }.Concat(GetArguments()).ToList()))
                ProcessOutput(cmd);

            return _success;
        }