/// <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); }
/// <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); }
/// <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)); } }