Beispiel #1
0
        /// <summary>
        /// Executes the specified legacy command.
        /// </summary>
        /// <param name="tenantName">The name of the tenant on which the command will be executed.</param>
        /// <param name="args">Command name and arguments.</param>
        /// <param name="switches">Command switches.</param>
        /// <param name="directConsole">
        /// <c>true</c> to force orchard output directly into <see cref="Console.Out"/>; otherwise, <c>false</c>.
        /// </param>
        /// <returns>The command's output.</returns>
        public string ExecuteCommand(
            string tenantName,
            string[] args,
            Dictionary <string, string> switches,
            bool directConsole)
        {
            var agent = new CommandHostAgent();

            agent.StartHost(Console.In, Console.Out);
            try
            {
                if (directConsole)
                {
                    agent.RunCommand(Console.In, Console.Out, tenantName, args, switches);
                    return(null);
                }
                else
                {
                    using (TextWriter writer = new StringWriter(CultureInfo.CurrentCulture))
                    {
                        agent.RunCommand(Console.In, writer, tenantName, args, switches);
                        return(writer.ToString());
                    }
                }
            }
            finally
            {
                agent.StopHost(Console.In, Console.Out);
            }
        }
Beispiel #2
0
        private RequestDetails SendCommand(string command)
        {
            var details    = new RequestDetails();
            var args       = new CommandLineParser().Parse(command);
            var parameters = new CommandParametersParser().Parse(args);
            var agent      = new CommandHostAgent();
            var input      = new StringReader("");
            var output     = new StringWriter();

            details.StatusCode = (int)agent.RunSingleCommand(
                input,
                output,
                "Default",
                parameters.Arguments.ToArray(),
                parameters.Switches.ToDictionary(kv => kv.Key, kv => kv.Value));
            details.StatusDescription = details.StatusCode.ToString();
            details.ResponseText      = output.ToString();

            return(details);
        }
        public void WhenIExecute(string commandLine)
        {
            var details = new RequestDetails();

            Binding <WebAppHosting>().Host.Execute(() => {
                var args           = new CommandLineParser().Parse(commandLine);
                var parameters     = new CommandParametersParser().Parse(args);
                var agent          = new CommandHostAgent();
                var input          = new StringReader("");
                var output         = new StringWriter();
                details.StatusCode = (int)agent.RunSingleCommand(
                    input,
                    output,
                    "Default",
                    parameters.Arguments.ToArray(),
                    parameters.Switches.ToDictionary(kv => kv.Key, kv => kv.Value));
                details.StatusDescription = details.StatusCode.ToString();
                details.ResponseText      = output.ToString();
            });

            Binding <WebAppHosting>().Details = details;
        }