protected internal virtual IList <CorrelationHandlerResult> CorrelateStartMessageByEventSubscription( CommandContext commandContext, string messageName, CorrelationSet correlationSet) { IList <CorrelationHandlerResult> results = new List <CorrelationHandlerResult>(); DeploymentCache deploymentCache = commandContext.ProcessEngineConfiguration.DeploymentCache; var messageEventSubscriptions = FindMessageStartEventSubscriptions(commandContext, messageName, correlationSet); foreach (var messageEventSubscription in messageEventSubscriptions) { if (messageEventSubscription.Configuration != null) { var processDefinitionId = messageEventSubscription.Configuration; ProcessDefinitionEntity processDefinition = deploymentCache.FindDeployedProcessDefinitionById(processDefinitionId); // only an active process definition will be returned if (processDefinition != null && !processDefinition.Suspended) { CorrelationHandlerResult result = CorrelationHandlerResult.MatchedProcessDefinition(processDefinition, messageEventSubscription.ActivityId); results.Add(result); } else { Log.CouldNotFindProcessDefinitionForEventSubscription(messageEventSubscription, processDefinitionId); } } } return(results); }
protected internal virtual CorrelationHandlerResult CorrelateStartMessageByProcessDefinitionId( CommandContext commandContext, string messageName, string processDefinitionId) { DeploymentCache deploymentCache = commandContext.ProcessEngineConfiguration.DeploymentCache; ProcessDefinitionEntity processDefinition = deploymentCache.FindDeployedProcessDefinitionById(processDefinitionId); //only an active process definition will be returned if (processDefinition != null && !processDefinition.Suspended) { string startActivityId = FindStartActivityIdByMessage(processDefinition, messageName); if (!string.ReferenceEquals(startActivityId, null)) { return(CorrelationHandlerResult.MatchedProcessDefinition(processDefinition, startActivityId)); } } return(null); }