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); } }
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); } }
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); } }