Example #1
0
        private void ExecuteOperation(OperationEntry operationEntry, IEnumerable previousOutput, IEnumerable <OperationEntry> childOperations)
        {
            Debug.WriteLine(string.Format("Executing {0}", operationEntry.Operation.Name));
            var nextOperationCallback = GenerateNextOperationCallback(operationEntry, childOperations);

            ExecuteOperation(operationEntry, previousOutput, nextOperationCallback);
        }
Example #2
0
        private void ExecuteOperation(OperationEntry operationEntry, IEnumerable previousOutput, object nextOperationCallback)
        {
            var openGenericExecuteOperation = typeof(AbstractPipeline)
                                              .GetMethods(BindingFlags.Instance | BindingFlags.NonPublic)
                                              .Where(mi => mi.Name == "ExecuteOperation")
                                              .Where(mi => mi.IsGenericMethodDefinition)
                                              .Single(mi => mi.GetGenericArguments().Count() == 2);

            var closedGenericExecuteOperation = openGenericExecuteOperation.MakeGenericMethod(operationEntry.InputType, operationEntry.OutputType);

            closedGenericExecuteOperation.Invoke(this, new[] { operationEntry.Operation, previousOutput, nextOperationCallback });
        }
Example #3
0
        private object GenerateNextOperationCallback(OperationEntry currentOperationEntry, IEnumerable <OperationEntry> remainingEntries)
        {
            var openGenericNextOperationCallback = typeof(AbstractPipeline)
                                                   .GetMethods(BindingFlags.Instance | BindingFlags.NonPublic)
                                                   .Where(mi => mi.Name == "GenerateNextOperationCallback")
                                                   .Where(mi => mi.IsGenericMethodDefinition)
                                                   .Single(mi => mi.GetGenericArguments().Count() == 1);

            var closedGenericNextOperationCallback = openGenericNextOperationCallback.MakeGenericMethod(currentOperationEntry.OutputType);
            var callback = closedGenericNextOperationCallback.Invoke(this, new object[] { remainingEntries });

            return(callback);
        }
        private OperationViewModel OperationViewModelFor(
            OperationEntry operationEntry,
            OperationPropertiesViewModelBuilder operationPropertiesViewModelBuilder,
            OperationStateMachine defaultOperationStateMachine)
        {
            var operationViewModelFor = new OperationViewModel(
                operationEntry.Name,
                operationEntry.DependencyName,
                operationEntry.ParentComponentInstanceName,
                AllowingCommandExecution(),
                operationPropertiesViewModelBuilder,
                defaultOperationStateMachine);

            return(operationViewModelFor);
        }
        public OperationViewModel CreateOperationViewModel(OperationEntry operationEntry, OperationStateMachine operationStateMachine)
        {
            //bug move it elsewhere
            var propertySetBuilder = _propertySetBuilderFactory.CreateNewPropertySet(operationEntry.Name);
            var operationPropertiesViewModelBuilder =
                new OperationPropertiesViewModelBuilder(propertySetBuilder);

            operationEntry.AddParametersTo(operationPropertiesViewModelBuilder);
            operationPropertiesViewModelBuilder.RetrieveList();

            var operationViewModel = OperationViewModelFor(
                operationEntry,
                operationPropertiesViewModelBuilder, operationEntry.OperationStateMachine);

            return(operationViewModel);
        }