Example #1
0
        protected virtual void InitializeProcessContext(ProcessInstance processInstance,
                                                        IList <ValuedDataObject> dataObjects)
        {
            var dataObjectsMap = dataObjects.ToDictionary(x => x.Id);

            IVariableType type = null;

            foreach (var dataObject in dataObjects)
            {
                var value = dataObject.Value;
                type = Variables.VariableType.Resolve(value);

                var variable = new Variable();
                variable.Name = dataObject.Id;
                variable.Type = type.Name;

                type.SetValue(variable, value);

                processInstance.Variables.Add(variable);
            }

            if (variables != null && variables.Count > 0)
            {
                var em = variables.GetEnumerator();
                while (em.MoveNext())
                {
                    processInstance.SetVariable(em.Current.Key, em.Current.Value);
                }
            }
        }