/// <summary> /// Fills persisted <see cref="ParameterPurpose.Persistence"/> parameters of the process /// </summary> /// <param name="processInstance">Instance of the process</param> public void FillPersistedProcessParameters(ProcessInstance processInstance) { var persistenceParameters = processInstance.ProcessScheme.PersistenceParameters.ToList(); var parameters = new List <ParameterDefinitionWithValue>(persistenceParameters.Count()); var db = _connector.GetDatabase(); var persistedParametersValue = db.StringGet(GetKeyForProcessPersistence(processInstance.ProcessId)); if (!persistedParametersValue.HasValue) { return; } var persistedParameters = JsonConvert.DeserializeObject <Dictionary <string, string> >(persistedParametersValue); foreach (var persistedParameter in persistedParameters) { var parameterDefinition = persistenceParameters.FirstOrDefault(p => p.Name == persistedParameter.Key); if (parameterDefinition == null) { parameterDefinition = ParameterDefinition.Create(persistedParameter.Key, "System.String", ParameterPurpose.Persistence.ToString(), null); } parameters.Add(ParameterDefinition.Create(parameterDefinition, _runtime.DeserializeParameter(persistedParameter.Value, parameterDefinition.Type))); } processInstance.AddParameters(parameters); }
/// <summary> /// Fills system <see cref="ParameterPurpose.System"/> parameters of the process /// </summary> /// <param name="processInstance">Instance of the process</param> public void FillSystemProcessParameters(ProcessInstance processInstance) { var db = _connector.GetDatabase(); var workflowProcessInstanceValue = db.StringGet(GetKeyForProcessInstance(processInstance.ProcessId)); if (!workflowProcessInstanceValue.HasValue) { throw new ProcessNotFoundException(processInstance.ProcessId); } var workflowProcessInstance = JsonConvert.DeserializeObject <WorkflowProcessInstance>(workflowProcessInstanceValue); var systemParameters = processInstance.ProcessScheme.Parameters.Where(p => p.Purpose == ParameterPurpose.System).ToList(); var parameters = new List <ParameterDefinitionWithValue>(systemParameters.Count) { ParameterDefinition.Create( systemParameters.Single(sp => sp.Name == DefaultDefinitions.ParameterProcessId.Name), processInstance.ProcessId), ParameterDefinition.Create( systemParameters.Single(sp => sp.Name == DefaultDefinitions.ParameterPreviousState.Name), workflowProcessInstance.PreviousState), ParameterDefinition.Create( systemParameters.Single(sp => sp.Name == DefaultDefinitions.ParameterCurrentState.Name), workflowProcessInstance.StateName), ParameterDefinition.Create( systemParameters.Single(sp => sp.Name == DefaultDefinitions.ParameterPreviousStateForDirect.Name), workflowProcessInstance.PreviousStateForDirect), ParameterDefinition.Create( systemParameters.Single(sp => sp.Name == DefaultDefinitions.ParameterPreviousStateForReverse.Name), workflowProcessInstance.PreviousStateForReverse), ParameterDefinition.Create( systemParameters.Single(sp => sp.Name == DefaultDefinitions.ParameterPreviousActivity.Name), workflowProcessInstance.PreviousActivity), ParameterDefinition.Create( systemParameters.Single(sp => sp.Name == DefaultDefinitions.ParameterCurrentActivity.Name), workflowProcessInstance.ActivityName), ParameterDefinition.Create( systemParameters.Single(sp => sp.Name == DefaultDefinitions.ParameterPreviousActivityForDirect.Name), workflowProcessInstance.PreviousActivityForDirect), ParameterDefinition.Create( systemParameters.Single(sp => sp.Name == DefaultDefinitions.ParameterPreviousActivityForReverse.Name), workflowProcessInstance.PreviousActivityForReverse), ParameterDefinition.Create( systemParameters.Single(sp => sp.Name == DefaultDefinitions.ParameterSchemeCode.Name), processInstance.ProcessScheme.Name), ParameterDefinition.Create( systemParameters.Single(sp => sp.Name == DefaultDefinitions.ParameterSchemeId.Name), workflowProcessInstance.SchemeId), ParameterDefinition.Create( systemParameters.Single(sp => sp.Name == DefaultDefinitions.ParameterIsPreExecution.Name), false), ParameterDefinition.Create( systemParameters.Single(sp => sp.Name == DefaultDefinitions.ParameterParentProcessId.Name), workflowProcessInstance.ParentProcessId), ParameterDefinition.Create( systemParameters.Single(sp => sp.Name == DefaultDefinitions.ParameterRootProcessId.Name), workflowProcessInstance.RootProcessId) }; processInstance.AddParameters(parameters); }
public void FillPersistedProcessParameters(ProcessInstance processInstance) { processInstance.AddParameters(GetPersistedProcessParameters(processInstance.ProcessId, processInstance.ProcessScheme)); }
public void FillSystemProcessParameters(ProcessInstance processInstance) { processInstance.AddParameters(GetSystemProcessParameters(processInstance.ProcessId, processInstance.ProcessScheme)); }
public void FillProcessParameters(ProcessInstance processInstance) { processInstance.AddParameters(this.GetProcessParameters(processInstance.ProcessId, processInstance.ProcessScheme)); }