public async Task BPMN_FinishUserTask_ShouldFinishUserTask() { var processModelId = "test_consumer_api_usertask"; var payload = new ProcessStartRequestPayload <object>(); var callbackType = StartCallbackType.CallbackOnProcessInstanceCreated; ProcessStartResponsePayload processInstance = await this .fixture .ConsumerAPIClient .StartProcessInstance(this.fixture.DefaultIdentity, processModelId, "StartEvent_1", payload, callbackType); // Give the ProcessEngine time to reach the UserTask await Task.Delay(5000); UserTaskList userTasks = await this .fixture .ConsumerAPIClient .GetUserTasksForCorrelation(this.fixture.DefaultIdentity, processInstance.CorrelationId); Assert.NotEmpty(userTasks.UserTasks); var userTaskToBeFinished = userTasks.UserTasks.ElementAt(0); var userTaskResult = new UserTaskResult() { FormFields = new Dictionary <string, object>() }; userTaskResult.FormFields.Add("my_test_key", "my_test_value"); await this .fixture .ConsumerAPIClient .FinishUserTask( this.fixture.DefaultIdentity, processInstance.ProcessInstanceId, processInstance.CorrelationId, userTaskToBeFinished.FlowNodeInstanceId, userTaskResult ); }
public async Task FinishUserTask(string processInstanceId, string correlationId, string userTaskInstanceId, UserTaskResult userTaskResult) { var endpoint = ConsumerApiRestSettings.Paths.FinishUserTask .Replace(ConsumerApiRestSettings.Params.ProcessInstanceId, processInstanceId) .Replace(ConsumerApiRestSettings.Params.CorrelationId, correlationId) .Replace(ConsumerApiRestSettings.Params.UserTaskInstanceId, userTaskInstanceId); await this.HttpFacade.SendRequestAndExpectNoResult(HttpMethod.Post, endpoint); }
public async Task FinishUserTask(IIdentity identity, string processInstanceId, string correlationId, string userTaskInstanceId, UserTaskResult userTaskResult) { var endpoint = RestSettings.Paths.FinishUserTask .Replace(RestSettings.Params.ProcessInstanceId, processInstanceId) .Replace(RestSettings.Params.CorrelationId, correlationId) .Replace(RestSettings.Params.UserTaskInstanceId, userTaskInstanceId); var urlWithEndpoint = this.ApplyBaseUrl(endpoint); var jsonPayload = SerializeForProcessEngine(userTaskResult); var requestContent = new StringContent(jsonPayload, Encoding.UTF8, "application/json"); var request = this.CreateRequestMessage(identity, HttpMethod.Post, urlWithEndpoint, requestContent); var result = await this.httpClient.SendAsync(request); if (!result.IsSuccessStatusCode) { throw new Exception($"Failed to finish UserTask: {result.ReasonPhrase}"); } }