private void ValidateAdd(WorkFlowTemplate template, WorkflowWorkTypeNode Node)
        {
            //vaidate rules for publish and such

            if (!CanAddWorkType(template, Node))
            {
                throw new WorkTypeAlreadyExistInWorkFlowException(Node.Name);
            }
        }
 public bool CanAddWorkType(WorkFlowTemplate template, WorkflowWorkTypeNode workflowWorkType)
 {
     return(template.CanAddWorkType(workflowWorkType));
 }
 public void AddAfter(WorkFlowTemplate template, WorkflowWorkTypeNode existingWorkflowWorkTypeNode, WorkflowWorkTypeNode newWorkflowWorkFlowTypeNode)
 {
     ValidateAdd(template, newWorkflowWorkFlowTypeNode);
     template.AddAfter(existingWorkflowWorkTypeNode, newWorkflowWorkFlowTypeNode);
 }
 public void Remove(WorkFlowTemplate template, WorkflowWorkTypeNode workflowWorkTypeNode)
 {
     template.Remove(workflowWorkTypeNode);
 }
 public void AddLast(WorkFlowTemplate template, WorkflowWorkTypeNode workflowWorkFlowNode)
 {
     ValidateAdd(template, workflowWorkFlowNode);
     template.AddLast(workflowWorkFlowNode);
 }