Ejemplo n.º 1
0
        /// <summary>
        /// Creates a transaction record and attach to the transaction.
        /// </summary>
        /// <param name="action">The MongoDb operation, e.g. add.</param>
        /// <param name="collection">The MongoDb collection name.</param>
        /// <param name="idPropertyName">Name of the identifier property.</param>
        /// <param name="document">The data obejct in BsonDocument format.</param>
        /// <param name="uri">The URI.</param>
        public void Attach(MongoDbAction action, string collection, string idPropertyName, BsonDocument document, EtpUri?uri = null)
        {
            _log.Debug($"Attaching '{action}' transaction for MongoDb collection {collection} with URI: {uri}");

            var transaction = new DbTransaction
            {
                TransactionId   = Id,
                Collection      = collection,
                IdPropertyName  = idPropertyName,
                Action          = action,
                Status          = TransactionStatus.Created,
                CreatedDateTime = DateTime.UtcNow
            };

            if (uri.HasValue)
            {
                transaction.Uri = uri.Value;
            }

            if (document != null)
            {
                transaction.Value = document;
            }

            Transactions.Add(transaction);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAddPriviege_Click(object sender, EventArgs e)
        {
            var actionlst = new MongoDbAction.ActionType[chklstAction.CheckedItems.Count];

            for (var i = 0; i < chklstAction.CheckedItems.Count; i++)
            {
                actionlst[i] = (MongoDbAction.ActionType)Enum.Parse(typeof(MongoDbAction.ActionType),
                                                                    cmbActionGroup.Text.Replace(" ", string.Empty) + "_" + chklstAction.CheckedItems[i]);
            }
            _privilegeList.Add(new Role.Privilege
            {
                Resource = GetRoleResource(),
                Actions  = actionlst
            });

            var t = new ListViewItem();

            t.Text = GetRoleResource().GetJsCode();
            t.SubItems.Add(MongoDbAction.GetActionListJs(actionlst));
            lstPriviege.Items.Add(t);
        }
Ejemplo n.º 3
0
        /// <summary>
        ///     Datas the base handler.
        /// </summary>
        /// <param name="strNodeType">String node type.</param>
        /// <param name="e">E.</param>
        private void DataBaseHandler(string strNodeType, TreeNodeMouseClickEventArgs e)
        {
            RuntimeMongoDbContext.SelectObjectTag = e.Node.Tag.ToString();
            var roles = User.GetCurrentDbRoles(RuntimeMongoDbContext.CurrentMongoConnectionconfig.ConnectionName,
                                               RuntimeMongoDbContext.GetCurrentDataBaseName());

            if (GuiConfig.IsUseDefaultLanguage)
            {
                statusStripMain.Items[0].Text = "Selected DataBase:" + RuntimeMongoDbContext.SelectTagData;
            }
            else
            {
                statusStripMain.Items[0].Text =
                    GuiConfig.GetText(TextType.SelectedDataBase) + ":" +
                    RuntimeMongoDbContext.SelectTagData;
            }
            //系统库不允许修改
            if (!Operater.IsSystemDataBase(RuntimeMongoDbContext.GetCurrentDataBaseName()))
            {
                if (RuntimeMongoDbContext.CurrentMongoConnectionconfig.AuthMode)
                {
                    //根据Roles确定删除数据库/创建数据集等的权限
                    DelMongoDBToolStripMenuItem.Enabled = MongoDbAction.JudgeRightByBuildInRole(roles,
                                                                                                MongoDbAction.ActionType.ServerAdministrationActionsDropDatabase);
                    CreateMongoCollectionToolStripMenuItem.Enabled = MongoDbAction.JudgeRightByBuildInRole(roles,
                                                                                                           MongoDbAction.ActionType.DatabaseManagementActionsCreateCollection);
                    CopyDatabasetoolStripMenuItem.Enabled = true;
                    InitGFSToolStripMenuItem.Enabled      = MongoDbAction.JudgeRightByBuildInRole(roles,
                                                                                                  MongoDbAction.ActionType.MiscInitGfs);
                    AddUserToolStripMenuItem.Enabled = MongoDbAction.JudgeRightByBuildInRole(roles,
                                                                                             MongoDbAction.ActionType.DatabaseManagementActionsCreateUser);
                    //If a Slave server can repair database @ Master-Slave is not sure ??
                    RepairDBToolStripMenuItem.Enabled = MongoDbAction.JudgeRightByBuildInRole(roles,
                                                                                              MongoDbAction.ActionType.ServerAdministrationActionsRepairDatabase);
                }
                else
                {
                    DelMongoDBToolStripMenuItem.Enabled            = true;
                    CreateMongoCollectionToolStripMenuItem.Enabled = true;
                    CopyDatabasetoolStripMenuItem.Enabled          = true;
                    InitGFSToolStripMenuItem.Enabled  = true;
                    AddUserToolStripMenuItem.Enabled  = true;
                    RepairDBToolStripMenuItem.Enabled = true;
                }
                if (roles.Count == 0)
                {
                    EvalJSToolStripMenuItem.Enabled = true;
                }
                else
                {
                    EvalJSToolStripMenuItem.Enabled = MongoDbAction.JudgeRightByBuildInRole(roles,
                                                                                            MongoDbAction.ActionType.MiscEvalJs);
                }
            }
            //备份数据库
            DumpDatabaseToolStripMenuItem.Enabled    = true;
            ProfillingLevelToolStripMenuItem.Enabled = true;
            if (strNodeType == ConstMgr.SingleDatabaseTag)
            {
                DelMongoDBToolStripMenuItem.Enabled = false;
            }
            DBStatusToolStripMenuItem.Enabled = true;
            if (e.Button == MouseButtons.Right)
            {
                contextMenuStripMain = new ContextMenuStrip();
                if (SystemManager.MonoMode)
                {
                    //悲催MONO不支持
                    var delMongoDb = DelMongoDBToolStripMenuItem.Clone();
                    delMongoDb.Click += DelMongoDBToolStripMenuItem_Click;
                    contextMenuStripMain.Items.Add(delMongoDb);

                    var createMongoCollection = CreateMongoCollectionToolStripMenuItem.Clone();
                    createMongoCollection.Click += CreateMongoCollectionToolStripMenuItem_Click;
                    contextMenuStripMain.Items.Add(createMongoCollection);

                    var addUser = AddUserToolStripMenuItem.Clone();
                    addUser.Click += AddUserToolStripMenuItem_Click;
                    contextMenuStripMain.Items.Add(addUser);

                    var evalJs = EvalJSToolStripMenuItem.Clone();
                    evalJs.Click += evalJSToolStripMenuItem_Click;
                    contextMenuStripMain.Items.Add(evalJs);

                    var repairDb = RepairDBToolStripMenuItem.Clone();
                    repairDb.Click += RepairDBToolStripMenuItem_Click;
                    contextMenuStripMain.Items.Add(repairDb);


                    var initGfs = InitGFSToolStripMenuItem.Clone();
                    initGfs.Click += InitGFSToolStripMenuItem_Click;
                    contextMenuStripMain.Items.Add(initGfs);

                    var dumpDatabase = DumpDatabaseToolStripMenuItem.Clone();
                    dumpDatabase.Click += DumpDatabaseToolStripMenuItem_Click;
                    contextMenuStripMain.Items.Add(dumpDatabase);

                    var restoreMongo = RestoreMongoToolStripMenuItem.Clone();
                    restoreMongo.Click += RestoreMongoToolStripMenuItem_Click;
                    contextMenuStripMain.Items.Add(restoreMongo);


                    contextMenuStripMain.Items.Add(new ToolStripSeparator());

                    var profillingLevel = ProfillingLevelToolStripMenuItem.Clone();
                    profillingLevel.Click += profillingLevelToolStripMenuItem_Click;
                    contextMenuStripMain.Items.Add(profillingLevel);

                    var dbStatus = DBStatusToolStripMenuItem.Clone();
                    dbStatus.Click += DBStatusToolStripMenuItem_Click;
                    contextMenuStripMain.Items.Add(dbStatus);
                }
                else
                {
                    contextMenuStripMain.Items.Add(DelMongoDBToolStripMenuItem.Clone());
                    contextMenuStripMain.Items.Add(CreateMongoCollectionToolStripMenuItem.Clone());
                    contextMenuStripMain.Items.Add(CopyDatabasetoolStripMenuItem.Clone());
                    contextMenuStripMain.Items.Add(AddUserToolStripMenuItem.Clone());
                    contextMenuStripMain.Items.Add(AddDBCustomeRoleStripMenuItem.Clone());
                    contextMenuStripMain.Items.Add(EvalJSToolStripMenuItem.Clone());
                    contextMenuStripMain.Items.Add(RepairDBToolStripMenuItem.Clone());
                    contextMenuStripMain.Items.Add(InitGFSToolStripMenuItem.Clone());
                    contextMenuStripMain.Items.Add(DumpDatabaseToolStripMenuItem.Clone());
                    contextMenuStripMain.Items.Add(RestoreMongoToolStripMenuItem.Clone());
                    contextMenuStripMain.Items.Add(new ToolStripSeparator());
                    contextMenuStripMain.Items.Add(ProfillingLevelToolStripMenuItem.Clone());
                    contextMenuStripMain.Items.Add(DBStatusToolStripMenuItem.Clone());
                }
                e.Node.ContextMenuStrip = contextMenuStripMain;
                contextMenuStripMain.Show(trvsrvlst.PointToScreen(e.Location));
            }
        }