Пример #1
0
 private object ParseParameter(TaskParameters taskParameters, ITaskParameter p)
 {
     try {
         return(taskParameters.Parameter(p));
     } catch (RequiredParameterNotGivenException e) {
         throw new TaskRequiredParameterException(p, this);
     } catch (TypeParserNotFoundException e) {
         throw new TaskParameterException(p, this);
     }
 }
Пример #2
0
 public void Invoke(TaskParameters taskParameters)
 {
     try {
         var taskObject      = Resolver.Resolve(Method.DeclaringType);
         var methodArguments = MethodArgumentsFromCommandLineParameters(taskParameters);
         Method.Invoke(taskObject, methodArguments);
     } catch (TargetInvocationException e) {
         throw new TaskException(this, e.InnerException);
     }
 }
Пример #3
0
        public void RunTask(string taskName, TaskParameters taskParameters, IEnumerable <ITask> tasks)
        {
            var matchingTasks = tasks.Where(t => AllTaskNames(t).Contains(taskName.ToLower())).ToArray();

            if (matchingTasks.Count() > 1)
            {
                throw new AmbiguousTaskNameException(taskName, matchingTasks);
            }
            else if (!matchingTasks.Any())
            {
                throw new NoMatchingTaskException(taskName, tasks);
            }
            else
            {
                matchingTasks.Single().Invoke(taskParameters);
            }
        }
Пример #4
0
 private object[] MethodArgumentsFromCommandLineParameters(TaskParameters taskParameters)
 {
     return(Parameters.Select(p => (object)ParseParameter(taskParameters, p)).ToArray());
 }