public void Workflow_AddExistingVariable_VariableAdded() { // Arrange var correlationId = 100; var type = EntityOnOffWorkflow.TYPE; var state = "Off"; var assignee = "alice"; var workflow = Workflow.Create(correlationId, type, state, assignee); var variable = new LightSwitcherWorkflowVariable(); workflow.AddVariable(variable); var existingVariable = new LightSwitcherWorkflowVariable { CanSwitch = true }; // Act workflow.AddVariable(existingVariable); // Assert Assert.NotNull(workflow); Assert.Single(workflow.WorkflowVariables); var wv = workflow.WorkflowVariables.First(); var v = (LightSwitcherWorkflowVariable)WorkflowVariable.ConvertContent(wv); Assert.True(v.CanSwitch); }
private void EnsureWorkflowVariables(Workflow workflow, TriggerParam param) { if (workflow.WorkflowVariables.Count == 0) { return; } foreach (var workflowVariable in workflow.WorkflowVariables) { var variable = WorkflowVariable.ConvertContent(workflowVariable); if (variable is WorkflowVariableBase) { var key = workflowVariable.Type; if (param.Variables.ContainsKey(key)) { param.Variables[key] = variable as WorkflowVariableBase; } else { param.Variables.Add(key, variable as WorkflowVariableBase); } } } }