/// <summary> /// Correlates a message to the process engine to either trigger a message start event or an intermediate message catching event. Internally this maps to the engine's message correlation builder methods `MessageCorrelationBuilder#correlateWithResult()` and `MessageCorrelationBuilder#correlateAllWithResult()`. For more information about the correlation behavior, see the [Message Events](https://docs.camunda.org/manual/7.13/bpmn20/events/message-events/) section of the [BPMN 2.0 Implementation Reference](https://docs.camunda.org/manual/7.13/reference/bpmn20/). /// </summary> /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception> /// <param name="correlationMessageDto"> (optional)</param> /// <returns>Task of ApiResponse (List<MessageCorrelationResultWithVariableDto>)</returns> public async System.Threading.Tasks.Task <ApiResponse <List <MessageCorrelationResultWithVariableDto> > > DeliverMessageAsyncWithHttpInfo(CorrelationMessageDto correlationMessageDto = default(CorrelationMessageDto)) { var localVarPath = "/message"; var localVarPathParams = new Dictionary <String, String>(); var localVarQueryParams = new List <KeyValuePair <String, String> >(); var localVarHeaderParams = new Dictionary <String, String>(this.Configuration.DefaultHeader); var localVarFormParams = new Dictionary <String, String>(); var localVarFileParams = new Dictionary <String, FileParameter>(); Object localVarPostBody = null; // to determine the Content-Type header String[] localVarHttpContentTypes = new String[] { "application/json" }; String localVarHttpContentType = this.Configuration.ApiClient.SelectHeaderContentType(localVarHttpContentTypes); // to determine the Accept header String[] localVarHttpHeaderAccepts = new String[] { "application/json" }; String localVarHttpHeaderAccept = this.Configuration.ApiClient.SelectHeaderAccept(localVarHttpHeaderAccepts); if (localVarHttpHeaderAccept != null) { localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept); } if (correlationMessageDto != null && correlationMessageDto.GetType() != typeof(byte[])) { localVarPostBody = this.Configuration.ApiClient.Serialize(correlationMessageDto); // http body (model) parameter } else { localVarPostBody = correlationMessageDto; // byte array } // make the HTTP request IRestResponse localVarResponse = (IRestResponse)await this.Configuration.ApiClient.CallApiAsync(localVarPath, Method.POST, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarFileParams, localVarPathParams, localVarHttpContentType); int localVarStatusCode = (int)localVarResponse.StatusCode; if (ExceptionFactory != null) { Exception exception = ExceptionFactory("DeliverMessage", localVarResponse); if (exception != null) { throw exception; } } return(new ApiResponse <List <MessageCorrelationResultWithVariableDto> >(localVarStatusCode, localVarResponse.Headers.ToDictionary(x => x.Name, x => string.Join(",", x.Value)), (List <MessageCorrelationResultWithVariableDto>) this.Configuration.ApiClient.Deserialize(localVarResponse, typeof(List <MessageCorrelationResultWithVariableDto>)))); }
protected internal virtual IList <MessageCorrelationResultDto> correlate(CorrelationMessageDto messageDto, MessageCorrelationBuilder correlation) { IList <MessageCorrelationResultDto> resultDtos = new List <MessageCorrelationResultDto>(); if (!messageDto.All) { MessageCorrelationResult result = correlation.correlateWithResult(); resultDtos.Add(MessageCorrelationResultDto.fromMessageCorrelationResult(result)); } else { IList <MessageCorrelationResult> results = correlation.correlateAllWithResult(); foreach (MessageCorrelationResult result in results) { resultDtos.Add(MessageCorrelationResultDto.fromMessageCorrelationResult(result)); } } return(resultDtos); }
public virtual Response deliverMessage(CorrelationMessageDto messageDto) { if (string.ReferenceEquals(messageDto.MessageName, null)) { throw new InvalidRequestException(Status.BAD_REQUEST, "No message name supplied"); } if (!string.ReferenceEquals(messageDto.TenantId, null) && messageDto.WithoutTenantId) { throw new InvalidRequestException(Status.BAD_REQUEST, "Parameter 'tenantId' cannot be used together with parameter 'withoutTenantId'."); } bool variablesInResultEnabled = messageDto.VariablesInResultEnabled; if (!messageDto.ResultEnabled && variablesInResultEnabled) { throw new InvalidRequestException(Status.BAD_REQUEST, "Parameter 'variablesInResultEnabled' cannot be used without 'resultEnabled' set to true."); } IList <MessageCorrelationResultDto> resultDtos = new List <MessageCorrelationResultDto>(); try { MessageCorrelationBuilder correlation = createMessageCorrelationBuilder(messageDto); if (!variablesInResultEnabled) { ((IList <MessageCorrelationResultDto>)resultDtos).AddRange(correlate(messageDto, correlation)); } else { ((IList <MessageCorrelationResultDto>)resultDtos).AddRange(correlateWithVariablesEnabled(messageDto, correlation)); } } catch (RestException e) { string errorMessage = string.Format("Cannot deliver message: {0}", e.Message); throw new InvalidRequestException(e.Status, e, errorMessage); } catch (MismatchingMessageCorrelationException e) { throw new RestException(Status.BAD_REQUEST, e); } return(createResponse(resultDtos, messageDto)); }
/// <summary> /// Correlates a message to the process engine to either trigger a message start event or an intermediate message catching event. Internally this maps to the engine's message correlation builder methods `MessageCorrelationBuilder#correlateWithResult()` and `MessageCorrelationBuilder#correlateAllWithResult()`. For more information about the correlation behavior, see the [Message Events](https://docs.camunda.org/manual/7.13/bpmn20/events/message-events/) section of the [BPMN 2.0 Implementation Reference](https://docs.camunda.org/manual/7.13/reference/bpmn20/). /// </summary> /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception> /// <param name="correlationMessageDto"> (optional)</param> /// <returns>Task of List<MessageCorrelationResultWithVariableDto></returns> public async System.Threading.Tasks.Task <List <MessageCorrelationResultWithVariableDto> > DeliverMessageAsync(CorrelationMessageDto correlationMessageDto = default(CorrelationMessageDto)) { ApiResponse <List <MessageCorrelationResultWithVariableDto> > localVarResponse = await DeliverMessageAsyncWithHttpInfo(correlationMessageDto); return(localVarResponse.Data); }
/// <summary> /// Correlates a message to the process engine to either trigger a message start event or an intermediate message catching event. Internally this maps to the engine's message correlation builder methods `MessageCorrelationBuilder#correlateWithResult()` and `MessageCorrelationBuilder#correlateAllWithResult()`. For more information about the correlation behavior, see the [Message Events](https://docs.camunda.org/manual/7.13/bpmn20/events/message-events/) section of the [BPMN 2.0 Implementation Reference](https://docs.camunda.org/manual/7.13/reference/bpmn20/). /// </summary> /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception> /// <param name="correlationMessageDto"> (optional)</param> /// <returns>List<MessageCorrelationResultWithVariableDto></returns> public List <MessageCorrelationResultWithVariableDto> DeliverMessage(CorrelationMessageDto correlationMessageDto = default(CorrelationMessageDto)) { ApiResponse <List <MessageCorrelationResultWithVariableDto> > localVarResponse = DeliverMessageWithHttpInfo(correlationMessageDto); return(localVarResponse.Data); }
/// <summary> /// Correlates a message to the process engine to either trigger a message start event or an intermediate message catching event. Internally this maps to the engine's message correlation builder methods `MessageCorrelationBuilder#correlateWithResult()` and `MessageCorrelationBuilder#correlateAllWithResult()`. For more information about the correlation behavior, see the [Message Events](https://docs.camunda.org/manual/7.14/bpmn20/events/message-events/) section of the [BPMN 2.0 Implementation Reference](https://docs.camunda.org/manual/7.14/reference/bpmn20/). /// </summary> /// <exception cref="Camunda.OpenApi.Client.Client.ApiException">Thrown when fails to make API call</exception> /// <param name="correlationMessageDto"> (optional)</param> /// <param name="cancellationToken">Cancellation Token to cancel the request.</param> /// <returns>Task of ApiResponse (List<MessageCorrelationResultWithVariableDto>)</returns> public async System.Threading.Tasks.Task <Camunda.OpenApi.Client.Client.ApiResponse <List <MessageCorrelationResultWithVariableDto> > > DeliverMessageWithHttpInfoAsync(CorrelationMessageDto correlationMessageDto = default(CorrelationMessageDto), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { Camunda.OpenApi.Client.Client.RequestOptions localVarRequestOptions = new Camunda.OpenApi.Client.Client.RequestOptions(); String[] _contentTypes = new String[] { "application/json" }; // to determine the Accept header String[] _accepts = new String[] { "application/json" }; var localVarContentType = Camunda.OpenApi.Client.Client.ClientUtils.SelectHeaderContentType(_contentTypes); if (localVarContentType != null) { localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType); } var localVarAccept = Camunda.OpenApi.Client.Client.ClientUtils.SelectHeaderAccept(_accepts); if (localVarAccept != null) { localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept); } localVarRequestOptions.Data = correlationMessageDto; // make the HTTP request var localVarResponse = await this.AsynchronousClient.PostAsync <List <MessageCorrelationResultWithVariableDto> >("/message", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false); if (this.ExceptionFactory != null) { Exception _exception = this.ExceptionFactory("DeliverMessage", localVarResponse); if (_exception != null) { throw _exception; } } return(localVarResponse); }
/// <summary> /// Correlates a message to the process engine to either trigger a message start event or an intermediate message catching event. Internally this maps to the engine's message correlation builder methods `MessageCorrelationBuilder#correlateWithResult()` and `MessageCorrelationBuilder#correlateAllWithResult()`. For more information about the correlation behavior, see the [Message Events](https://docs.camunda.org/manual/7.14/bpmn20/events/message-events/) section of the [BPMN 2.0 Implementation Reference](https://docs.camunda.org/manual/7.14/reference/bpmn20/). /// </summary> /// <exception cref="Camunda.OpenApi.Client.Client.ApiException">Thrown when fails to make API call</exception> /// <param name="correlationMessageDto"> (optional)</param> /// <param name="cancellationToken">Cancellation Token to cancel the request.</param> /// <returns>Task of List<MessageCorrelationResultWithVariableDto></returns> public async System.Threading.Tasks.Task <List <MessageCorrelationResultWithVariableDto> > DeliverMessageAsync(CorrelationMessageDto correlationMessageDto = default(CorrelationMessageDto), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { Camunda.OpenApi.Client.Client.ApiResponse <List <MessageCorrelationResultWithVariableDto> > localVarResponse = await DeliverMessageWithHttpInfoAsync(correlationMessageDto, cancellationToken).ConfigureAwait(false); return(localVarResponse.Data); }
protected internal virtual MessageCorrelationBuilder createMessageCorrelationBuilder(CorrelationMessageDto messageDto) { RuntimeService runtimeService = processEngine.RuntimeService; ObjectMapper objectMapper = ObjectMapper; IDictionary <string, object> correlationKeys = VariableValueDto.toMap(messageDto.CorrelationKeys, processEngine, objectMapper); IDictionary <string, object> localCorrelationKeys = VariableValueDto.toMap(messageDto.LocalCorrelationKeys, processEngine, objectMapper); IDictionary <string, object> processVariables = VariableValueDto.toMap(messageDto.ProcessVariables, processEngine, objectMapper); IDictionary <string, object> processVariablesLocal = VariableValueDto.toMap(messageDto.ProcessVariablesLocal, processEngine, objectMapper); MessageCorrelationBuilder builder = runtimeService.createMessageCorrelation(messageDto.MessageName); if (processVariables != null) { builder.Variables = processVariables; } if (processVariablesLocal != null) { builder.VariablesLocal = processVariablesLocal; } if (!string.ReferenceEquals(messageDto.BusinessKey, null)) { builder.processInstanceBusinessKey(messageDto.BusinessKey); } if (correlationKeys != null && correlationKeys.Count > 0) { foreach (KeyValuePair <string, object> correlationKey in correlationKeys.SetOfKeyValuePairs()) { string name = correlationKey.Key; object value = correlationKey.Value; builder.processInstanceVariableEquals(name, value); } } if (localCorrelationKeys != null && localCorrelationKeys.Count > 0) { foreach (KeyValuePair <string, object> correlationKey in localCorrelationKeys.SetOfKeyValuePairs()) { string name = correlationKey.Key; object value = correlationKey.Value; builder.localVariableEquals(name, value); } } if (!string.ReferenceEquals(messageDto.TenantId, null)) { builder.tenantId(messageDto.TenantId); } else if (messageDto.WithoutTenantId) { builder.withoutTenantId(); } string processInstanceId = messageDto.ProcessInstanceId; if (!string.ReferenceEquals(processInstanceId, null)) { builder.processInstanceId(processInstanceId); } return(builder); }
protected internal virtual Response createResponse(IList <MessageCorrelationResultDto> resultDtos, CorrelationMessageDto messageDto) { Response.ResponseBuilder response = Response.noContent(); if (messageDto.ResultEnabled) { response = Response.ok(resultDtos, MediaType.APPLICATION_JSON); } return(response.build()); }