Exemple #1
0
        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 ProcessStatus GetInstanceStatus(Guid processId)
 {
     using (OracleConnection connection = new OracleConnection(ConnectionString))
     {
         var instance = WorkflowProcessInstanceStatus.SelectByKey(connection, processId);
         if (instance == null)
         {
             return(ProcessStatus.NotFound);
         }
         var status = ProcessStatus.All.SingleOrDefault(ins => ins.Id == instance.Status);
         if (status == null)
         {
             return(ProcessStatus.Unknown);
         }
         return(status);
     }
 }
Exemple #3
0
        public void DeleteProcess(Guid processId)
        {
            using (SqlConnection connection = new SqlConnection(ConnectionString))
            {
                connection.Open();

                using (var transaction = connection.BeginTransaction())
                {
                    WorkflowProcessInstance.Delete(connection, processId, transaction);
                    WorkflowProcessInstanceStatus.Delete(connection, processId, transaction);
                    WorkflowProcessInstancePersistence.DeleteByProcessId(connection, processId, transaction);
                    WorkflowProcessTransitionHistory.DeleteByProcessId(connection, processId, transaction);
                    WorkflowProcessTimer.DeleteByProcessId(connection, processId, null, transaction);
                    transaction.Commit();
                }
            }
        }
Exemple #4
0
 /// <summary>
 /// 设置WorkflowProcessInstanceStatus新的状态
 /// </summary>
 /// <param name="processId"></param>
 /// <param name="status"></param>
 private void SetCustomStatus(Guid processId, ProcessStatus status)
 {
     using (TransactionScope serializableSupressedScope = PredefinedTransactionScopes.SerializableSupressedScope)
     {
         using (WorkflowPersistenceModelDataContext workflowPersistenceModelDataContext = base.CreateContext())
         {
             WorkflowProcessInstanceStatus workflowProcessInstanceStatus = workflowPersistenceModelDataContext.WorkflowProcessInstanceStatus.SingleOrDefault((WorkflowProcessInstanceStatus wpis) => wpis.Id == processId);
             if (workflowProcessInstanceStatus == null)
             {
                 throw new StatusNotDefinedException();
             }
             workflowProcessInstanceStatus.Status = status.Id;
             workflowPersistenceModelDataContext.SubmitChanges();
         }
         serializableSupressedScope.Complete();
     }
 }
        public void SetWorkflowRunning(ProcessInstance processInstance)
        {
            using (NpgsqlConnection connection = new NpgsqlConnection(ConnectionString))
            {
                var instanceStatus = WorkflowProcessInstanceStatus.SelectByKey(connection, processInstance.ProcessId);
                if (instanceStatus == null)
                {
                    throw new StatusNotDefinedException();
                }

                if (instanceStatus.Status == ProcessStatus.Running.Id)
                {
                    throw new ImpossibleToSetStatusException();
                }

                instanceStatus.Lock   = Guid.NewGuid();
                instanceStatus.Status = ProcessStatus.Running.Id;
                instanceStatus.Update(connection);
            }
        }
Exemple #6
0
        public void SetWorkflowIniialized(ProcessInstance processInstance)
        {
            var dbcoll         = Store.GetCollection <WorkflowProcessInstanceStatus>(MongoDBConstants.WorkflowProcessInstanceStatusCollectionName);
            var instanceStatus = dbcoll.FindOneById(processInstance.ProcessId);

            if (instanceStatus == null)
            {
                instanceStatus = new WorkflowProcessInstanceStatus()
                {
                    Id     = processInstance.ProcessId,
                    Lock   = Guid.NewGuid(),
                    Status = ProcessStatus.Initialized.Id
                };

                dbcoll.Insert(instanceStatus);
            }
            else
            {
                instanceStatus.Status = ProcessStatus.Initialized.Id;
                dbcoll.Save(instanceStatus);
            }
        }
Exemple #7
0
        private void SetCustomStatus(Guid processId, ProcessStatus status, bool createIfnotDefined = false)
        {
            using (SqlConnection connection = new SqlConnection(ConnectionString))
            {
                var instanceStatus = WorkflowProcessInstanceStatus.SelectByKey(connection, processId);
                if (instanceStatus == null)
                {
                    if (!createIfnotDefined)
                    {
                        throw new StatusNotDefinedException();
                    }

                    instanceStatus = new WorkflowProcessInstanceStatus()
                    {
                        Id     = processId,
                        Lock   = Guid.NewGuid(),
                        Status = ProcessStatus.Initialized.Id
                    };

                    instanceStatus.Insert(connection);
                }
                else
                {
                    var oldLock = instanceStatus.Lock;

                    instanceStatus.Status = status.Id;
                    instanceStatus.Lock   = Guid.NewGuid();

                    var cnt = WorkflowProcessInstanceStatus.ChangeStatus(connection, instanceStatus, oldLock);

                    if (cnt != 1)
                    {
                        throw new ImpossibleToSetStatusException();
                    }
                }
            }
        }
        public void SetWorkflowIniialized(ProcessInstance processInstance)
        {
            using (var session = Store.OpenSession())
            {
                var instanceStatus = session.Load <WorkflowProcessInstanceStatus>(processInstance.ProcessId);
                if (instanceStatus == null)
                {
                    instanceStatus = new WorkflowProcessInstanceStatus()
                    {
                        Id     = processInstance.ProcessId,
                        Lock   = Guid.NewGuid(),
                        Status = ProcessStatus.Initialized.Id
                    };

                    session.Store(instanceStatus);
                }
                else
                {
                    instanceStatus.Status = ProcessStatus.Initialized.Id;
                }

                session.SaveChanges();
            }
        }
Exemple #9
0
 public void SetWorkflowIniialized(ProcessInstance processInstance)
 {
     using (TransactionScope serializableSupressedScope = PredefinedTransactionScopes.SerializableSupressedScope)
     {
         using (WorkflowPersistenceModelDataContext workflowPersistenceModelDataContext = base.CreateContext())
         {
             WorkflowProcessInstanceStatus workflowProcessInstanceStatus = workflowPersistenceModelDataContext.WorkflowProcessInstanceStatus.SingleOrDefault((WorkflowProcessInstanceStatus wpis) => wpis.Id == processInstance.ProcessId);
             if (workflowProcessInstanceStatus == null)
             {
                 workflowProcessInstanceStatus = new WorkflowProcessInstanceStatus
                 {
                     Id = processInstance.ProcessId,
                     Lock = Guid.NewGuid(),
                     Status = ProcessStatus.Initialized.Id
                 };
                 workflowPersistenceModelDataContext.WorkflowProcessInstanceStatus.InsertOnSubmit(workflowProcessInstanceStatus);
             }
             else
             {
                 workflowProcessInstanceStatus.Status = ProcessStatus.Initialized.Id;
             }
             workflowPersistenceModelDataContext.SubmitChanges();
         }
         serializableSupressedScope.Complete();
     }
 }
 partial void DeleteWorkflowProcessInstanceStatus(WorkflowProcessInstanceStatus instance);
 partial void UpdateWorkflowProcessInstanceStatus(WorkflowProcessInstanceStatus instance);
 partial void InsertWorkflowProcessInstanceStatus(WorkflowProcessInstanceStatus instance);