public void DeleteProcess(Guid processId)
        {
            using (OracleConnection connection = new OracleConnection(ConnectionString))
            {
                WorkflowProcessInstance.Delete(connection, processId);
                WorkflowProcessInstanceStatus.Delete(connection, processId);
                WorkflowProcessInstancePersistence.DeleteByProcessId(connection, processId);
                WorkflowProcessTransitionHistory.DeleteByProcessId(connection, processId);
                WorkflowProcessTimer.DeleteByProcessId(connection, processId);

                WorkflowProcessInstance.Commit(connection);
            }
        }
        public void BindProcessToNewScheme(ProcessInstance processInstance, bool resetIsDeterminingParametersChanged)
        {
            using (OracleConnection connection = new OracleConnection(ConnectionString))
            {
                var oldProcess = WorkflowProcessInstance.SelectByKey(connection, processInstance.ProcessId);
                if (oldProcess == null)
                {
                    throw new ProcessNotFoundException();
                }

                oldProcess.SchemeId = processInstance.SchemeId;
                if (resetIsDeterminingParametersChanged)
                {
                    oldProcess.IsDeterminingParametersChanged = false;
                }
                oldProcess.Update(connection);
                WorkflowProcessInstance.Commit(connection);
            }
        }
 public void InitializeProcess(ProcessInstance processInstance)
 {
     using (OracleConnection connection = new OracleConnection(ConnectionString))
     {
         var oldProcess = WorkflowProcessInstance.SelectByKey(connection, processInstance.ProcessId);
         if (oldProcess != null)
         {
             throw new ProcessAlredyExistsException();
         }
         var newProcess = new WorkflowProcessInstance
         {
             Id           = processInstance.ProcessId,
             SchemeId     = processInstance.SchemeId,
             ActivityName = processInstance.ProcessScheme.InitialActivity.Name,
             StateName    = processInstance.ProcessScheme.InitialActivity.State
         };
         newProcess.Insert(connection);
         WorkflowProcessInstance.Commit(connection);
     }
 }