internal string GetCommandText(IDynamicTextSetting dynamicText, IDictionary parameters) { var parameterName = dynamicText.ParameterName; if (!string.IsNullOrEmpty(parameterName)) { var isPresent = dynamicText.IsPresent; var isNull = dynamicText.IsNull; if (isPresent.HasValue) { if ((isPresent.Value && !parameters.Contains(parameterName)) || (!isPresent.Value && parameters.Contains(parameterName))) { return(string.Empty); } } if (isNull.HasValue) { var value = parameters[parameterName]; if ((isNull.Value && value != null) || (!isNull.Value && value == null)) { return(string.Empty); } } } var values = dynamicText.ConfigSetting.Value.Values; if (values.Length <= 1) { return(dynamicText.ConfigSetting.Value.Value); } var text = new StringBuilder(); var texts = dynamicText.DynamicTexts; var valueIndex = 0; foreach (var t in values) { var value = t; if (value is int) { if (valueIndex < texts.Length) { text.Append(this.GetCommandText(texts[valueIndex++], parameters)); } } else { text.Append(t); } } return(text.ToString()); }
internal string GetCommandText(IDynamicTextSetting dynamicText, IDictionary parameters) { var parameterName = dynamicText.ParameterName; if(!string.IsNullOrEmpty(parameterName)) { var isPresent = dynamicText.IsPresent; var isNull = dynamicText.IsNull; if(isPresent.HasValue) { if ((isPresent.Value && !parameters.Contains(parameterName)) || (!isPresent.Value && parameters.Contains(parameterName))) { return string.Empty; } } if(isNull.HasValue) { var value = parameters[parameterName]; if((isNull.Value && value != null) || (!isNull.Value && value == null)) { return string.Empty; } } } var values = dynamicText.ConfigSetting.Value.Values; if(values.Length <= 1) { return dynamicText.ConfigSetting.Value.Value; } var text = new StringBuilder(); var texts = dynamicText.DynamicTexts; var valueIndex = 0; foreach(var t in values) { var value = t; if (value is int) { if (valueIndex < texts.Length) { text.Append(this.GetCommandText(texts[valueIndex++], parameters)); } } else { text.Append(t); } } return text.ToString(); }