/// <summary>
 /// 获得数据库角色
 /// </summary>
 /// <param name="DatabaseName"></param>
 /// <returns></returns>
 public BsonArray GetRolesByDBName(String DatabaseName)
 {
     BsonArray roles = new BsonArray();
     //当前DB的System.user的角色
     if (UserList.ContainsKey(DatabaseName)) {
         roles = UserList[DatabaseName].roles;
     }
     ///Admin的OtherDBRoles和当前数据库角色合并
     BsonArray adminRoles = GetOtherDBRoles(DatabaseName);
     foreach (String item in adminRoles)
     {
         if (!roles.Contains(item)) {
             roles.Add(item);
         }
     }
     ///ADMIN的ANY系角色的追加
     if (UserList.ContainsKey(MongoDBHelper.DATABASE_NAME_ADMIN)) {
         if (UserList[MongoDBHelper.DATABASE_NAME_ADMIN].roles.Contains(MongoDBHelper.UserRole_dbAdminAnyDatabase)){
             roles.Add(MongoDBHelper.UserRole_dbAdminAnyDatabase);
         }
         if (UserList[MongoDBHelper.DATABASE_NAME_ADMIN].roles.Contains(MongoDBHelper.UserRole_readAnyDatabase))
         {
             roles.Add(MongoDBHelper.UserRole_readAnyDatabase);
         }
         if (UserList[MongoDBHelper.DATABASE_NAME_ADMIN].roles.Contains(MongoDBHelper.UserRole_readWriteAnyDatabase))
         {
             roles.Add(MongoDBHelper.UserRole_readWriteAnyDatabase);
         }
         if (UserList[MongoDBHelper.DATABASE_NAME_ADMIN].roles.Contains(MongoDBHelper.UserRole_userAdminAnyDatabase))
         {
             roles.Add(MongoDBHelper.UserRole_userAdminAnyDatabase);
         }
     }
     return roles;
 }
        public static void AddLogToCollection(string jsonDocument,string collectionName)
        {
            try
            {
                var document = BsonDocument.Parse(jsonDocument);

                document = CorrectDateField(document);

                var keyValue = document.First().Value.ToString();

                var result = new BsonDocument();
                result.Add("_id", keyValue);

                var mongoRepo = new MongoDBRepository<MongoDBContext>();
                var fResult = mongoRepo.FinObjectByKey(collectionName, keyValue).ToList();

                if (fResult != null && fResult.Count == 1)
                {
                    var value = fResult.First().Last().Value as BsonArray;
                    if (value != null)
                    {
                        var doc = fResult.First().Last().Value as BsonArray;
                        doc.Add(document.Last().Value);
                        CopyMidelElmentInResult(document, result);
                        result.Add(document.Last().Name, doc);
                        mongoRepo.ReplaceOne(keyValue, collectionName, result);
                    }
                    else
                    {
                        var doc = fResult.First().Last().Value as BsonDocument;
                        var list = new BsonArray();
                        list.Add(doc);
                        list.Add(document.Last().Value);
                        CopyMidelElmentInResult(document, result);
                        result.Add(doc.Last().Name, list);
                        mongoRepo.ReplaceOne(keyValue, collectionName, result);
                    }
                }
                else
                {

                    CopyMidelElmentInResult(document, result);
                    var list = new BsonArray();
                    list.Add(document.Last().Value);
                    result.Add(document.Last().Name, list);
                    mongoRepo.AddOne(collectionName, result);
                }

            }
            catch(Exception ex)
            {
                APILogger.Write(ex.Message, LogLevel.Error);
            }
           
        }
Пример #3
0
    public string get_depth_all()
    {
        string sql = "select max(id) from depth_log where website='btcchina' and type='sell' ";
        string max_id = SQLServerHelper.get_table(sql).Rows[0][0].ToString();

        sql = "select * from depth_log where id={0}";
        sql = string.Format(sql, max_id);
        string result_sell = SQLServerHelper.get_table(sql).Rows[0]["text"].ToString();

        sql = "select max(id) from depth_log where website='btcchina' and type='buy' ";
        max_id = SQLServerHelper.get_table(sql).Rows[0][0].ToString();

        sql = "select * from depth_log where id={0}";
        sql = string.Format(sql, max_id);
        string result_buy = SQLServerHelper.get_table(sql).Rows[0]["text"].ToString();

        BsonArray array_sell = MongoHelper.get_array_from_str(result_sell);
        BsonArray array_buy = MongoHelper.get_array_from_str(result_buy);

        BsonArray list = new BsonArray();

        BsonDocument doc_buy = new BsonDocument();
        doc_buy.Add("name", "SELL");
        BsonArray list_buy = new BsonArray();
        for (int i = array_buy.Count-1; i >=0; i--)
        {
            BsonDocument doc_item = new BsonDocument();
            doc_item.Add("x", array_buy[i][0]);
            doc_item.Add("y", array_buy[i][1]);
            list_buy.Add(doc_item);
        }
        doc_buy.Add("data", list_buy);

        BsonDocument doc_sell = new BsonDocument();
        doc_sell.Add("name", "SELL");
        BsonArray list_sell = new BsonArray();
        for (int i =array_sell.Count-1; i>=0; i--)
        {
            BsonDocument doc_item = new BsonDocument();
            doc_item.Add("x", array_sell[i][0]);
            doc_item.Add("y", array_sell[i][1]);
            list_sell.Add(doc_item);
        }
        doc_sell.Add("data", list_sell);

        list.Add(doc_buy);
        list.Add(doc_sell);

        return list.ToString();
    }
Пример #4
0
    public static void insert_trade(string result, string pair)
    {
        StringBuilder sb = new StringBuilder();
        BsonArray list = MongoHelper.get_array_from_str(result);
        BsonArray sell=new BsonArray();
        BsonArray buy=new BsonArray();
        for (int i = 0; i < list.Count; i++)
        {
            BsonDocument doc_item = new BsonDocument();
            doc_item["id"] = list[i]["tid"].ToString();
            doc_item["time"] = list[i]["date"].ToString();
            doc_item["price"] = list[i]["price"].ToString();
            doc_item["qty"] = list[i]["amount"].ToString();

            if (list[i]["type"].ToString() == "sell")
            {
                sell.Add(doc_item);
            }
            if (list[i]["type"].ToString() == "buy")
            {
                buy.Add(doc_item);
            }
        }
        BtcHelper.insert_trade_log("btcchina", pair, "sell", "btc", sell.ToString());
        BtcHelper.insert_trade_log("btcchina", pair, "buy", "btc", buy.ToString());
    }
 public void TestAddNull()
 {
     var array = new BsonArray();
     var value = (BsonValue)null;
     array.Add(value);
     Assert.AreEqual(0, array.Count);
 }
		public static void AddField(this BsonDocument doc, string name, object value)
		{
			if (value == null) return;

			var unifiedName = name.ToLower();
			switch (unifiedName)
			{
				case "exception":
					doc[name] = BuildExceptionBsonDocument((Exception)value); break;

				case "properties":
					var properties = (IDictionary<object, object>)value;
					if (properties.Count > 0)
						doc[name] = BuildPropertiesBsonDocument(properties);
					break;

				case "parameters":
					var parameters = (object[])value;
                    BsonArray array = new BsonArray();
                    foreach (var param in parameters)
                    {
                        array.Add(SafeCreateBsonValue(param));
                    }
                    doc[name] = array;
					break;

				default:
                    doc[name] = SafeCreateBsonValue(value);
					break;
			}
		}
        // public methods
        /// <summary>
        /// Deserializes an object from a BsonReader.
        /// </summary>
        /// <param name="bsonReader">The BsonReader.</param>
        /// <param name="nominalType">The nominal type of the object.</param>
        /// <param name="actualType">The actual type of the object.</param>
        /// <param name="options">The serialization options.</param>
        /// <returns>An object.</returns>
        public override object Deserialize(
            BsonReader bsonReader,
            Type nominalType,
            Type actualType,
            IBsonSerializationOptions options)
        {
            VerifyTypes(nominalType, actualType, typeof(BsonArray));

            var bsonType = bsonReader.GetCurrentBsonType();
            switch (bsonType)
            {
                case BsonType.Array:
                    bsonReader.ReadStartArray();
                    var array = new BsonArray();
                    while (bsonReader.ReadBsonType() != BsonType.EndOfDocument)
                    {
                        var value = (BsonValue)BsonValueSerializer.Instance.Deserialize(bsonReader, typeof(BsonValue), null);
                        array.Add(value);
                    }
                    bsonReader.ReadEndArray();
                    return array;
                default:
                    var message = string.Format("Cannot deserialize BsonArray from BsonType {0}.", bsonType);
                    throw new FileFormatException(message);
            }
        }
 /// <summary>
 /// </summary>
 /// <param name="SubNode"></param>
 /// <returns></returns>
 public static BsonDocument ConvertTreeNodeTozTreeBsonDoc(TreeNode SubNode)
 {
     var SingleNode = new BsonDocument();
     SingleNode.Add("name", SubNode.Text + GetTagText(SubNode));
     if (SubNode.Nodes.Count == 0)
     {
         SingleNode.Add("icon", "MainTreeImage" + String.Format("{0:00}", SubNode.ImageIndex) + ".png");
     }
     else
     {
         var ChildrenList = new BsonArray();
         foreach (TreeNode item in SubNode.Nodes)
         {
             ChildrenList.Add(ConvertTreeNodeTozTreeBsonDoc(item));
         }
         SingleNode.Add("children", ChildrenList);
         SingleNode.Add("icon", "MainTreeImage" + String.Format("{0:00}", SubNode.ImageIndex) + ".png");
     }
     if (SubNode.IsExpanded)
     {
         SingleNode.Add("open", "true");
     }
     if (SubNode.Tag != null)
     {
         SingleNode.Add("click",
             "ShowData('" + SystemManager.GetTagType(SubNode.Tag.ToString()) + "','" +
             SystemManager.GetTagData(SubNode.Tag.ToString()) + "')");
     }
     return SingleNode;
 }
        public override void Build(MongoDB.Bson.BsonDocument bsonPanelSetOrder, int panelSetId)
        {
            base.Build(bsonPanelSetOrder, panelSetId);

            string reportNo = bsonPanelSetOrder.GetValue("ReportNo").ToString();
            MongoCollection surgicalSpecimenTable = this.m_SQLTransferDatabase.GetCollection<BsonDocument>("tblSurgicalSpecimen");
            MongoCursor mongoCursor = surgicalSpecimenTable.FindAs<BsonDocument>(Query.EQ("ReportNo", reportNo));

            BsonArray bsonArray = new BsonArray();
            foreach (BsonDocument bsonSurgicalSpecimen in mongoCursor)
            {
                string surgicalSpecimenId = bsonSurgicalSpecimen.GetValue("SurgicalSpecimenId").AsString;
                this.BuildIC(bsonSurgicalSpecimen, surgicalSpecimenId);
                this.BuildStainResult(bsonSurgicalSpecimen, surgicalSpecimenId);
                this.BuildICD9BillingCode(bsonSurgicalSpecimen, surgicalSpecimenId);

                bsonArray.Add(bsonSurgicalSpecimen);
            }

            bsonPanelSetOrder.Add("SurgicalSpecimenCollection", bsonArray);

            MongoCollection surgicalAuditTable = this.m_SQLTransferDatabase.GetCollection<BsonDocument>("tblSurgicalAudit");
            MongoCursor surgicalAuditCursor = surgicalAuditTable.FindAs<BsonDocument>(Query.EQ("ReportNo", reportNo));

            BsonArray surgicalAuditArray = new BsonArray();
            foreach (BsonDocument bsonSurgicalAudit in surgicalAuditCursor)
            {
                string surgicalAuditId = bsonSurgicalAudit.GetValue("SurgicalAuditId").AsString;
                this.BuildSurgicalSpecimenAudit(bsonSurgicalAudit, surgicalAuditId);

                surgicalAuditArray.Add(bsonSurgicalAudit);
            }

            bsonPanelSetOrder.Add("SurgicalAuditCollection", surgicalAuditArray);
        }
 public BsonDocument Serialize(Scope scope)
 {
     var doc = new BsonDocument();
     doc["_id"] = scope.Name;
     doc["_version"] = 1;
     doc.SetIfNotNull("displayName", scope.DisplayName);
     var claims = new BsonArray();
     foreach (ScopeClaim scopeClaim in scope.Claims)
     {
         var claim = new BsonDocument();
         claim["name"] = scopeClaim.Name;
         claim["alwaysIncludeInIdToken"] = scopeClaim.AlwaysIncludeInIdToken;
         claim.SetIfNotNull("description", scopeClaim.Description);
         claims.Add(claim);
     }
     doc["claims"] = claims;
     doc.SetIfNotNull("claimsRule", scope.ClaimsRule);
     doc.SetIfNotNull("description", scope.Description);
     doc["emphasize"] = scope.Emphasize;
     doc["enabled"] = scope.Enabled;
     doc["includeAllClaimsForUser"] = scope.IncludeAllClaimsForUser;
     doc["required"] = scope.Required;
     doc["showInDiscoveryDocument"] = scope.ShowInDiscoveryDocument;
     doc["type"] = scope.Type.ToString();
     return doc;
 }
        public void Post(UserModel model)
        {
            var mongoDbClient = new MongoClient("mongodb://127.0.0.1:27017");
            var mongoDbServer = mongoDbClient.GetDatabase("SocialNetworks");
            BsonArray arr = new BsonArray();            
            dynamic jobj = JsonConvert.DeserializeObject<dynamic>(model.Movies.ToString());
            foreach (var item in jobj)
            {
                foreach(var subitem in item)
                {
                    arr.Add(subitem.Title.ToString());
                }
            }

            var document = new BsonDocument
            {
                { "Facebook_ID",  model.Facebook_ID },
                { "Ime",  model.Ime  },
                { "Prezime",  model.Prezime  },
                { "Email",  model.Email  },
                { "DatumRodjenja",  model.DatumRodjenja  },
                { "Hometown", model.Hometown},
                { "ProfilePictureLink", model.ProfilePictureLink  },
                { "Movies",  arr },
            };

            var collection = mongoDbServer.GetCollection<BsonDocument>("UserInfo");
            collection.InsertOneAsync(document);
        }
 public void TestAdd()
 {
     var array = new BsonArray();
     var value = BsonValue.Create(1);
     array.Add(value);
     Assert.AreEqual(1, array.Count);
     Assert.AreEqual(value, array[0]);
 }
Пример #13
0
 /// <summary>
 /// </summary>
 /// <param name="tree"></param>
 /// <returns></returns>
 public static String ConvertTreeViewTozTreeJson(TreeView tree)
 {
     var array = new BsonArray();
     foreach (TreeNode item in tree.Nodes)
     {
         array.Add(ConvertTreeNodeTozTreeBsonDoc(item));
     }
     return array.ToJson(MongoUtility.Basic.Utility.JsonWriterSettings);
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="tree"></param>
 /// <returns></returns>
 public static String ConvertTreeViewTozTreeJson(TreeView tree)
 {
     BsonArray array = new BsonArray();
     foreach (TreeNode item in tree.Nodes)
     {
         array.Add(ConvertTreeNodeTozTreeBsonDoc(item));
     }
     return array.ToJson(SystemManager.JsonWriterSettings);
 }
Пример #15
0
 /// <summary>
 /// 获取角色下所有用户(当前用户角色可见)
 /// </summary>
 /// <param name="Options">查询参数</param>
 /// <param name="ReceiveMessage">回调消息</param>
 public void GetAllUserByRole(BsonDocument Options, BsonDocument ReceiveMessage)
 {
     ObjectId RoleId = new ObjectId(Options.GetValue("UserRoleId").ToString());
     BsonArray RoleList = urs.GetAllChildren(RoleId);
     //RoleList.Add(urs.FindOne(RoleId).ToBsonDocument());//无法编辑自己的角色权限
     BsonArray RoleIds = new BsonArray();
     RoleIds.Add(RoleId);
     foreach (BsonValue ur in RoleList)
     {
         RoleIds.Add(ur["_id"]);
     }
     BsonArray UserList = us.GetAllUsersByRole(RoleIds);
     BsonDocument json = new BsonDocument();
     json.Add("RoleList", RoleList);
     json.Add("UserList", UserList);
     ReceiveMessage.Add("StateCode", 0);//登录成功
     ReceiveMessage.Add("ReData", json.ToJson(jsonSettings));
     CallBack();
 }
Пример #16
0
        /// <summary>
        /// 把String类型的ObjectId转换成ObjectId类型
        /// </summary>
        /// <param name="Array">未转换数组</param>
        /// <returns>返回数组</returns>
        public static BsonArray StrinIdToObjectId(BsonArray Array)
        {
            BsonArray newArray = new BsonArray();
            foreach (BsonValue Id in Array)
            {
                newArray.Add(new ObjectId(Id.AsString));
            }

            return newArray;
        }
Пример #17
0
 /// <summary>
 ///     获得数据库角色
 /// </summary>
 /// <param name="databaseName"></param>
 /// <returns></returns>
 public BsonArray GetRolesByDbName(string databaseName)
 {
     var roles = new BsonArray();
     //当前DB的System.user的角色
     if (UserList.ContainsKey(databaseName))
     {
         roles = UserList[databaseName].Roles;
     }
     //Admin的OtherDBRoles和当前数据库角色合并
     var adminRoles = GetOtherDbRoles(databaseName);
     foreach (string item in adminRoles)
     {
         if (!roles.Contains(item))
         {
             roles.Add(item);
         }
     }
     //ADMIN的ANY系角色的追加
     if (UserList.ContainsKey(ConstMgr.DatabaseNameAdmin))
     {
         if (UserList[ConstMgr.DatabaseNameAdmin].Roles.Contains(Role.UserRoleDbAdminAnyDatabase))
         {
             roles.Add(Role.UserRoleDbAdminAnyDatabase);
         }
         if (UserList[ConstMgr.DatabaseNameAdmin].Roles.Contains(Role.UserRoleReadAnyDatabase))
         {
             roles.Add(Role.UserRoleReadAnyDatabase);
         }
         if (
             UserList[ConstMgr.DatabaseNameAdmin].Roles.Contains(
                 Role.UserRoleReadWriteAnyDatabase))
         {
             roles.Add(Role.UserRoleReadWriteAnyDatabase);
         }
         if (
             UserList[ConstMgr.DatabaseNameAdmin].Roles.Contains(
                 Role.UserRoleUserAdminAnyDatabase))
         {
             roles.Add(Role.UserRoleUserAdminAnyDatabase);
         }
     }
     return roles;
 }
Пример #18
0
 /// <summary>
 /// 查询所有权限
 /// </summary>
 /// <param name="Query">查询条件</param>
 /// <returns>返回权限集合</returns>
 public BsonArray GetAll(BsonArray Query)
 {
     BsonArray PowerList = new BsonArray();
     List<BsonDocument> UserPowersDoc = dh.GetAllData("userpowers", new BsonDocument { { "_id", new BsonDocument { { "$in", Query } } } });
     foreach (BsonDocument UserPower in UserPowersDoc)
     {
         PowerList.Add(new UserPower(UserPower).ToBsonDocument());
     }
     return PowerList;
 }
Пример #19
0
        public static BsonDocument dropScore(BsonDocument document)
        {
            var homeworks = document["scores"].AsBsonArray.Where(value => value.ToBsonDocument()["type"] == "homework").ToList();
            var others = document["scores"].AsBsonArray.Where(value => value.ToBsonDocument()["type"] == "exam" || value.ToBsonDocument()["type"] == "quiz").ToList();
            var array = new BsonArray();

            others.Add((homeworks[0].ToBsonDocument()["score"].ToDouble() > homeworks[1].ToBsonDocument()["score"].ToDouble()) ? homeworks[0] : homeworks[1]);
            others.ForEach(data => array.Add(data.ToBsonDocument()));

            return new BsonDocument("_id", document["_id"]).Add("name", document["name"]).Add("scores", array);
        }
 public void TestCircularBsonArray()
 {
     // note: setting a breakpoint in this method will crash the debugger if the locals window is open
     // because it tries to display the value of array (presumably it's getting an internal stack overflow)
     var array = new BsonArray();
     array.Add(array);
     var c1 = new C { X = 1, BsonArray = array };
     Assert.Throws<BsonSerializationException>(() => { var json = c1.ToBson(); });
     Assert.Throws<BsonSerializationException>(() => { var json = c1.ToBsonDocument(); });
     Assert.Throws<BsonSerializationException>(() => { var json = c1.ToJson(); });
 }
Пример #21
0
 /// <summary>
 /// 获得数组
 /// </summary>
 /// <returns></returns>
 public BsonArray GetBsonArray()
 {
     BsonArray ValueList = new BsonArray();
     foreach (ctlBsonValue item in this.Controls)
     {
         if (item.getValue() != null)
         {
             ValueList.Add(item.getValue());
         }
     }
     return ValueList;
 }
Пример #22
0
        public async void SaveActiveQuests(string npcId) {
            BsonDocument quest = new BsonDocument();

            BsonArray activeQuests = new BsonArray();
            activeQuests.Add(quest);
            
            BsonDocument result = new BsonDocument();
            result.Add("_id", npcId);
            result.Add("ActiveQuests", activeQuests);

            await MongoUtils.MongoData.SaveAsync<BsonDocument>(MongoUtils.MongoData.GetCollection<BsonDocument>("NPCS", "Quests"), q => q["_id"] == npcId, result);
        }
Пример #23
0
 /// <summary>
 ///     获得数组
 /// </summary>
 /// <returns></returns>
 public BsonArray GetBsonArray()
 {
     var valueList = new BsonArray();
     foreach (CtlBsonValue item in Controls)
     {
         if (item.GetValue() != null)
         {
             valueList.Add(item.GetValue());
         }
     }
     return valueList;
 }
 public void Serialize(IEnumerable<Claim> claims, BsonDocument doc)
 {
     doc["_version"] = 1;
     var array = new BsonArray();
     foreach (Claim claim in claims)
     {
         var c = new BsonDocument();
         c["type"] = claim.Type;
         c["value"] = claim.Value;
         array.Add(c);
     }
     doc["claims"] = array;
 }
Пример #25
0
        private void BuildAliquotOrder(BsonDocument bsonParent)
        {
            MongoCollection aliquotOrderTable = this.m_SQLTransferDatabase.GetCollection<BsonDocument>("tblAliquotOrder");
            MongoCursor mongoCursor = aliquotOrderTable.FindAs<BsonDocument>(Query.EQ("SpecimenOrderId", bsonParent.GetValue("SpecimenOrderId")));
            BsonArray array = new BsonArray();

            foreach (BsonDocument bsonChild in mongoCursor)
            {
                array.Add(bsonChild);
            }

            bsonParent.Add("AliquotOrderCollection", array);
        }
Пример #26
0
        private void BuildICD9BillingCodeCollection(BsonDocument bsonParent)
        {
            MongoCollection mongoCollection = this.m_SQLTransferDatabase.GetCollection<BsonDocument>("tblICD9BillingCodeCollection");
            MongoCursor mongoCursor = mongoCollection.FindAs<BsonDocument>(Query.EQ("MasterAccessionNo", bsonParent.GetValue("MasterAccessionNo")));
            BsonArray array = new BsonArray();

            foreach (BsonDocument bsonChild in mongoCursor)
            {
                array.Add(bsonChild);
            }

            bsonParent.Add("ICD9BillingCodeCollection", array);
        }
        private void BuildICD9BillingCode(BsonDocument bsonSurgicalSpecimen, string surgicalSpecimenId)
        {
            MongoCollection icd9BillingCodeTable = this.m_SQLTransferDatabase.GetCollection<BsonDocument>("tblICD9BillingCode");
            MongoCursor mongoCursor = icd9BillingCodeTable.FindAs<BsonDocument>(Query.EQ("SurgicalSpecimenId", surgicalSpecimenId));

            BsonArray bsonArray = new BsonArray();
            foreach (BsonDocument bsonICD9BillingCode in mongoCursor)
            {
                bsonArray.Add(bsonICD9BillingCode);
            }

            bsonSurgicalSpecimen.Add("ICD9BillingCodeCollection", bsonArray);
        }
Пример #28
0
 /// <summary>
 /// 获取角色下所有角色
 /// </summary>
 /// <param name="RoleId">角色Id</param>
 /// <returns>返回所有角色集合</returns>
 public BsonArray GetAllChildren(ObjectId RoleId)
 {
     BsonArray RoleList = new BsonArray();
     List<BsonDocument> RoleDoc = dh.GetAllData("userroles", new BsonDocument { { "PUserRole", RoleId } });
     foreach (BsonDocument Role in RoleDoc)
     {
         UserRole ur = new UserRole(Role);
         ur.UserRolePowers = ups.GetAll(ur.UserRolePowers);
         RoleList.AddRange(GetAllChildren(ur.Id));
         RoleList.Add(ur.ToBsonDocument());
     }
     return RoleList;
 }
Пример #29
0
        private void BuildClientLocation(BsonDocument bsonParent)
        {
            MongoCollection clientLocationTable = this.m_SQLTransferDatabase.GetCollection<BsonDocument>("tblClientLocation");
            MongoCursor mongoCursor = clientLocationTable.FindAs<BsonDocument>(Query.EQ("ClientId", bsonParent.GetValue("ClientId").AsInt32));
            BsonArray array = new BsonArray();

            foreach (BsonDocument bsonChild in mongoCursor)
            {
                array.Add(bsonChild);
            }

            bsonParent.Add("ClientLocationCollection", array);
        }
Пример #30
0
        /// <summary>
        /// Método com exemplo de criação e exibição do documento no console.
        /// </summary>
        static void DocumentBson()
        {
            var doc = new BsonDocument();

            doc.Add("nome", "joao");
            doc.Add("idade", 20);

            var array = new BsonArray();

            array.Add(new BsonDocument("treinamento", "c#"));
            array.Add(new BsonDocument("treinamento", "mongo"));

            doc.Add("treinamentos", array);
            //Console.WriteLine(doc);

            //procedimento para capturar elemento.
            var arrayCapturado = new BsonElement();

            doc.TryGetElement("treinamentos", out arrayCapturado);
            Console.WriteLine(arrayCapturado);

            Console.ReadKey();
        }
Пример #31
0
        public static BsonDocument Serialize(Game game)
        {
            var document = new BsonDocument();

            document.Set("_id", new BsonObjectId(game.Id));
            document.Set("active_player", PlayerUtils.ToString(game.Engine.ActivePlayer));
            document.Set("game_state", GameStateUtils.ToString(game.Engine.QuantumChessboard.GameState));
            document.Set("creation_time", game.Engine.CreationTime);
            document.Set("last_modification_time", DateTime.Now);

            var bson_harmonics = new BsonArray();

            foreach (QuantumHarmonic harmonic in game.Engine.QuantumChessboard.Harmonics)
            {
                var bson_harmonic = new BsonDocument();
                bson_harmonic.Set("harmonic_state", GameStateUtils.ToString(harmonic.Board.GameState));
                bson_harmonic.Set("degeneracy", Convert.ToInt64(harmonic.Degeneracy));

                var bson_chessboard = new BsonArray();
                for (int i = 0; i < 64; i++)
                {
                    Piece?piece = harmonic.Board[i];
                    if (piece.HasValue)
                    {
                        var bson_piece = new BsonDocument();
                        bson_piece.Set("player", PlayerUtils.ToString(piece.Value.Player));
                        bson_piece.Set("piece", PieceTypeUtils.ToString(piece.Value.PieceType));
                        bson_chessboard.Add(bson_piece);
                    }
                    else
                    {
                        bson_chessboard.Add(BsonNull.Value);
                    }
                }

                bson_harmonic.Set("chessboard", bson_chessboard);
                bson_harmonics.Add(bson_harmonic);
            }
            document.Set("harmonics", bson_harmonics);

            var last_move_positions = new BsonArray();

            foreach (Position pos in game.Engine.LastMovePositions)
            {
                last_move_positions.Add(pos.ToString());
            }
            document.Set("last_move_positions", last_move_positions);

            return(document);
        }
Пример #32
0
        /// <summary>
        /// 处理数组(key转小写)
        /// </summary>
        /// <param name="doc"></param>
        /// <param name="projectFields"></param>
        /// <returns></returns>
        private BsonArray HandleArray(BsonArray docs, string projectFields)
        {
            BsonArray newDoc = new BsonArray();

            foreach (var doc in docs)
            {
                if (doc.IsBsonArray)
                {
                    newDoc.Add(HandleArray(doc.AsBsonArray, projectFields));
                }
                else if (doc.IsBsonDocument)
                {
                    newDoc.Add(HandleDoc(doc.AsBsonDocument, projectFields));
                }
                else
                {
                    newDoc.AddRange(docs);
                    break;
                }
            }

            return(newDoc);
        }
        static BsonArray EnumerableAsBsonArray(IEnumerable enumerable)
        {
            var array = new BsonArray();

            if (enumerable != null)
            {
                foreach (var element in enumerable)
                {
                    array.Add(ValueAsBsonValue(element));
                }
            }

            return(array);
        }
 private static void AddClause(BsonArray clauses, BsonDocument filter)
 {
     if (filter.ElementCount == 1 && filter.GetElement(0).Name == "$or")
     {
         // flatten nested $or
         clauses.AddRange((BsonArray)filter[0]);
     }
     else
     {
         // we could shortcut the user's query if there are no elements in the filter, but
         // I'd rather be literal and let them discover the problem on their own.
         clauses.Add(filter);
     }
 }
        private void BuildStainResult(BsonDocument bsonSurgicalSpecimen, string surgicalSpecimenId)
        {
            MongoCollection stainResultTable = this.m_SQLTransferDatabase.GetCollection <BsonDocument>("tblStainResult");
            MongoCursor     mongoCursor      = stainResultTable.FindAs <BsonDocument>(Query.EQ("SurgicalSpecimenId", surgicalSpecimenId));

            BsonArray bsonArray = new BsonArray();

            foreach (BsonDocument bsonStainResult in mongoCursor)
            {
                bsonArray.Add(bsonStainResult);
            }

            bsonSurgicalSpecimen.Add("StainResultItemCollection", bsonArray);
        }
Пример #36
0
        public BsonDocument CriarDocumentoMongo()
        {
            //Criar um objeto json com BSon
            var doc = new BsonDocument {
                { "Titulo", "Guerra dos Tronos" }
            };

            //O BSon é dinamico e podemos adicionar novos atributos
            doc.Add("Autor", "George");
            doc.Add("Ano", 1999);
            doc.Add("Paginas", 856);

            //Criando uma lista de subDocumentos
            var assuntoArray = new BsonArray();

            assuntoArray.Add("Fantasia");
            assuntoArray.Add("Ação");

            //Adicionando uma lista de subdocumento a um documento
            doc.Add("Assunto", assuntoArray);

            return(doc);
        }
        private void BuildICD9BillingCode(BsonDocument bsonSurgicalSpecimen, string surgicalSpecimenId)
        {
            MongoCollection icd9BillingCodeTable = this.m_SQLTransferDatabase.GetCollection <BsonDocument>("tblICD9BillingCode");
            MongoCursor     mongoCursor          = icd9BillingCodeTable.FindAs <BsonDocument>(Query.EQ("SurgicalSpecimenId", surgicalSpecimenId));

            BsonArray bsonArray = new BsonArray();

            foreach (BsonDocument bsonICD9BillingCode in mongoCursor)
            {
                bsonArray.Add(bsonICD9BillingCode);
            }

            bsonSurgicalSpecimen.Add("ICD9BillingCodeCollection", bsonArray);
        }
        private void BuildSurgicalSpecimenAudit(BsonDocument bsonSurgicalAudit, string surgicalAuditId)
        {
            MongoCollection surgicalSpecimenAuditTable = this.m_SQLTransferDatabase.GetCollection <BsonDocument>("tblSurgicalSpecimenAudit");
            MongoCursor     mongoCursor = surgicalSpecimenAuditTable.FindAs <BsonDocument>(Query.EQ("SurgicalAuditId", surgicalAuditId));

            BsonArray bsonArray = new BsonArray();

            foreach (BsonDocument bsonSurgicalSpecimenAudit in mongoCursor)
            {
                bsonArray.Add(bsonSurgicalSpecimenAudit);
            }

            bsonSurgicalAudit.Add("SurgicalSpecimenAuditCollection", bsonArray);
        }
Пример #39
0
        /// <summary>
        /// Combines subqueries with an or operator.
        /// </summary>
        /// <param name="queries">The subqueries.</param>
        /// <returns>The builder (so method calls can be chained).</returns>
        public static QueryComplete Or(
            params QueryComplete[] queries
            )
        {
            var clauses = new BsonArray();

            foreach (var query in queries)
            {
                clauses.Add(query.ToBsonDocument());
            }
            var document = new BsonDocument("$or", clauses);

            return(new QueryComplete(document));
        }
        public void Serialize(IEnumerable <Claim> claims, BsonDocument doc)
        {
            doc["_version"] = 1;
            var array = new BsonArray();

            foreach (Claim claim in claims)
            {
                var c = new BsonDocument();
                c["type"]  = claim.Type;
                c["value"] = claim.Value;
                array.Add(c);
            }
            doc["claims"] = array;
        }
Пример #41
0
        protected IMongoQuery WrapQuery(IMongoQuery query, BsonDocument options, ReadPreference readPreference, bool forShardRouter)
        {
            BsonDocument formattedReadPreference = null;

            if (forShardRouter && readPreference != null && readPreference.ReadPreferenceMode != ReadPreferenceMode.Primary)
            {
                BsonArray tagSetsArray = null;
                if (readPreference.TagSets != null)
                {
                    tagSetsArray = new BsonArray();
                    foreach (var tagSet in readPreference.TagSets)
                    {
                        var tagSetDocument = new BsonDocument();
                        foreach (var tag in tagSet)
                        {
                            tagSetDocument.Add(tag.Name, tag.Value);
                        }
                        tagSetsArray.Add(tagSetDocument);
                    }
                }

                if (tagSetsArray != null || readPreference.ReadPreferenceMode != ReadPreferenceMode.SecondaryPreferred)
                {
                    formattedReadPreference = new BsonDocument
                    {
                        { "mode", MongoUtils.ToCamelCase(readPreference.ReadPreferenceMode.ToString()) },
                        { "tags", tagSetsArray, tagSetsArray != null } // optional
                    };
                }
            }

            if (options == null && formattedReadPreference == null)
            {
                return(query);
            }
            else
            {
                var queryDocument = (query == null) ? (BsonValue) new BsonDocument() : BsonDocumentWrapper.Create(query);
                var wrappedQuery  = new QueryDocument
                {
                    { "$query", queryDocument },
                    { "$readPreference", formattedReadPreference, formattedReadPreference != null }, // only if sending query to a mongos
                };
                if (options != null)
                {
                    wrappedQuery.Merge(options);
                }
                return(wrappedQuery);
            }
        }
Пример #42
0
        public void SaveClient(Client client, TObjectState state)
        {
            IMongoDatabase database = GetDatabase(DATABASE_NAME, true);
            IMongoCollection <BsonDocument> collection = database.GetCollection <BsonDocument>("Client");

            EnsureIndexExists <BsonDocument>(collection, "OrganisationID");
            FilterDefinition <BsonDocument> query = Builders <BsonDocument> .Filter.Eq("_id", client.ClientID.ToByteArray());

            if ((state == TObjectState.Add) || (state == TObjectState.Update))
            {
                BsonDocument doc = new BsonDocument();
                BsonHelper.SetValue(doc, "_id", client.ClientID);
                BsonHelper.SetValue(doc, "Name", client.Name);
                BsonHelper.SetValue(doc, "OrganisationID", client.OrganisationID);
                BsonHelper.SetValue(doc, "Lifetime", client.Lifetime);
                BsonHelper.SetValue(doc, "Version", client.Version.ToString());
                BsonHelper.SetValue(doc, "BindingMode", (int)client.BindingMode);
                BsonHelper.SetValue(doc, "SMSNumber", client.SMSNumber);
                BsonHelper.SetValue(doc, "Server", client.Server);
                BsonHelper.SetValue(doc, "LastActivityTime", client.LastActivityTime);
                if (client.SupportedTypes.Count > 0)
                {
                    BsonArray array = new BsonArray();
                    foreach (ObjectType supportedType in client.SupportedTypes)
                    {
                        BsonDocument supportedTypeDoc = new BsonDocument();
                        BsonHelper.SetValue(supportedTypeDoc, "_id", supportedType.ObjectTypeID);
                        BsonHelper.SetValue(supportedTypeDoc, "Path", supportedType.Path);
                        if (supportedType.Instances.Count > 0)
                        {
                            BsonArray instances = new BsonArray();
                            foreach (int instance in supportedType.Instances)
                            {
                                instances.Add(instance);
                            }
                            supportedTypeDoc.Add("Instances", instances);
                        }
                        array.Add(supportedTypeDoc);
                    }
                    doc.Add("SupportedTypes", array);
                }
                UpdateOptions options = new UpdateOptions();
                options.IsUpsert = true;
                collection.ReplaceOne(query, doc, options);
            }
            else if (state == TObjectState.Delete)
            {
                collection.DeleteOne(query);
            }
        }
Пример #43
0
        /// <summary>
        /// 实体对象转BsonDocument
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        protected override BsonDocument EntityToDoc(WaterExpense entity)
        {
            BsonDocument doc = new BsonDocument
            {
                { "accountId", entity.AccountId },
                { "feeType", entity.FeeType },
                { "belongDate", entity.BelongDate },
                { "ticketDate", entity.TicketDate },
                { "totalQuantity", entity.TotalQuantity },
                { "totalAmount", entity.TotalAmount },
                { "createBy", new BsonDocument {
                      { "userId", entity.CreateBy.UserId },
                      { "name", entity.CreateBy.Name },
                      { "time", entity.CreateBy.Time }
                  } },
                { "updateBy", new BsonDocument {
                      { "userId", entity.UpdateBy.UserId },
                      { "name", entity.UpdateBy.Name },
                      { "time", entity.UpdateBy.Time }
                  } },
                { "remark", entity.Remark },
                { "status", entity.Status }
            };

            if (entity.Records != null && entity.Records.Count > 0)
            {
                BsonArray array = new BsonArray();
                foreach (var item in entity.Records)
                {
                    BsonDocument record = new BsonDocument
                    {
                        { "meterNumber", item.MeterNumber },
                        { "meterName", item.MeterName },
                        { "feeType", item.FeeType },
                        { "previous", item.Previous },
                        { "current", item.Current },
                        { "quantity", item.Quantity },
                        { "unitPrice", item.UnitPrice },
                        { "amount", item.Amount },
                        { "remark", item.Remark }
                    };

                    array.Add(record);
                }

                doc.Add("records", array);
            }

            return(doc);
        }
Пример #44
0
        /// <summary>
        /// create file
        /// </summary>
        /// <param name="filepath"></param>
        /// <param name="buffer"></param>
        /// <param name="ownerId"></param>
        /// <param name="roles"></param>
        /// <returns></returns>
        public IStorageFile Create(string filepath, byte[] buffer, DateTime?modificationDate, Guid?ownerId = null, List <Guid> roles = null)
        {
            if (string.IsNullOrWhiteSpace(filepath))
            {
                throw new ArgumentException("filepath cannot be null or empty");
            }

            //all filepaths are lowercase and all starts with folder separator
            filepath = filepath.ToLowerInvariant();
            if (!filepath.StartsWith(FOLDER_SEPARATOR))
            {
                filepath = FOLDER_SEPARATOR + filepath;
            }

            if (Find(filepath) != null)
            {
                throw new ArgumentException(filepath + ": file already exists");
            }

            BsonDocument metadata = new BsonDocument();

            metadata.Add(new BsonElement("owner_id", ownerId));
            BsonArray rolesArr = new BsonArray();

            if (roles != null && roles.Count > 0)
            {
                foreach (var roleId in roles)
                {
                    rolesArr.Add(BsonValue.Create(roleId));
                }
            }
            metadata.Add(new BsonElement("available_to_roles", rolesArr));

            if (modificationDate == null)
            {
                modificationDate = DateTime.UtcNow;
            }

            using (var stream = gfs.OpenWrite(filepath, new MongoGridFSCreateOptions {
                UploadDate = modificationDate.Value, Metadata = metadata
            }))
            {
                if (buffer != null && buffer.Length > 0)
                {
                    stream.Write(buffer, 0, buffer.Length);
                }
            }
            return(Find(filepath));
        }
Пример #45
0
    public static BsonArray get_candle(string website, DateTime start_time, DateTime end_time, int seconds)
    {
        BsonArray list         = new BsonArray();
        UInt64    u_start_time = UnixTime.get_unix_time_from_local_long(start_time);
        UInt64    u_end_time   = UnixTime.get_unix_time_from_local_long(end_time);

        while (u_start_time < u_end_time)
        {
            DateTime     dt  = UnixTime.get_local_time_long(u_start_time);
            BsonDocument doc = get_region("", dt, seconds);
            list.Add(doc);
            u_start_time = UnixTime.get_unix_time_from_local_long(dt.AddSeconds(seconds));
        }
        return(list);
    }
        public void TestCircularBsonArray()
        {
            // note: setting a breakpoint in this method will crash the debugger if the locals window is open
            // because it tries to display the value of array (presumably it's getting an internal stack overflow)
            var array = new BsonArray();

            array.Add(array);
            var c1 = new C {
                X = 1, BsonArray = array
            };

            Assert.Throws <BsonSerializationException>(() => c1.ToBson());
            Assert.Throws <BsonSerializationException>(() => c1.ToBsonDocument());
            Assert.Throws <BsonSerializationException>(() => c1.ToJson());
        }
Пример #47
0
        public void InserirItem()
        {
            string    palavra = "yo";
            BsonArray bLista  = new BsonArray();

            bLista.Add(new BsonDocument("campo", "valor"));
            bLista.Add(new BsonDocument("campo2", "valor2"));

            var document = new BsonDocument
            {
                { "name", "MongoDB" },
                { "type", bLista },
                { "campo", palavra },
                { "tipo", 45.6 },
                { "count", 1 },
                { "info", new BsonDocument
                  {
                      { "x", 203 },
                      { "y", 102 }
                  } }
            };

            collection.InsertOne(document);
        }// fim inserir
Пример #48
0
        public BsonArray get_array_from_str(string str)
        {
            str = str.Replace("\r\n", "");
            BsonArray array = new BsonArray();

            if (!string.IsNullOrEmpty(str))
            {
                string[] list = str.Split('$');
                foreach (string item in list)
                {
                    array.Add(item);
                }
            }
            return(array);
        }
Пример #49
0
        public virtual List <T> GetById(List <ObjectId> Id)
        {
            var collection = GetCollection <T>();
            var IdArray    = new BsonArray();

            foreach (ObjectId singleId in Id)
            {
                IdArray.Add(BsonValue.Create(singleId));
            }
            var filter = Builders <T> .Filter.In <BsonValue>("_id", IdArray);

            var entity = collection.Find <T>(filter);

            return(entity.ToList());
        }
Пример #50
0
        private void AddComposite(Dictionary <string, double> stats, string itemClass, BsonArray Composite)
        {
            Console.WriteLine("Add Composite");
            BsonDocument compositeStat = new BsonDocument();

            SetStats(compositeStat, stats);
            compositeStat.Add("ItemClass", itemClass);
            string icon = SQLiteConnect.GetIcon(itemClass);

            compositeStat.Add("Icon", icon);
            string statStr = GetStatString(stats);

            compositeStat.Add("StatStr", statStr);
            Composite.Add(compositeStat);
        }
        private BsonArray SerializeTransitionEvents(List <TransitionEvent> events)
        {
            BsonArray array = new BsonArray();

            foreach (var e in events)
            {
                array.Add(new BsonDocument()
                {
                    { "TypeId", e.TypeId },
                    { "Data", _dataSerializer.Serialize(e.Data) }
                });
            }

            return(array);
        }
Пример #52
0
        /// <summary>
        /// Hàm dùng cập nhật 1 số trường trong database theo điều kiện filter
        /// </summary>
        /// <param name="bsArrFilter"> BsonArray Mảng điều kiện filter</param>
        /// <param name="bsUpdate"> BsonDocument các trường cần cập nhật</param>
        /// <param name="clientSession"></param>
        /// <returns></returns>
        public async Task <UpdateResult> UpdateCustomizeFieldAsync(BsonArray bsArrFilter, BsonDocument bsUpdate, IClientSessionHandle clientSession = null)
        {
            if (bsArrFilter == null || bsUpdate == null)
            {
                return(null);
            }
            FilterDefinition <T> filter = new BsonDocument("$and", bsArrFilter.Add(new BsonDocument("IsActive", true)));
            UpdateDefinition <T> update = new BsonDocument("$set", bsUpdate.Add("UpdatedOn", DateTime.Now));

            if (clientSession == null)
            {
                return(await _collection.UpdateManyAsync(filter, update).ConfigureAwait(false));
            }
            return(await _collection.UpdateManyAsync(clientSession, filter, update).ConfigureAwait(false));
        }
Пример #53
0
        private BsonValue BuildCollection(Node node)
        {
            if (!_jsonSingleChildAsCollection && node.Children.Count == 1)
            {
                return(BuildDocument(node.Children[0]));
            }
            BsonArray list = new BsonArray();

            foreach (var row in node.Children)
            {
                BsonDocument doc = BuildDocument(row);
                list.Add(doc);
            }
            return(list);
        }
Пример #54
0
 private void SetDocumentAsArrayItem(BsonDocument bsonDocument, string collectionName, ObjectId objectId, string fieldName)
 {
     if (objectId != ObjectId.Empty)
     {
         logger.LogTrace("SetDocumentAsArrayItem not empty", fieldName, objectId);
         var IdsArray = new BsonArray();
         IdsArray.Add(objectId);
         bsonDocument.SetExtended(collectionName, fieldName, IdsArray);
     }
     else
     {
         logger.LogTrace("SetDocumentAsArrayItem empty", fieldName, objectId);
         bsonDocument.RemoveExtended(collectionName, fieldName);
     }
 }
Пример #55
0
        private void BuildSpecimenOrder(BsonDocument bsonParent)
        {
            MongoCollection specimenOrderTable = this.m_SQLTransferDatabase.GetCollection <BsonDocument>("tblSpecimenOrder");
            MongoCursor     mongoCursor        = specimenOrderTable.FindAs <BsonDocument>(Query.EQ("MasterAccessionNo", bsonParent.GetValue("MasterAccessionNo")));
            BsonArray       array = new BsonArray();

            foreach (BsonDocument bsonChild in mongoCursor)
            {
                bsonChild.Add("AssemblyQualifiedName", typeof(YellowstonePathology.Business.Specimen.Model.SpecimenOrder).AssemblyQualifiedName);
                array.Add(bsonChild);
                this.BuildAliquotOrder(bsonChild);
            }

            bsonParent.Add("SpecimenOrderCollection", array);
        }
        private IMongoQuery WrapQuery()
        {
            BsonDocument formattedReadPreference = null;

            if (_serverInstance.InstanceType == MongoServerInstanceType.ShardRouter &&
                _readPreference.ReadPreferenceMode != ReadPreferenceMode.Primary)
            {
                BsonArray tagSetsArray = null;
                if (_readPreference.TagSets != null)
                {
                    tagSetsArray = new BsonArray();
                    foreach (var tagSet in _readPreference.TagSets)
                    {
                        var tagSetDocument = new BsonDocument();
                        foreach (var tag in tagSet)
                        {
                            tagSetDocument.Add(tag.Name, tag.Value);
                        }
                        tagSetsArray.Add(tagSetDocument);
                    }
                }

                if (tagSetsArray != null || _readPreference.ReadPreferenceMode != ReadPreferenceMode.SecondaryPreferred)
                {
                    formattedReadPreference = new BsonDocument
                    {
                        { "mode", MongoUtils.ToCamelCase(_readPreference.ReadPreferenceMode.ToString()) },
                        { "tags", tagSetsArray, tagSetsArray != null } // optional
                    };
                }
            }

            if (_cursor.Options == null && formattedReadPreference == null)
            {
                return(_cursor.Query);
            }
            else
            {
                var query        = (_cursor.Query == null) ? (BsonValue) new BsonDocument() : BsonDocumentWrapper.Create(_cursor.Query);
                var wrappedQuery = new QueryDocument
                {
                    { "$query", query },
                    { "$readPreference", formattedReadPreference, formattedReadPreference != null }, // only if sending query to a mongos
                };
                wrappedQuery.Merge(_cursor.Options);
                return(wrappedQuery);
            }
        }
Пример #57
0
        public BsonDocument MapViewModelToDocument(Dnd35CharacterViewModel character)
        {
            var bsonCharacter = new BsonDocument
            {
                { characterName, character.CharacterName },
                { isShared, character.IsShared },
                { system, character.System.ToString() }
            };

            var classesArray = new BsonArray();

            foreach (var classLevel in character.Classes)
            {
                classesArray.Add(new BsonDocument
                {
                    { className, classLevel.ClassName },
                    { level, classLevel.Level }
                });
            }
            bsonCharacter.Add(new BsonElement(classes, classesArray));

            MapValue(character.Ecl, bsonCharacter, ecl);
            MapValue(character.Race, bsonCharacter, race);
            MapValue(character.Alignment, bsonCharacter, alignment);
            MapValue(character.Diety, bsonCharacter, diety);
            MapValue(character.Size, bsonCharacter, size);
            MapValue(character.Age, bsonCharacter, age);
            MapValue(character.Gender, bsonCharacter, gender);
            MapValue(character.Height, bsonCharacter, height);
            MapValue(character.Weight, bsonCharacter, weight);
            MapValue(character.Eyes, bsonCharacter, eyes);
            MapValue(character.Hair, bsonCharacter, hair);
            MapValue(character.Skin, bsonCharacter, skin);
            MapValue(character.Strength, bsonCharacter, strength);
            MapValue(character.Dexterity, bsonCharacter, dexterity);
            MapValue(character.Constitution, bsonCharacter, constitution);
            MapValue(character.Intelligence, bsonCharacter, intelligence);
            MapValue(character.Wisdom, bsonCharacter, wisdom);
            MapValue(character.Charisma, bsonCharacter, charisma);

            if (character.CharacterID != null)
            {
                var objectId = ObjectId.Parse(character.CharacterID);
                bsonCharacter.Add(new BsonElement("_id", objectId));
            }

            return(bsonCharacter);
        }
Пример #58
0
        //Adds a dislike to an existing post document
        public static void AddDislike(BsonDocument document, string id, string collectionName)
        {
            bool userDislike = false;
            var  collection  = ConnectToDB("Acebook", collectionName);

            BsonArray like    = (BsonArray)document.GetValue("Like");
            BsonArray dislike = (BsonArray)document.GetValue("Dislike");
            var       filter  = Builders <BsonDocument> .Filter.Eq("_id", document.GetValue("_id"));

            var newDocument = new BsonDocument {
                { "user", id }
            };

            foreach (var i in dislike)
            {
                if (i == newDocument)
                {
                    userDislike = true;
                }
            }

            if (userDislike != true)
            {
                dislike.Add(newDocument);

                Tuple <BsonValue, int> item = SearchThroughLike(like, id);

                BsonValue userId = item.Item1;
                int       index  = item.Item2;

                if (userId != null)
                {
                    RemoveLike(like, collection, index, filter);
                }

                var update = Builders <BsonDocument> .Update.Set("Dislike", dislike);

                collection.UpdateOne(filter, update);
            }
            else
            {
                Tuple <BsonValue, int> item = SearchThroughDislike(dislike, id);

                int index = item.Item2;

                RemoveDislike(dislike, collection, index, filter);
            }
        }
Пример #59
0
        public static void ReadMongoGis(int total)
        {
            MongoClient   client     = new MongoClient(Utils.MongoDbConnection); // connect to localhost
            MongoServer   server     = client.GetServer();
            MongoDatabase test       = server.GetDatabase("mydb");
            var           collection = test.GetCollection("address");

            Random ran = new Random(DateTime.Now.Millisecond);

            Console.WriteLine();

            for (int i = 0; i < total; i++)
            {
                Console.Write("\r{0:N2}%   ", (i + 1) / Convert.ToDouble(total) * 100);

                var poly   = GetRandomPolygon(ran);
                var points = new BsonArray();

                foreach (var item in poly.Coordinates)
                {
                    points.Add(new BsonArray(new[] { item.X, item.Y }));
                }

                BsonDocument polygon = new BsonDocument
                {
                    { "type", "Polygon" },
                    { "coordinates", new BsonArray()
                      {
                          { points }
                      } },
                };

                BsonDocument gemotry = new BsonDocument {
                    { "$geometry", polygon }
                };

                BsonDocument geoWithin = new BsonDocument {
                    { "$geoWithin", gemotry }
                };

                var r = collection.FindAs <AddressMongo>(new QueryDocument()
                {
                    { "Coordinates", geoWithin }
                })
                        .Count();
            }
            Console.WriteLine();
        }
        public void addAlert2UserTest()
        {
            WellCastServerEngine mm = new WellCastServerEngine();

            User user = new User();

            user.ID = "542c53a302d6a4910db3fdd7";
            BsonArray forecastIDs = new BsonArray();

            string id1 = Guid.NewGuid().ToString();
            string id2 = Guid.NewGuid().ToString();

            forecastIDs.Add(id1);
            forecastIDs.Add(id2);

            MongoDatabase mdb;
            //Get a Reference to the Client Object
            var mongoClient = new MongoClient("mongodb://*****:*****@ds041140.mongolab.com:41140/wellcast");
            var mongoServer = mongoClient.GetServer();
            mdb = mongoServer.GetDatabase("wellcast");

            var queryDoc2 = new QueryDocument { { "state", "unsent" } };
            // Query the db for a document with the required ID
            var alertsUnSent0 = mdb.GetCollection("alerts").Find(queryDoc2);
            long alerts0 = alertsUnSent0.Count();

            mm.addAlert2User(user, forecastIDs);

            var alertsUnSent1 = mdb.GetCollection("alerts").Find(queryDoc2);
            long alerts1 = alertsUnSent1.Count();

            Assert.AreEqual(alerts1, alerts0 + 1);
        }