Ejemplo n.º 1
0
        public IRun Run(IOperationNode operationNode, IModelHolder modelHolder)
        {
            IOperation operation = operationNode as IOperation;
            if (null == operation)
            {
                throw new WrongTypeException(typeof(IOperation), operationNode);
            }

            IRun retValue = new Run(operationNode, modelHolder, RunStatusEnumeration.Waiting);

            try
            {
                retValue.RunStatus = RunStatusEnumeration.Running;

                operation.Execute(modelHolder);

                retValue.RunStatus = RunStatusEnumeration.Finished;
            }
            catch (Exception ex)
            {
                retValue.RunStatus = RunStatusEnumeration.Errored;

                throw ex;
            }

            return retValue;
        }
Ejemplo n.º 2
0
 public void Add(IOperationNode operation)
 {
     if (last.TryAdd(operation))
     {
         last = operation;
     }
 }
Ejemplo n.º 3
0
        public Run(IOperationNode operationNode, IModelHolder modelHolder, RunStatusEnumeration runStatus)
        {
            OperaionNode = operationNode;
            ModelHolder = modelHolder;
            RunStatus = runStatus;

            Setup();
        }
Ejemplo n.º 4
0
 public bool TryAdd(IOperationNode operation)
 {
     if (Rigth == null)
     {
         Rigth            = operation;
         operation.Parent = this;
     }
 }
        public IRun Run(IOperationNode operationNode, IModelHolder modelHolder)
        {
            IOperationPipeline pipeline = operationNode as IOperationPipeline;
            if (null == pipeline)
            {
                throw new WrongTypeException(typeof(IOperationPipeline), operationNode);
            }

            IRun retValue = new Run(operationNode, modelHolder, RunStatusEnumeration.Waiting);

            IModelHolder pipelineModelHolder = pipeline.GetModelHolderFromParentModelHolder(modelHolder);

            BasicOperationRunner basicOperationRunner = new BasicOperationRunner();

            retValue.RunStatus = RunStatusEnumeration.Starting;

            for (int iOperationNode = 0; iOperationNode < pipeline.Count; iOperationNode++)
            {
                IOperationNode curNode = pipeline[iOperationNode];

                IRun curRun;
                if (curNode is IOperation)
                {
                    curRun = basicOperationRunner.Run(curNode, pipelineModelHolder);
                }
                else
                {
                    // Assume if the node is not an operation, it's an operation pipeline. Recurse.
                    curRun = this.Run(curNode, pipelineModelHolder);
                }

                retValue.SubRuns.Add(curRun);

                // Allow stopping on errors.
                if (curRun.RunStatus == RunStatusEnumeration.Errored)
                {
                    if (curNode.OnErrorBlock)
                    {
                        break;
                    }
                }
            }

            pipeline.SetModelHolderInParentModelHolder(pipelineModelHolder, modelHolder);

            if (HasErroredSubNodeOperations(retValue))
            {
                retValue.RunStatus = RunStatusEnumeration.Errored;
            }
            else
            {
                retValue.RunStatus = RunStatusEnumeration.Finished;
            }

            return retValue;
        }
Ejemplo n.º 6
0
 public bool TryAdd(IOperationNode operation)
 {
     throw new System.NotImplementedException();
 }
Ejemplo n.º 7
0
 public OperationNode(string operationName)
 {
     OperationName = operationName;
     Operations    = new IOperationNode[2];
 }
Ejemplo n.º 8
0
 public ExpressionTree()
 {
     root = new RootNodeOperation();
     last = root;
 }
 public OperationsNodesListChangedEventArgs(IOperationNode operationNode, int position, AddedOrRemovedEnumeration addedOrRemoved)
 {
     OperationNode = operationNode;
     Position = position;
     AddedOrRemoved = addedOrRemoved;
 }