Ejemplo n.º 1
0
        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");
        }
Ejemplo n.º 2
0
 private void ParamOnChanged(DataParameterBase dataParameterBase)
 {
     _passedOnChanged = true;
     Console.WriteLine($"Parameter {dataParameterBase.Designation} value set to: {dataParameterBase.AsString}");
 }
Ejemplo n.º 3
0
    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);
    }
Ejemplo n.º 4
0
 protected override void OnSourceChanged(DataParameterBase param)
 {
     FirePropertiesChanged(nameof(Value), nameof(SelectedIndex), nameof(IsModified));
 }