示例#1
0
        public string ReplaceTokens(string str, IDictionary <string, object> extraTokens = null, string store = DEFAULTSTORE)
        {
            var tokenStore = this.Tokens.GetValueOrAdd(store);

            if (tokenStore != null)
            {
                str = TokenProcessor.ReplaceTokens(str, tokenStore);
            }

            str = TokenProcessor.ReplaceTokens(str, extraTokens);
            return(str);
        }
示例#2
0
        public object GetEvaluatedValue(IDictionary <string, object> contextTokens = null)
        {
            var value = this.Value;

            if (this.UseEncryption && this.DataType == DataTypes.String)
            {
                value = EncryptionHelper.GetDecrptedString(value.ToStringOrEmpty());
            }

            if (this.IsValueExpression)
            {
                value = TokenProcessor.EvaluateExpression(value.ToStringOrEmpty(), contextTokens);
            }

            return(value);
        }
示例#3
0
        protected void TransferInParameters(CommandParameters inParameters)
        {
            if (inParameters == null)
            {
                inParameters = new CommandParameters();
            }

            this.InitExecuteParameters();

            foreach (var inParameter in inParameters)
            {
                var parameter = this.ExecuteParameters.FirstOrDefault(x => x.Token == inParameter.Name);
                if (parameter != null && !parameter.HasValue)
                {
                    parameter.Value = inParameter.Value;
                }
                else
                {
                    if (!this.ExecuteParameters.Any(x => x.Name == inParameter.Name))
                    {
                        this.ExecuteParameters.AddOrUpdate(inParameter);
                    }
                }
            }

            var currentInParameters = this.GetCurrentInParameters();

            foreach (var currentInParameter in currentInParameters)
            {
                string newValue = null;
                if (TokenProcessor.ReplaceTokens(currentInParameter.Value.ToStringOrEmpty(), inParameters.ToDictionary(), out newValue))
                {
                    currentInParameter.Value = newValue;
                }

                if (currentInParameter.DataType == DataTypes.String)
                {
                    currentInParameter.Value = TokenProcessor.ExpandEnvironmentVariables(currentInParameter.Value.ToStringOrEmpty());
                }
            }
        }