Пример #1
0
        public RuntimeTask Create(IProcessTask task, IStageArgs stageArgs)
        {
            //get the user configured Design Time arguments + stage specific arguments
            var args = new RuntimeArgumentCollection(task.GetAllArguments().ToArray(), stageArgs);

            //Create an instance of the the appropriate ProcessTaskType
            switch (task.ProcessTaskType)
            {
            case ProcessTaskType.Executable:
                return(new ExecutableRuntimeTask(task, args));

            case ProcessTaskType.SQLFile:
                return(new ExecuteSqlFileRuntimeTask(task, args));

            case ProcessTaskType.Attacher:
                return(new AttacherRuntimeTask(task, args, _repository.MEF));

            case ProcessTaskType.DataProvider:
                return(new DataProviderRuntimeTask(task, args, _repository.MEF));

            case ProcessTaskType.MutilateDataTable:
                return(new MutilateDataTablesRuntimeTask(task, args, _repository.MEF));

            default:
                throw new Exception("Cannot create runtime task: Unknown process task type '" + task.ProcessTaskType + "'");
            }
        }
Пример #2
0
        /// <summary>
        /// Transition from the arguments defined in the data source (Catalogue Database) into a runtime state
        /// </summary>
        public RuntimeArgumentCollection(IArgument[] args, IStageArgs stageSpecificArgs)
        {
            StageSpecificArguments = stageSpecificArgs;
            Arguments = new HashSet <IArgument>();

            if (!args.Any())
            {
                return;
            }

            foreach (var processTaskArgument in args)
            {
                AddArgument(processTaskArgument);
            }
        }