Exemple #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 public void DataTypeChanged(BsonValueEx.BasicType DataType)
 {
     txtBsonValue.Visible = false;
     radTrue.Visible      = false;
     radFalse.Visible     = false;
     SetValue(BsonValueEx.GetInitValue(DataType), DataType);
 }
Exemple #2
0
        /// <summary>
        ///     使用属性会发生一些MONO上的移植问题
        /// </summary>
        /// <returns></returns>
        public BsonValue GetValue(BsonValueEx.BasicType DataType)
        {
            BsonValue mValue = null;

            switch (DataType)
            {
            case BsonValueEx.BasicType.BsonString:
                mValue = new BsonString(txtBsonValue.Text);
                break;

            case BsonValueEx.BasicType.BsonInt32:
                mValue = new BsonInt32(Convert.ToInt32(NumberPick.Value));
                break;

            case BsonValueEx.BasicType.BsonInt64:
                mValue = new BsonInt64(Convert.ToInt64(NumberPick.Value));
                break;

            case BsonValueEx.BasicType.BsonDecimal128:
                mValue = new BsonDecimal128(Convert.ToDecimal(NumberPick.Value));
                break;

            case BsonValueEx.BasicType.BsonDouble:
                mValue = new BsonDouble(Convert.ToDouble(txtBsonValue.Text));
                break;

            case BsonValueEx.BasicType.BsonDateTime:
                mValue = new BsonDateTime(dateTimePicker.Value);
                break;

            case BsonValueEx.BasicType.BsonBoolean:
                mValue = radTrue.Checked ? BsonBoolean.True : BsonBoolean.False;
                break;

            case BsonValueEx.BasicType.BsonArray:
            case BsonValueEx.BasicType.BsonLegacyPoint:
                mValue = _mBsonArray;
                break;

            case BsonValueEx.BasicType.BsonGeoJSON:
            case BsonValueEx.BasicType.BsonDocument:
                mValue = _mBsonDocument;
                break;

            case BsonValueEx.BasicType.BsonMaxKey:
                mValue = BsonMaxKey.Value;
                break;

            case BsonValueEx.BasicType.BsonMinKey:
                mValue = BsonMinKey.Value;
                break;

            case BsonValueEx.BasicType.BsonBinary:
                mValue = new BsonBinaryData(Encoding.Default.GetBytes(txtBsonValue.Text));
                break;
            }
            return(mValue);
        }
Exemple #3
0
        /// <summary>
        ///     各种基本类型的初始值
        /// </summary>
        /// <param name="DataType"></param>
        /// <returns></returns>
        public static BsonValue GetInitValue(BsonValueEx.BasicType DataType)
        {
            BsonValue InitValue = BsonNull.Value;

            switch (DataType)
            {
            case BasicType.BsonString:
                InitValue = (new BsonString(string.Empty));
                break;

            case BasicType.BsonInt32:
                InitValue = (new BsonInt32(0));
                break;

            case BasicType.BsonInt64:
                InitValue = (new BsonInt64(0));
                break;

            case BasicType.BsonDecimal128:
                InitValue = (new BsonDecimal128(0));
                break;

            case BasicType.BsonDouble:
                InitValue = (new BsonDouble(0));
                break;

            case BasicType.BsonDateTime:
                InitValue = (new BsonDateTime(DateTime.Now));
                break;

            case BasicType.BsonBoolean:
                InitValue = (BsonBoolean.False);
                break;

            case BasicType.BsonArray:
                InitValue = (new BsonArray());
                break;

            case BasicType.BsonDocument:
                InitValue = (new BsonDocument());
                break;

            case BasicType.BsonGeo:
                InitValue = (new BsonArray()
                {
                    0, 0
                });
                break;

            default:
                break;
            }
            return(InitValue);
        }
Exemple #4
0
        /// <summary>
        ///     使用属性会发生一些MONO上的移植问题
        /// </summary>
        /// <returns></returns>
        public BsonValue GetValue(BsonValueEx.BasicType DataType)
        {
            BsonValue mValue = null;

            switch (DataType)
            {
            case BsonValueEx.BasicType.BsonString:
                mValue = new BsonString(txtBsonValue.Text);
                break;

            case BsonValueEx.BasicType.BsonInt32:
                mValue = new BsonInt32(Convert.ToInt32(NumberPick.Value));
                break;

            case BsonValueEx.BasicType.BsonInt64:
                mValue = new BsonInt64(Convert.ToInt64(NumberPick.Value));
                break;

            case BsonValueEx.BasicType.BsonDecimal128:
                mValue = new BsonDecimal128(Convert.ToDecimal(NumberPick.Value));
                break;

            case BsonValueEx.BasicType.BsonDouble:
                mValue = new BsonDouble(Convert.ToDouble(txtBsonValue.Text));
                break;

            case BsonValueEx.BasicType.BsonDateTime:
                mValue = new BsonDateTime(dateTimePicker.Value);
                break;

            case BsonValueEx.BasicType.BsonBoolean:
                mValue = radTrue.Checked ? BsonBoolean.True : BsonBoolean.False;
                break;

            case BsonValueEx.BasicType.BsonArray:
            case BsonValueEx.BasicType.BsonGeo:
                mValue = _mBsonArray;
                break;

            case BsonValueEx.BasicType.BsonDocument:
                mValue = _mBsonDocument;
                break;
            }
            return(mValue);
        }
Exemple #5
0
        /// <summary>
        ///     使用属性会发生一些MONO上的移植问题
        /// </summary>
        /// <returns></returns>
        public void SetValue(BsonValue value, BsonValueEx.BasicType DataType = BsonValueEx.BasicType.BsonUndefined)
        {
            txtBsonValue.Visible   = false;
            txtBsonValue.Text      = string.Empty;
            txtBsonValue.ReadOnly  = false;
            radTrue.Visible        = false;
            radFalse.Visible       = false;
            radFalse.Checked       = true;
            dateTimePicker.Visible = false;
            NumberPick.Visible     = false;

            if (value.IsString)
            {
                txtBsonValue.Visible = true;
                txtBsonValue.Text    = value.ToString();
            }

            if (value.IsInt32)
            {
                NumberPick.Visible = true;
                NumberPick.Value   = value.AsInt32;
            }

            if (value.IsInt64)
            {
                NumberPick.Visible = true;
                NumberPick.Value   = value.AsInt64;
            }

            if (value.IsDecimal128)
            {
                NumberPick.Visible = true;
                NumberPick.Value   = value.AsDecimal;
            }

            if (value.IsDouble)
            {
                txtBsonValue.Visible = true;
                txtBsonValue.Text    = value.AsDouble.ToString();
            }

            if (value.IsValidDateTime)
            {
                dateTimePicker.Visible = true;
                dateTimePicker.Value   = value.ToUniversalTime();
            }

            if (value.IsBsonMaxKey || value.IsBsonMinKey)
            {
                txtBsonValue.Visible = true;
                txtBsonValue.Enabled = false;
                txtBsonValue.Text    = value.ToString();
            }

            if (value.IsBoolean)
            {
                radTrue.Visible  = true;
                radFalse.Visible = true;
                if (value.AsBoolean)
                {
                    radTrue.Checked = true;
                }
                else
                {
                    radFalse.Checked = true;
                }
            }
            if (value.IsBsonArray)
            {
                if (GetArray == null)
                {
                    MessageBox.Show("GetArray委托不存在!");
                    return;
                }
                if (DataType == BsonValueEx.BasicType.BsonLegacyPoint)
                {
                    //地理
                    var t = GetGeoPoint();
                    if (t != null)
                    {
                        _mBsonArray           = t;
                        txtBsonValue.Visible  = true;
                        txtBsonValue.Text     = _mBsonArray.ToString();
                        txtBsonValue.ReadOnly = true;
                    }
                }
                else
                {
                    //普通数组
                    var t = GetArray();
                    if (t != null)
                    {
                        _mBsonArray           = t;
                        txtBsonValue.Visible  = true;
                        txtBsonValue.Text     = _mBsonArray.ToString();
                        txtBsonValue.ReadOnly = true;
                    }
                }
            }
            if (value.IsBsonDocument)
            {
                if (GetDocument == null)
                {
                    MessageBox.Show("GetDocument委托不存在!");
                    return;
                }

                if (DataType == BsonValueEx.BasicType.BsonGeoJSON)
                {
                    //地理
                    var t = GetGeoPoint();
                    if (t != null)
                    {
                        _mBsonDocument = new BsonDocument("type", "Point")
                        {
                            { "coordinates", t }
                        };
                        txtBsonValue.Visible  = true;
                        txtBsonValue.Text     = _mBsonDocument.ToString();
                        txtBsonValue.ReadOnly = true;
                    }
                }
                else
                {
                    var t = GetDocument();
                    if (t != null)
                    {
                        _mBsonDocument        = t;
                        txtBsonValue.Visible  = true;
                        txtBsonValue.Text     = _mBsonDocument.ToString();
                        txtBsonValue.ReadOnly = true;
                    }
                }
            }
            if (value.IsBsonBinaryData)
            {
                txtBsonValue.Visible = true;
                txtBsonValue.Text    = Encoding.Default.GetString(value.AsBsonBinaryData.Bytes);
            }
        }
Exemple #6
0
        /// <summary>
        ///     使用属性会发生一些MONO上的移植问题
        /// </summary>
        /// <returns></returns>
        public void SetValue(BsonValue value, BsonValueEx.BasicType DataType = BsonValueEx.BasicType.BsonUndefined)
        {
            txtBsonValue.Visible   = false;
            txtBsonValue.Text      = string.Empty;
            txtBsonValue.ReadOnly  = false;
            radTrue.Visible        = false;
            radFalse.Visible       = false;
            radFalse.Checked       = true;
            dateTimePicker.Visible = false;
            NumberPick.Visible     = false;

            if (value.IsString)
            {
                txtBsonValue.Visible = true;
                txtBsonValue.Text    = value.ToString();
            }

            if (value.IsInt32)
            {
                NumberPick.Visible = true;
                NumberPick.Value   = value.AsInt32;
            }

            if (value.IsInt64)
            {
                NumberPick.Visible = true;
                NumberPick.Value   = value.AsInt64;
            }

            if (value.IsDecimal128)
            {
                NumberPick.Visible = true;
                NumberPick.Value   = value.AsDecimal;
            }

            if (value.IsDouble)
            {
                txtBsonValue.Visible = true;
                txtBsonValue.Text    = value.AsDouble.ToString();
            }

            if (value.IsValidDateTime)
            {
                dateTimePicker.Visible = true;
                dateTimePicker.Value   = value.ToUniversalTime();
            }

            if (value.IsBoolean)
            {
                radTrue.Visible  = true;
                radFalse.Visible = true;
                if (value.AsBoolean)
                {
                    radTrue.Checked = true;
                }
                else
                {
                    radFalse.Checked = true;
                }
            }
            if (value.IsBsonArray)
            {
                if (GetArray == null)
                {
                    MessageBox.Show("GetArray委托不存在!");
                    return;
                }
                if (DataType == BsonValueEx.BasicType.BsonGeo)
                {
                    //地理
                    var t = GetGeo();
                    if (t != null)
                    {
                        _mBsonArray           = t;
                        txtBsonValue.Visible  = true;
                        txtBsonValue.Text     = _mBsonArray.ToString();
                        txtBsonValue.ReadOnly = true;
                    }
                }
                else
                {
                    //普通数组
                    var t = GetArray();
                    if (t != null)
                    {
                        _mBsonArray           = t;
                        txtBsonValue.Visible  = true;
                        txtBsonValue.Text     = _mBsonArray.ToString();
                        txtBsonValue.ReadOnly = true;
                    }
                }
            }
            if (value.IsBsonDocument)
            {
                if (GetDocument == null)
                {
                    MessageBox.Show("GetDocument委托不存在!");
                    return;
                }
                var t = GetDocument();
                if (t != null)
                {
                    _mBsonDocument        = t;
                    txtBsonValue.Visible  = true;
                    txtBsonValue.Text     = _mBsonDocument.ToString();
                    txtBsonValue.ReadOnly = true;
                }
            }
        }
Exemple #7
0
        /// <summary>
        ///     各种基本类型的初始值
        /// </summary>
        /// <param name="DataType"></param>
        /// <returns></returns>
        public static BsonValue GetInitValue(BsonValueEx.BasicType DataType)
        {
            BsonValue InitValue = BsonNull.Value;

            switch (DataType)
            {
            case BasicType.BsonString:
                InitValue = new BsonString(string.Empty);
                break;

            case BasicType.BsonInt32:
                InitValue = new BsonInt32(0);
                break;

            case BasicType.BsonInt64:
                InitValue = new BsonInt64(0);
                break;

            case BasicType.BsonDecimal128:
                InitValue = new BsonDecimal128(0);
                break;

            case BasicType.BsonDouble:
                InitValue = new BsonDouble(0);
                break;

            case BasicType.BsonDateTime:
                InitValue = new BsonDateTime(DateTime.Now);
                break;

            case BasicType.BsonBoolean:
                InitValue = BsonBoolean.False;
                break;

            case BasicType.BsonArray:
                InitValue = new BsonArray();
                break;

            case BasicType.BsonDocument:
                InitValue = new BsonDocument();
                break;

            case BasicType.BsonLegacyPoint:
                InitValue = new BsonArray()
                {
                    0, 0
                };
                break;

            case BasicType.BsonGeoJSON:
                InitValue = new BsonDocument("type", "Point");
                InitValue.AsBsonDocument.Add("coordinates", new BsonArray()
                {
                    0, 0
                });
                break;

            case BasicType.BsonMaxKey:
                InitValue = BsonMaxKey.Value;
                break;

            case BasicType.BsonMinKey:
                InitValue = BsonMinKey.Value;
                break;

            case BasicType.BsonBinary:
                InitValue = new BsonBinaryData(new byte[0]);
                break;

            default:
                break;
            }
            return(InitValue);
        }