internal static INodeProxy CreateParam(DataParameterBase param) { if (param is BoolParameter) { return(new ParameterProxy <bool>((BoolParameter)param)); } if (param is FloatParameter) { return(new FloatParameterProxy((FloatParameter)param)); } if (param is ChoiceParameter) { return(new ChoiceParameterProxy((ChoiceParameter)param)); } if (param is IntParameter) { return(new ParameterProxy <int>((IntParameter)param)); } if (param is StringParameter) { return(new ParameterProxy <string>((StringParameter)param)); } if (param is BinaryParameter) { return(new ParameterProxy <byte[]>((BinaryParameter)param)); } throw new ArgumentOutOfRangeException("ParameterProxyFactory.CreateParam: Parameter type not recognized"); }
private void ParamOnChanged(DataParameterBase dataParameterBase) { _passedOnChanged = true; Console.WriteLine($"Parameter {dataParameterBase.Designation} value set to: {dataParameterBase.AsString}"); }
private object?GetParameterValue( DataParameterBase dataParameter, object?value) { object?value2; if (value != null) { if (value == DBNull.Value) { value2 = DBNull.Value; } else { switch (dataParameter.DbType) { case DbType.Boolean: var valueStr = (string)value; var ok = double.TryParse(valueStr, NumberStyles.Any, null, out var valueDbl); value2 = ok ? Convert.ToBoolean(valueDbl) : Convert.ToBoolean(value); break; case DbType.Int16: value2 = Convert.ToInt32(value); break; case DbType.Int32: value2 = Convert.ToInt32(value); break; case DbType.Decimal: case DbType.VarNumeric: valueStr = value.ToString(); var decimalString = new DecimalString(value.ToString()); if (dataParameter.Precision != 0 && decimalString.Precision > dataParameter.Precision) { throw new Exception("Invalid precision"); } else if (dataParameter.Scale != 0 && decimalString.Scale > dataParameter.Scale) { throw new Exception("Invalid scale"); } else { IFormatProvider formatProvider = CultureInfo.InvariantCulture; value2 = Convert.ToDecimal(valueStr, formatProvider); } break; case DbType.Double: value2 = Convert.ToDouble(value); break; case DbType.String: case DbType.StringFixedLength: case DbType.AnsiString: case DbType.AnsiStringFixedLength: valueStr = Convert.ToString(value); if (dataParameter.Size > 0 && valueStr.Length > dataParameter.Size) { throw new Exception("Length exceeds size of parameter"); } else { value2 = valueStr; } break; case DbType.DateTime: try { value2 = Convert.ToDateTime(value); } catch { var formats = new[] { "yyyyMMdd", "yyyyMMdd HH:mm:ss" }; IFormatProvider formatProvider = CultureInfo.InvariantCulture; value2 = DateTime.ParseExact(value.ToString(), formats, formatProvider, DateTimeStyles.None); } break; default: value2 = value; break; } } } else { value2 = null; } return(value2); }
protected override void OnSourceChanged(DataParameterBase param) { FirePropertiesChanged(nameof(Value), nameof(SelectedIndex), nameof(IsModified)); }