Exemplo n.º 1
0
        internal static RunResult Run(this CommandAction commandAction, ICommandDependencyResolver resolver,
                                      CommandLineParseResult parseResult)
        {
            var instance = resolver.Resolve(commandAction.LinkedToMethod.DeclaringType);

            object[] parameterValues = GetCommandParameterValues(commandAction.Parameters, parseResult);

            var returnResult = new RunResult()
            {
                ReturnType = commandAction.LinkedToMethod.ReturnType
            };

            if (commandAction.LinkedToMethod.ReturnType != typeof(void))
            {
                var res = commandAction.LinkedToMethod.Invoke(instance, parameterValues);
                returnResult.Json = JsonConvert.SerializeObject(

                    res,
                    new JsonSerializerSettings
                {
                    ContractResolver = new CamelCasePropertyNamesContractResolver()
                });
            }
            else
            {
                commandAction.LinkedToMethod.Invoke(instance, parameterValues);
            }
            return(returnResult);
        }
        internal static void Run(this CommandAction commandAction, ICommandDependencyResolver resolver, CommandLineParseResult parseResult)
        {
            var instance = resolver.Resolve(commandAction.LinkedToMethod.DeclaringType);
            object[] parameterValues = GetCommandParameterValues(commandAction.Parameters, parseResult);

            commandAction.LinkedToMethod.Invoke(instance, parameterValues);
        }
        internal static void Run(this CommandAction commandAction, ICommandDependencyResolver resolver, CommandLineParseResult parseResult)
        {
            var instance = resolver.Resolve(commandAction.LinkedToMethod.DeclaringType);

            object[] parameterValues = GetCommandParameterValues(commandAction.Parameters, parseResult);

            commandAction.LinkedToMethod.Invoke(instance, parameterValues);
        }
 public CommandRunner WithDependencyResolver(ICommandDependencyResolver resolver)
 {
     _resolver = resolver;
     return(this);
 }
Exemplo n.º 5
0
        internal static async Task <RunResult> RunAsync(this CommandAction commandAction, ICommandDependencyResolver resolver,
                                                        CommandLineParseResult parseResult)
        {
            var instance = resolver.Resolve(commandAction.LinkedToMethod.DeclaringType);

            object[] parameterValues = GetCommandParameterValues(commandAction.Parameters, parseResult);

            var returnResult = new RunResult()
            {
                ReturnType = commandAction.LinkedToMethod.ReturnType
            };

            if (commandAction.LinkedToMethod.ReturnType != typeof(void))
            {
                object res = null;
                if (commandAction.LinkedToMethod.IsAsyncMethod())
                {
                    dynamic result = (Task)commandAction.LinkedToMethod.Invoke(instance, parameterValues);
                    await   result;

                    try
                    {
                        res = result.Result;
                    }
                    catch (Exception e)
                    {
                        res = null;
                    }
                }
                else
                {
                    res = commandAction.LinkedToMethod.Invoke(instance, parameterValues);
                }
                returnResult.Value = res;

                /*
                 * returnResult.Json = JsonConvert.SerializeObject(
                 *
                 *  res,
                 *  new JsonSerializerSettings
                 *  {
                 *      ContractResolver = new CamelCasePropertyNamesContractResolver()
                 *  });
                 */
            }
            else
            {
                commandAction.LinkedToMethod.Invoke(instance, parameterValues);
            }
            return(returnResult);
        }