コード例 #1
0
        public string StartWorkflow([FromBody] WorkflowServiceParameter param)
        {
            try
            {
                logger.InfoFormat("Starting Workflow: EntityId = {0}, EntityType = {1}, CurrentUserId = {2}, WorkflowDefinitionId = {3}, WorkflowVersion = {4}",
                                  param.EntityId, param.EntityType, param.CurrentUserId, param.WorkflowDefinitionId, param.WorkflowVersion);

                //new workflow definition from workflow repository
                var workflowDefinition = GetWorkflowDefinition(param);

                WorkflowApplication         wfApp  = null;
                Dictionary <string, object> inputs = new Dictionary <string, object>();
                var workflowInput = new WorkflowInput
                {
                    CreatedUserId        = param.CurrentUserId,
                    EntityId             = param.EntityId,
                    EntityType           = param.EntityType,
                    WorkflowDefinitionId = param.WorkflowDefinitionId
                };
                inputs.Add("WorkflowInput", workflowInput);
                wfApp = CustomWorkflowManager.StartWorkflow(workflowDefinition, inputs);

                logger.InfoFormat("Started workflow: EntityId = {0}, EntityType = {1}, WorkflowInstanceId = {2}, CurrentUserId = {3}, WorkflowDefinitionId = {4}",
                                  param.EntityId, param.EntityType, wfApp.Id.ToString(), param.CurrentUserId, param.WorkflowDefinitionId);

                return(wfApp.Id.ToString());
            }
            catch (Exception ex)
            {
                //log exception
                logger.ErrorFormat("StartWorkflow: {0}", ex.Message);
                throw this.ExceptionInternalServerError(ex);
            }
        }
コード例 #2
0
        public string TriggerWorkflowAction([FromBody] WorkflowServiceParameter param)
        {
            try
            {
                logger.InfoFormat("Triggering workflow action: EntityId = {0}, EntityType = {1}, WorkflowInstanceId = {2}, ActionName = {3}, CurrentUserId = {4}, Comment = {5}, WorkflowVersion = {6}, WorkflowDefinitionId = {7}",
                                  param.EntityId, param.EntityType, param.WorkflowInstanceId, param.ActionName, param.CurrentUserId, param.Comment, param.WorkflowVersion, param.WorkflowDefinitionId);

                //new workflow definition from workflow repository
                var workflowDefinition = GetWorkflowDefinition(param);

                WorkflowApplication wfApp = null;
                var variable = new WorkflowVariable
                {
                    EntityId             = param.EntityId,
                    EntityType           = param.EntityType,
                    WorkflowDefinitionId = param.WorkflowDefinitionId,
                    CurrentUserId        = param.CurrentUserId,
                    CurrentAction        = param.ActionName,
                    CurrentComment       = param.Comment
                };
                wfApp = CustomWorkflowManager.ResumeWorkflow(workflowDefinition, new Guid(param.WorkflowInstanceId), param.ActionName, variable);

                logger.InfoFormat("Triggered workflow action: EntityId = {0}, EntityType = {1}, WorkflowInstanceId = {2}, ActionName = {3}, CurrentUserId = {4}, Comment = {5}, WorkflowVersion = {6}, WorkflowDefinitionId = {7}",
                                  param.EntityId, param.EntityType, param.WorkflowInstanceId, param.ActionName, param.CurrentUserId, param.Comment, param.WorkflowVersion, param.WorkflowDefinitionId);

                return(wfApp.Id.ToString());
            }
            catch (Exception ex)
            {
                //log exception
                logger.ErrorFormat("TriggerWorkflowAction: {0}", ex.Message);
                throw this.ExceptionInternalServerError(ex);
            }
        }
コード例 #3
0
        public string CancelWorkflow([FromBody] WorkflowServiceParameter param)
        {
            try
            {
                logger.InfoFormat("Cancel workflow: EntityId = {0}, EntityType = {1}, WorkflowInstanceId = {2}, CurrentUserId = {3}, WorkflowVersion = {4}, WorkflowDefinitionId = {5}",
                                  param.EntityId, param.EntityType, param.WorkflowInstanceId, param.CurrentUserId, param.WorkflowVersion, param.WorkflowDefinitionId);

                //new workflow definition from workflow repository
                var workflowDefinition = GetWorkflowDefinition(param);

                WorkflowApplication wfApp = null;
                wfApp = CustomWorkflowManager.CancelWorkflow(workflowDefinition, new Guid(param.WorkflowInstanceId));

                logger.InfoFormat("Cancelled workflow: EntityId = {0}, EntityType = {1}, WorkflowInstanceId = {2}, CurrentUserId = {3}, WorkflowVersion = {4}, WorkflowDefinitionId = {5}",
                                  param.EntityId, param.EntityType, param.WorkflowInstanceId, param.CurrentUserId, param.WorkflowVersion, param.WorkflowDefinitionId);

                return(wfApp.Id.ToString());
            }
            catch (Exception ex)
            {
                //log exception
                logger.ErrorFormat("CancelWorkflow: {0}", ex.Message);
                throw this.ExceptionInternalServerError(ex);
            }
        }