Beispiel #1
0
        /// <summary>
        /// Defines a variable in this scope.
        /// </summary>
        /// <param name="name"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public IVariableDefinition DefineVariable(string name, object value)
        {
            var normalizedName = ScopeExtensions.NormalizeVariableName(name);
            var variable       = variables[normalizedName] = new VariableDefinition(name, value);

            if (normalizedName == ScopeExtensions.NormalizeVariableName(ScopeExtensions.ThisName))
            {
                thisMembers.Clear();
                var cqlType = system.GetTypeByNative(GetValueType(variable.Value));
                foreach (var property in cqlType.Members)
                {
                    thisMembers.Add(ScopeExtensions.NormalizeVariableName(property.Name), new VariableDefinition(property.Name, GetPropertyValue(value, property)));
                }
            }
            return(variable);
        }