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, RootProcessId = processInstance.RootProcessId, ParentProcessId = processInstance.ParentProcessId }; newProcess.Insert(connection); WorkflowProcessInstance.Commit(connection); } }