コード例 #1
0
ファイル: ctlBsonValue.cs プロジェクト: magicdict/MongoCola
        /// <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");
                        _mBsonDocument.Add("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);
            }
        }
コード例 #2
0
ファイル: ctlBsonValue.cs プロジェクト: magicdict/MongoCola
 /// <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);
 }
コード例 #3
0
ファイル: ctlBsonValue.cs プロジェクト: magicdict/MongoCola
 /// <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;
 }
コード例 #4
0
ファイル: BsonValueEx.cs プロジェクト: magicdict/MongoCola
 /// <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;
 }