Beispiel #1
0
        public void TestEvalNoArgs()
        {
            var code   = "function() { return 1; }";
            var result = database.Eval(code);

            Assert.AreEqual(1, result.ToInt32());
        }
        public void TestAmbiguousEvalArguments()
        {
            var code           = "function (x, y) { return y; }";
            var objectArrayArg = new object[] { 1, 2, 3 };
            var boolArg        = true;
            var result         = database.Eval(code, objectArrayArg, boolArg); // before change boolArg was being misinterpreted as nolock argument

            Assert.AreEqual(BsonType.Boolean, result.BsonType);
            Assert.AreEqual(true, result.AsBoolean);
        }
        public void TestAmbiguousEvalArguments()
        {
            if (!DriverTestConfiguration.Client.Settings.Credentials.Any())
            {
                var code           = "function (x, y) { return y; }";
                var objectArrayArg = new object[] { 1, 2, 3 };
                var boolArg        = true;
#pragma warning disable 618
                var result = _database.Eval(code, objectArrayArg, boolArg); // before change boolArg was being misinterpreted as nolock argument
#pragma warning restore
                Assert.AreEqual(BsonType.Boolean, result.BsonType);
                Assert.AreEqual(true, result.AsBoolean);
            }
        }
Beispiel #4
0
        /// <summary>
        /// GetRole
        /// </summary>
        /// <param name="mongoDb"></param>
        /// <param name="RoleName"></param>
        /// <returns></returns>
        public static BsonDocument GetRole(MongoDatabase mongoDb, String RoleName)
        {
            EvalArgs doc = new EvalArgs();

            doc.Code = "db.getRole('" + RoleName + "',{showPrivileges:true})";
            return(mongoDb.Eval(doc).AsBsonDocument);
        }
Beispiel #5
0
 public static DateTime GetServerTimeUtc(this MongoDatabase database)
 {
     return(database.Eval(new EvalArgs
     {
         Code = new BsonJavaScript("new Date()")
     }).ToUniversalTime());
 }
Beispiel #6
0
        /// <summary>
        ///     GetRole
        /// </summary>
        /// <param name="mongoDb"></param>
        /// <param name="roleName"></param>
        /// <returns></returns>
        public static BsonDocument GetRole(MongoDatabase mongoDb, string roleName)
        {
            var doc = new EvalArgs()
            {
                Code = "db.getRole('" + roleName + "',{showPrivileges:true})"
            };

            return(mongoDb.Eval(doc).AsBsonDocument);
        }
Beispiel #7
0
        public void TestEvalNoArgs()
        {
            var code = "function() { return 1; }";

#pragma warning disable 618
            var result = _database.Eval(code);
#pragma warning restore
            Assert.AreEqual(1, result.ToInt32());
        }
 public static void Eval(MongoDatabase database, string fileName)
 {
     using (var stream = new FileStream(fileName, FileMode.Open))
     {
         using (var reader = new StreamReader(stream))
         {
             var javaScript = new BsonJavaScript(reader.ReadToEnd());
             database.Eval(javaScript);
         }
     }
 }
 public static void Eval(MongoDatabase database, string fileName)
 {
     using (var stream = new FileStream(fileName, FileMode.Open))
     {
         using (var reader = new StreamReader(stream))
         {
             var javaScript = new BsonJavaScript(reader.ReadToEnd());
             database.Eval(javaScript);
         }
     }
 }
Beispiel #10
0
        /// <summary>
        ///     初始化副本(Mongo Shell)
        /// </summary>
        /// <returns></returns>
        public static CommandResult InitReplicaSet()
        {
            //使用local数据库发送 rs.initiate() 指令
            MongoDatabase mongoDb = RuntimeMongoDbContext.GetCurrentClient().GetServer().GetDatabase("local");
            var           args    = new EvalArgs {
                Code = "rs.initiate()"
            };
            var result = mongoDb.Eval(args);

            return(new CommandResult(result.AsBsonDocument));
        }
Beispiel #11
0
        public void TestEvalNoArgs()
        {
#pragma warning disable 618
            if (!DriverTestConfiguration.Client.Settings.Credentials.Any())
            {
                var code   = "function() { return 1; }";
                var result = _database.Eval(code);
                Assert.Equal(1, result.ToInt32());
            }
#pragma warning restore
        }
        public void TestEvalNoArgs()
        {
            if (!Configuration.TestClient.Settings.Credentials.Any())
            {
                var code = "function() { return 1; }";
#pragma warning disable 618
                var result = _database.Eval(code);
#pragma warning restore
                Assert.AreEqual(1, result.ToInt32());
            }
        }
Beispiel #13
0
        /// <summary>
        ///     eval Javascript
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmdEval_Click(object sender, EventArgs e)
        {
            MongoDatabase mongoDB = SystemManager.GetCurrentDataBase();
            var           js      = new BsonJavaScript(ctlEval.Context);
            var           Params  = new List <Object>();

            if (txtParm.Text != String.Empty)
            {
                foreach (String parm in txtParm.Text.Split(",".ToCharArray()))
                {
                    if (parm.StartsWith("'") & parm.EndsWith("'"))
                    {
                        Params.Add(parm.Trim("'".ToCharArray()));
                    }
                    else
                    {
                        try
                        {
                            Boolean isNuberic = true;
                            for (int i = 0; i < parm.Length; i++)
                            {
                                if (!char.IsNumber(parm, i))
                                {
                                    isNuberic = false;
                                }
                            }
                            if (isNuberic)
                            {
                                Params.Add(Convert.ToInt16(parm));
                            }
                        }
                        catch (Exception ex)
                        {
                            SystemManager.ExceptionDeal(ex, "Exception", "Parameter Exception");
                        }
                    }
                }
            }
            try
            {
                BsonValue result = mongoDB.Eval(js, Params.ToArray());
                MyMessageBox.ShowMessage("Result", "Result", result.ToJson(SystemManager.JsonWriterSettings), true);
            }
            catch (Exception ex)
            {
                SystemManager.ExceptionDeal(ex, "Exception", "Result");
            }
        }
        public void TestEvalNoArgsNoLock()
        {
            if (!DriverTestConfiguration.Client.Settings.Credentials.Any())
            {
                var code = "function() { return 1; }";
#pragma warning disable 618
                var result = _adminDatabase.Eval(EvalFlags.NoLock, code);
#pragma warning restore
                Assert.Equal(1, result.ToInt32());
            }
        }
Beispiel #15
0
        /// <summary>
        /// 执行原生查询
        /// </summary>
        /// <param name="queryStr"></param>
        /// <returns></returns>
        public BsonValue EvalNativeQuery(string queryStr)
        {
            BsonValue resultVal = null;

            BsonJavaScript queryScript = new BsonJavaScript(queryStr);

            try
            {
                resultVal = _mongoDatabase.Eval(queryScript);
            }
            catch
            {
                resultVal = null;
            }

            return(resultVal);
        }
        public void TestEvalNoArgsNoLock()
        {
            RequireServer.Check().Supports(Feature.Eval);
#pragma warning disable 618
            if (!DriverTestConfiguration.Client.Settings.Credentials.Any())
            {
                var code   = "function() { return 1; }";
                var result = _adminDatabase.Eval(EvalFlags.NoLock, code);
                Assert.Equal(1, result.ToInt32());
            }
#pragma warning restore
        }
Beispiel #17
0
        /// <summary>
        ///     添加一个用户自定义角色
        /// </summary>
        public static BsonValue AddRole(MongoDatabase mongoDb, Role role)
        {
            var roleCommand = string.Empty;
            var doc         = new EvalArgs();

            roleCommand  = "db.createRole(" + Environment.NewLine;
            roleCommand += "{" + Environment.NewLine;
            roleCommand += "    role: '" + role.Rolename + "'," + Environment.NewLine;
            //Roles
            roleCommand += "    roles:" + Environment.NewLine;
            roleCommand += "    [";
            for (var i = 0; i < role.Roles.Length; i++)
            {
                var singleroles = role.Roles[i];
                roleCommand += "{ role: '" + singleroles.MRole + "', db: '" + singleroles.Db + "' }" +
                               (i == role.Roles.Length - 1 ? "" : ",") + Environment.NewLine;
            }
            roleCommand += "     ],";
            //privileges
            roleCommand += "    privileges:" + Environment.NewLine;
            roleCommand += "    [";
            for (var i = 0; i < role.Privileges.Length; i++)
            {
                var singleprivileges = role.Privileges[i];
                roleCommand += "{" + singleprivileges.Resource.GetJsCode() + "," +
                               MongoDbAction.GetActionListJs(singleprivileges.Actions) + "}" +
                               (i == role.Privileges.Length - 1 ? "" : ",") + Environment.NewLine;
            }
            roleCommand += "     ],";
            //
            roleCommand += "}" + Environment.NewLine;
            roleCommand += ")";
            doc.Code     = roleCommand;
            BsonValue result;

            try
            {
                result = mongoDb.Eval(doc);
            }
            catch (MongoCommandException ex)
            {
                result = ex.Result;
            }
            return(result);
        }
Beispiel #18
0
        public static void Drop(MongoDatabase eventStoreDb)
        {
            var script = new BsonJavaScript(
                @"db.Snapshots.remove({});
var cursor = db.Streams.find({'SnapshotRevision' : { $gt : 0}}).sort({_id:1});
var doc = null;

do{
    doc = cursor.hasNext() ? cursor.next() : null;
    if(doc){
        doc.Unsnapshotted = doc.HeadRevision;
        doc.SnapshotRevision = 0;
        db.Streams.save(doc);
    }
}while(doc != null);");

            eventStoreDb.Eval(script);
        }
Beispiel #19
0
        /// <summary>
        /// 添加一个用户自定义角色
        /// </summary>
        public static BsonValue AddRole(MongoDatabase mongoDb, Role role)
        {
            String   RoleCommand = String.Empty;
            EvalArgs doc         = new EvalArgs();

            RoleCommand  = "db.createRole(" + System.Environment.NewLine;
            RoleCommand += "{" + System.Environment.NewLine;
            RoleCommand += "    role: '" + role.rolename + "'," + System.Environment.NewLine;
            //Roles
            RoleCommand += "    roles:" + System.Environment.NewLine;
            RoleCommand += "    [";
            for (int i = 0; i < role.roles.Length; i++)
            {
                var singleroles = role.roles[i];
                RoleCommand += "{ role: '" + singleroles.mRole + "', db: '" + singleroles.db + "' }" +
                               ((i == role.roles.Length - 1) ? "" : ",") + System.Environment.NewLine;
            }
            RoleCommand += "     ],";
            //privileges
            RoleCommand += "    privileges:" + System.Environment.NewLine;
            RoleCommand += "    [";
            for (int i = 0; i < role.privileges.Length; i++)
            {
                var singleprivileges = role.privileges[i];
                RoleCommand += "{" + singleprivileges.resource.GetJsCode() + "," + Action.GetActionListJs(singleprivileges.actions) + "}" +
                               ((i == role.privileges.Length - 1) ? "" : ",") + System.Environment.NewLine;
            }
            RoleCommand += "     ],";
            //
            RoleCommand += "}" + System.Environment.NewLine;
            RoleCommand += ")";
            doc.Code     = RoleCommand;
            BsonValue result;

            try
            {
                result = mongoDb.Eval(doc);
            }
            catch (MongoCommandException ex)
            {
                result = ex.CommandResult.Response;
            }
            return(result);
        }
Beispiel #20
0
 /// <summary>
 ///     添加一个用户自定义角色
 /// </summary>
 public static BsonValue AddRole(MongoDatabase mongoDb, Role role)
 {
     var roleCommand = string.Empty;
     var doc = new EvalArgs();
     roleCommand = "db.createRole(" + Environment.NewLine;
     roleCommand += "{" + Environment.NewLine;
     roleCommand += "    role: '" + role.Rolename + "'," + Environment.NewLine;
     //Roles
     roleCommand += "    roles:" + Environment.NewLine;
     roleCommand += "    [";
     for (var i = 0; i < role.Roles.Length; i++)
     {
         var singleroles = role.Roles[i];
         roleCommand += "{ role: '" + singleroles.MRole + "', db: '" + singleroles.Db + "' }" +
                        ((i == role.Roles.Length - 1) ? "" : ",") + Environment.NewLine;
     }
     roleCommand += "     ],";
     //privileges
     roleCommand += "    privileges:" + Environment.NewLine;
     roleCommand += "    [";
     for (var i = 0; i < role.Privileges.Length; i++)
     {
         var singleprivileges = role.Privileges[i];
         roleCommand += "{" + singleprivileges.Resource.GetJsCode() + "," +
                        MongoDbAction.GetActionListJs(singleprivileges.Actions) + "}" +
                        ((i == role.Privileges.Length - 1) ? "" : ",") + Environment.NewLine;
     }
     roleCommand += "     ],";
     //
     roleCommand += "}" + Environment.NewLine;
     roleCommand += ")";
     doc.Code = roleCommand;
     BsonValue result;
     try
     {
         result = mongoDb.Eval(doc);
     }
     catch (MongoCommandException ex)
     {
         result = ex.Result;
     }
     return result;
 }
        private void btnRun_Click(object sender, EventArgs e)
        {
            try
            {
                MongoClient   client  = new MongoClient(this.txtConnectionString.Text);
                MongoDatabase datbase = client.GetServer().GetDatabase(this.txtDatabase.Text);

                BsonValue value = datbase.Eval
                                  (
                    new MongoDB.Bson.BsonJavaScript(this.txtJavaScript.Text),
                    new Guid(this.txtApplicationId.Text),
                    DateTime.Parse(this.txtStartDate.Text),
                    DateTime.Parse(this.txtEndDate.Text),
                    DateTime.Parse(this.txtStartDateCompare.Text),
                    DateTime.Parse(this.txtEndDateCompare.Text)
                                  );

                this.txtResult.Text = value.ToJson();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + ex.StackTrace, "Error");
            }
        }
Beispiel #22
0
 /// <summary>
 /// 添加一个用户自定义角色
 /// </summary>
 public static BsonValue AddRole(MongoDatabase mongoDb, Role role)
 {
     String RoleCommand = String.Empty;
     EvalArgs doc = new EvalArgs();
     RoleCommand = "db.createRole(" + System.Environment.NewLine;
     RoleCommand += "{" + System.Environment.NewLine;
     RoleCommand += "    role: '" + role.rolename + "'," + System.Environment.NewLine;
     //Roles
     RoleCommand += "    roles:" + System.Environment.NewLine;
     RoleCommand += "    [";
     for (int i = 0; i < role.roles.Length; i++)
     {
         var singleroles = role.roles[i];
         RoleCommand += "{ role: '" + singleroles.mRole + "', db: '" + singleroles.db + "' }" +
                        ((i == role.roles.Length - 1) ? "" : ",") + System.Environment.NewLine;
     }
     RoleCommand += "     ],";
     //privileges
     RoleCommand += "    privileges:" + System.Environment.NewLine;
     RoleCommand += "    [";
     for (int i = 0; i < role.privileges.Length; i++)
     {
         var singleprivileges = role.privileges[i];
         RoleCommand += "{" + singleprivileges.resource.GetJsCode() + "," + Action.GetActionListJs(singleprivileges.actions) + "}" +
                        ((i == role.privileges.Length - 1) ? "" : ",") + System.Environment.NewLine;
     }
     RoleCommand += "     ],";
     //
     RoleCommand += "}" + System.Environment.NewLine;
     RoleCommand += ")";
     doc.Code = RoleCommand;
     BsonValue result;
     try
     {
         result = mongoDb.Eval(doc);
     }
     catch (MongoCommandException ex)
     {
         result = ex.CommandResult.Response;
     }
     return result;
 }
Beispiel #23
0
 /// <summary>
 /// Get current system date time
 /// </summary>
 /// <returns></returns>
 public DateTime GetSysDateTime()
 {
     return(_MongoDatabase.Eval("new Date()", null).AsDateTime);
 }
Beispiel #24
0
 public static BsonValue zEval(this MongoDatabase database, EvalArgs evalArgs)
 {
     MongoLog.CurrentMongoLog.LogEval(database, evalArgs);
     return(MongoLog.CurrentMongoLog.ExecuteAndLogResult(() => database.Eval(evalArgs)));
 }
Beispiel #25
0
 /// <summary>
 ///     GetRole
 /// </summary>
 /// <param name="mongoDb"></param>
 /// <param name="roleName"></param>
 /// <returns></returns>
 public static BsonDocument GetRole(MongoDatabase mongoDb, string roleName)
 {
     var doc = new EvalArgs();
     doc.Code = "db.getRole('" + roleName + "',{showPrivileges:true})";
     return mongoDb.Eval(doc).AsBsonDocument;
 }
 public BsonValue Eval(EvalFlags flags, BsonJavaScript code, object[] args)
 {
     return(_mongoDatabase.Eval(flags, code, args));
 }