Пример #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);
                }
            }
        }
Пример #2
0
        protected virtual Variable AddVariable(string name, object value,
                                               IVariableType type = null)
        {
            if (value == null)
            {
                return(null);
            }

            if (type == null)
            {
                type = VariableType.Resolve(value);
            }

            var variable = new Variable();

            variable.Name = name;
            variable.Type = type.Name;

            type.SetValue(variable, value);

            this.Variables.Add(variable);
            this.variableByName.Add(name, variable);

            return(variable);
        }