// This is the main method using with parameter values should be obtained. It takes care of overrides etc.
        private string GetParamValue(string paramName)
        {
            String paramValueFromXml     = _controller.GetParameterByName(paramName);
            String paramValueFromCmdline = GetDynamicParamValue(paramName);

            // Value of parameter set inside cmdline has higher precedence than the one inside xml.
            string value = String.IsNullOrEmpty(paramValueFromCmdline) ? paramValueFromXml : paramValueFromCmdline;

            // if no value given, see if ValuePrefixRef and ValueSuffix are available, and combine them to get the value
            if (string.IsNullOrEmpty(value))
            {
                string valuePrefixRef = _controller.GetParamValuePrefixRef(paramName);
                if (string.IsNullOrEmpty(valuePrefixRef))
                {
                    return(null);
                }

                string valuePrefix = GetParamValue(valuePrefixRef);
                if (string.IsNullOrEmpty(valuePrefix))
                {
                    return(null);
                }

                string valueSuffix = _controller.GetParamValueSuffix(paramName);

                value = valuePrefix + valueSuffix;
            }

            string foramttedValue = ReplaceNotations(value);

            return(foramttedValue);
        }