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); }
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 }); }
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); }