public string StartProcessInstance(string processDefinitionKey, string businessKey, Dictionary <string, object> variables) { var http = helper.HttpClient(); var request = new CompleteRequest(); request.Variables = CamundaClientHelper.ConvertVariables(variables); request.BusinessKey = businessKey; var requestContent = new StringContent(JsonConvert.SerializeObject(request, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }), Encoding.UTF8, CamundaClientHelper.CONTENT_TYPE_JSON); var response = http.PostAsync("process-definition/key/" + processDefinitionKey + "/start", requestContent).Result; if (response.IsSuccessStatusCode) { var processInstance = JsonConvert.DeserializeObject <ProcessInstance>(response.Content.ReadAsStringAsync().Result); return(processInstance.Id); } else { var errorMsg = response.Content.ReadAsStringAsync(); var error = string.Concat(response.StatusCode.GetHashCode(), "-", errorMsg.Result); return(error); //throw new EngineException(response.ReasonPhrase); } }
public string StartProcessInstance(string processDefinitionKey, string businessKey, Dictionary <string, object> variables) { var http = helper.HttpClient("process-definition/key/" + processDefinitionKey + "/start"); var request = new CompleteRequest(); request.Variables = CamundaClientHelper.ConvertVariables(variables); request.BusinessKey = businessKey; var requestContent = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, CamundaClientHelper.CONTENT_TYPE_JSON); var response = http.PostAsync("", requestContent).Result; if (response.IsSuccessStatusCode) { var processInstance = JsonConvert.DeserializeObject <ProcessInstance>(response.Content.ReadAsStringAsync().Result); http.Dispose(); return(processInstance.Id); } else { //var errorMsg = response.Content.ReadAsStringAsync(); http.Dispose(); throw new EngineException(response.ReasonPhrase); } }
public string StartProcessInstance(string processDefinitionKey, string businessKey, Dictionary <string, object> variables, IDictionary <string, Action <IDictionary <string, object> > > events) { var http = helper.HttpClient(); var request = new CompleteRequest(); request.Variables = CamundaClientHelper.ConvertVariables(variables); request.BusinessKey = businessKey; var requestContent = new StringContent(JsonConvert.SerializeObject(request, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }), Encoding.UTF8, CamundaClientHelper.CONTENT_TYPE_JSON); var response = http.PostAsync("process-definition/key/" + processDefinitionKey + "/start", requestContent).Result; if (response.IsSuccessStatusCode) { var processInstance = JsonConvert.DeserializeObject <Dto.ProcessInstance>(response.Content.ReadAsStringAsync().Result); this._userTasks.Add(processInstance.Id, null); if (events != null) { foreach (var evt in events) { var externalTask = GetExternalTaskByTopicName(evt.Key); if (externalTask != null) { if (externalTask.Events.ContainsKey(processInstance.Id)) { var list_evt = externalTask.Events[processInstance.Id] ?? new List <Action <IDictionary <string, object> > >(); list_evt.Add(evt.Value); externalTask.Events[processInstance.Id] = list_evt; } else { externalTask.Events.Add(processInstance.Id, new List <Action <IDictionary <string, object> > >() { evt.Value }); } } } } return(processInstance.Id); } else { //var errorMsg = response.Content.ReadAsStringAsync(); throw new EngineException(response.ReasonPhrase); } }
public void Complete(string workerId, string externalTaskId, Dictionary <string, object> variablesToPassToProcess) { var http = helper.HttpClient("external-task/" + externalTaskId + "/complete"); var request = new CompleteRequest(); request.WorkerId = workerId; request.Variables = CamundaClientHelper.ConvertVariables(variablesToPassToProcess); var requestContent = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, CamundaClientHelper.CONTENT_TYPE_JSON); var response = http.PostAsync("", requestContent).Result; http.Dispose(); if (!response.IsSuccessStatusCode) { throw new EngineException("Could not complete external Task: " + response.ReasonPhrase); } }
public async Task <TaskResponse> StartProcessInstanceAsync(string processDefinitionKey, Dictionary <string, object> variables, string topicName) { var result = new TaskResponse(); var request = new CompleteRequest(); request.Variables = CamundaClientHelper.ConvertVariables(variables); var response = await helper.PostAsync(string.Format("process-definition/key/{0}/start", processDefinitionKey), request); if (response.IsSuccessStatusCode) { var processInstance = JsonConvert.DeserializeObject <Dto.ProcessInstance>(response.Content.ReadAsStringAsync().Result); result.ProcessInstanceId = processInstance.Id; if (!string.IsNullOrEmpty(topicName)) { var externalTask = GetExternalTaskByTopicName(topicName); if (externalTask != null) { var taskCompletionSource = new TaskCompletionSource <object>(); if (externalTask.CompletionSources.ContainsKey(processInstance.Id)) { var list = externalTask.CompletionSources[processInstance.Id] ?? new List <TaskCompletionSource <object> >(); list.Add(taskCompletionSource); externalTask.CompletionSources[processInstance.Id] = list; } else { externalTask.CompletionSources.Add(processInstance.Id, new List <TaskCompletionSource <object> > { taskCompletionSource }); } result.Variables = await taskCompletionSource.Task; } } return(result); } else { throw new EngineException(response.ReasonPhrase); } }
public void Complete(string taskId, Dictionary <string, object> variables) { var http = helper.HttpClient(); var request = new CompleteRequest(); request.Variables = CamundaClientHelper.ConvertVariables(variables); var requestContent = new StringContent(JsonConvert.SerializeObject(request, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }), Encoding.UTF8, CamundaClientHelper.CONTENT_TYPE_JSON); var response = http.PostAsync("task/" + taskId + "/complete", requestContent).Result; if (!response.IsSuccessStatusCode) { //var errorMsg = response.Content.ReadAsStringAsync(); throw new EngineException(response.ReasonPhrase); } }
public HumanTaskService(CamundaClientHelper client) { this.helper = client; }
public RepositoryService(CamundaClientHelper helper) { this.helper = helper; }
public BpmnWorkflowService(CamundaClientHelper client) { this.helper = client; }
public BpmnWorkflowService(CamundaClientHelper client, IDictionary <string, HumanTask> userTasks, IList <ExternalTaskWorker> workers) { this.helper = client; this._userTasks = userTasks; this._workers = workers; }
public ProcessInstanceService(CamundaClientHelper client) { this.helper = client; }
public ExternalTaskService(CamundaClientHelper client) { this.helper = client; }