/// <summary> /// Drop /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dropJavascriptToolStripMenuItem_Click(object sender, EventArgs e) { var strPath = RuntimeMongoDbContext.SelectTagData; var strCollection = strPath.Split("/".ToCharArray())[(int)EnumMgr.PathLevel.CollectionAndView + 1]; var result = Operater.DelJavascript(strCollection); if (string.IsNullOrEmpty(result)) { var strNodeData = RuntimeMongoDbContext.SelectTagData; trvsrvlst.SelectedNode.Parent.Nodes.Remove(trvsrvlst.SelectedNode); DisableAllOpr(); } else { MyMessageBox.ShowMessage("Delete Error", "A error is happened when delete javascript", result, true); } }
/// <summary> /// 删除索引 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmdDelIndex_Click(object sender, EventArgs e) { if (lstIndex.CheckedItems.Count <= 0) { return; } if (lstIndex.CheckedItems[0].Index == 0) { MessageBox.Show("Can't Delete Default Index!"); return; } foreach (ListViewItem item in lstIndex.CheckedItems) { Operater.DropMongoIndex(item.SubItems[0].Text, RuntimeMongoDbContext.GetCurrentCollection()); } RefreshList(); }
/// <summary> /// Load方法,属性设定 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ctlJsCodeEditor_Load(object sender, EventArgs e) { txtEditJavaScript.Document.HighlightingStrategy = HighlightingStrategyFactory.CreateHighlightingStrategy(ConstMgr.CSharp); if (DesignMode) { return; } foreach (var item in MongoHelper.GetJsNameList()) { cmbJsList.Items.Add(item); } cmbJsList.SelectedIndexChanged += (x, y) => { txtEditJavaScript.Text = Operater.LoadJavascript(cmbJsList.Text, RuntimeMongoDbContext.GetCurrentJavaScript()); }; GuiConfig.Translateform(Controls); }
/// <summary> /// 重命名 /// </summary> /// <param name="node"></param> /// <returns></returns> public static string RenameCollection(TreeNode node) { var strPath = RuntimeMongoDbContext.SelectTagData; var strCollection = strPath.Split("/".ToCharArray())[(int)EnumMgr.PathLevel.Collection]; var strNewCollectionName = MyMessageBox.ShowInput( GuiConfig.GetText("Please input new collection name:", TextType.RenameCollectionInput), GuiConfig.GetText("Rename collection", TextType.RenameCollection), strCollection); if (string.IsNullOrEmpty(strNewCollectionName)) { return(string.Empty); } if (Operater.RenameCollection(strCollection, strNewCollectionName)) { return(strNewCollectionName); } return(string.Empty); }
/// <summary> /// 取消 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnCancel_Click(object sender, EventArgs e) { //操作完成,还原界面 operater = Operater.noThing; //启用控件 btnAdd.Enabled = true; btnModify.Enabled = true; btnDel.Enabled = true; dgvItemList.Enabled = true; //禁用控件 btnSave.Enabled = false; btnCancel.Enabled = false; txtItemName.Enabled = false; txtMax.Enabled = false; txtMin.Enabled = false; txtUnit.Enabled = false; GetData(); }
/// <summary> /// 用户测试用例 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnUser_Click(object sender, EventArgs e) { //用户测试用例 Operater.Init(); UserInfo user = new UserInfo(); user.UserName = "******"; user.Email = "*****@*****.**"; UserInfo.InsertUser(user); var t = UserInfo.GetUserByName(user.UserName); MessageBox.Show(t.UserName + ":" + t.Email); UserInfo.DeleteUser(user.UserName); t = UserInfo.GetUserByName(user.UserName); if (t != null) { MessageBox.Show(t.UserName + ":" + t.Email); } }
/// <summary> /// 建立数据库 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void CreateMongoDBToolStripMenuItem_Click(object sender, EventArgs e) { string strDbName; if (GuiConfig.IsUseDefaultLanguage) { strDbName = MyMessageBox.ShowInput("Please Input DataBaseName:", "Create Database"); } else { strDbName = MyMessageBox.ShowInput( GuiConfig.GetText(TextType.CreateNewDataBaseInput), GuiConfig.GetText(TextType.CreateNewDataBase)); } string errMessage; if (Operater.IsDatabaseNameValid(strDbName, out errMessage)) { try { var strRusult = Operater.DataBaseOpration(RuntimeMongoDbContext.SelectObjectTag, strDbName, Operater.Oprcode.Create); if (string.IsNullOrEmpty(strRusult)) { RefreshToolStripMenuItem_Click(sender, e); } else { MyMessageBox.ShowMessage("Error", "Create MongoDatabase", strRusult, true); } } catch (ArgumentException ex) { Utility.ExceptionDeal(ex, "Create MongoDatabase", "Argument Exception"); } } else { MyMessageBox.ShowMessage("Create MongoDatabase", "Argument Exception", errMessage, true); } }
/// <summary> /// OK /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmdOK_Click(object sender, EventArgs e) { //不支持中文 JIRA ticket is created : SERVER-4412 //SERVER-4412已经在2013/03解决了 //collection names are limited to 121 bytes after converting to UTF-8. if (txtCollectionName.Text == string.Empty) { return; } try { string errMessage; RuntimeMongoDbContext.GetCurrentDataBase().IsCollectionNameValid(txtCollectionName.Text, out errMessage); if (errMessage != null) { MyMessageBox.ShowMessage("Create MongoDatabase", "Argument Exception", errMessage, true); return; } if (chkAdvance.Checked) { var option = new CollectionOptionsBuilder(); option.SetCapped(chkIsCapped.Checked); option.SetMaxSize((long)numMaxSize.Value); option.SetMaxDocuments((long)numMaxDocument.Value); //CappedCollection Default is AutoIndexId After MongoDB 2.2.2 option.SetAutoIndexId(chkIsAutoIndexId.Checked); Result = Operater.CreateCollectionWithOptions(StrSvrPathWithTag, txtCollectionName.Text, option, RuntimeMongoDbContext.GetCurrentDataBase()); } else { Result = Operater.CreateCollection(StrSvrPathWithTag, txtCollectionName.Text, RuntimeMongoDbContext.GetCurrentDataBase()); } Close(); } catch (ArgumentException ex) { Utility.ExceptionDeal(ex, "Create MongoDatabase", "Argument Exception"); Result = false; } }
public void Init() { if (!DesignMode) { foreach (var item in MongoHelper.GetJsNameList()) { cmbJsList.Items.Add(item); } cmbJsList.SelectedIndexChanged += (x, y) => { txtContext.Text = Operater.LoadJavascript(cmbJsList.Text, null); }; if (!GuiConfig.IsUseDefaultLanguage) { cmdSave.Text = GuiConfig.GetText(TextType.CommonSave); cmdSaveLocal.Text = GuiConfig.GetText(TextType.CommonSaveLocal); cmdLoadLocal.Text = GuiConfig.GetText(TextType.QueryActionLoad); } } }
/// <summary> /// 复制 /// </summary> private void Copy(MongoDatabase toDb) { ChangeEnable(false); try { //获取选中的表 for (var index = 0; index < _selectCollection.Count; index++) { var name = _selectCollection[index]; Operater.CopyCollection(RuntimeMongoDbContext.GetCurrentDataBase(), toDb, name, false); ChangeProgress(index); } MessageBox.Show(@"OK"); } catch (Exception exception) { MessageBox.Show(exception.Message); } ChangeEnable(true); }
/// <summary> /// 初始化ReplSet /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void InitReplsetToolStripMenuItem_Click(object sender, EventArgs e) { var replSetName = MyMessageBox.ShowInput("Please Fill ReplSetName :", GuiConfig.GetText("ReplSetName", TextType.ReplsetInitReplset)); if (replSetName == string.Empty) { return; } var result = string.Empty; if (Operater.InitReplicaSet(replSetName, ref result)) { MyMessageBox.ShowMessage("ReplSetName", "Please refresh connection after one minute."); } else { MyMessageBox.ShowMessage("ReplSetName", "Failed", result); } }
private void JsEditor_Load(object sender, EventArgs e) { if (DesignMode) { return; } GuiConfig.Translateform(Controls); SaveStripButton.Image = Resources.save.ToBitmap(); // if (!string.IsNullOrEmpty(JsName)) // { // txtEditJavaScript.Text = Operater.LoadJavascript(JsName, RuntimeMongoDbContext.GetCurrentCollection()); // txtEditJavaScript.Select(0, 0); // } // txtEditJavaScript.GotFocus += (x, y) => { RuntimeMongoDbContext.SelectObjectTag = StrDBtag; }; if (!string.IsNullOrEmpty(JsName)) { txtEditJavaScript.Text = Operater.LoadJavascript(JsName, RuntimeMongoDbContext.GetCurrentCollection()); } }
/// <summary> /// 添加 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnAdd_Click(object sender, EventArgs e) { operater = Operater.add; //禁用控件 dgvItemList.Enabled = false; btnAdd.Enabled = false; btnModify.Enabled = false; btnDel.Enabled = false; //启用 txtItemName.Enabled = true; txtUnit.Enabled = true; txtMax.Enabled = true; txtMin.Enabled = true; btnSave.Enabled = true; btnCancel.Enabled = true; //清空文本框 txtItemName.Text = ""; txtMax.Text = ""; txtMin.Text = ""; txtUnit.Text = ""; }
/// <summary> /// 行程测试用例 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSchedule_Click(object sender, EventArgs e) { //行程测试用例 Operater.Init(); Overview Trip = new Overview(); UserInfo user = new UserInfo(); user.UserName = "******"; user.Email = "*****@*****.**"; UserInfo.InsertUser(user); Trip.CreateUserName = user.UserName; Trip.StartDate = new DateTime(2014, 10, 10); Trip.EndDate = new DateTime(2014, 10, 15); Trip.MemberCount = 4; Trip.DepartLocation = "上海"; Trip.ReturnLocation = "上海"; Trip.EntryLocation = "台币"; Trip.ExitLocation = "高雄"; Trip.Budget = 20000; Preparation 入台通行证办理 = new Preparation(); 入台通行证办理.StartDate = new DateTime(2014, 8, 23); 入台通行证办理.EndDate = new DateTime(2014, 8, 23); 入台通行证办理.Location = "上海市杨浦区出入境管理处 淞沪路605号"; 入台通行证办理.Comments = "网上先预约一下,可以加快办理速度"; Consumption 入台通行证手续费 = new Consumption(); 入台通行证手续费.Price = 50; 入台通行证手续费.Count = 4; 入台通行证手续费.PayCurrency = Consumption.CurrencyEnum.RMB; 入台通行证手续费.PayMethod = Consumption.PayMethodEnum.Cash; 入台通行证手续费.PayClass = Consumption.PayClassEnum.Certificates; 入台通行证手续费.PayTime = new DateTime(2014, 8, 23); 入台通行证办理.ConsumptionList.Add(入台通行证手续费); Operater.FillBaseInfo(入台通行证办理); Trip.PreparationList.Add(入台通行证办理); Overview.InsertOverview(Trip); }
///// <summary> ///// 数据树形被选择后(TOP) ///// </summary> ///// <param name="sender"></param> ///// <param name="e"></param> private void trvData_AfterSelect_Top(object sender, TreeViewEventArgs e) { //InitControlsEnable(); if (MDataViewInfo.IsView) { return; //View是只读的 } RuntimeMongoDbContext.SelectObjectTag = MDataViewInfo.StrDbTag; if (trvData.DatatreeView.SelectedNode.Level == 0) { //顶层可以删除的节点 if (!MDataViewInfo.IsReadOnly) { if (!Operater.IsSystemCollection(RuntimeMongoDbContext.GetCurrentCollection()) && !RuntimeMongoDbContext.GetCurrentCollection().IsCapped()) { //普通数据 //在顶层的时候,允许添加元素,不允许删除元素和修改元素(删除选中记录) DelSelectRecordToolToolStripMenuItem.Enabled = true; DelSelectRecordToolStripButton.Enabled = true; AddElementToolStripMenuItem.Enabled = true; if (ElementHelper.CanPasteAsElement) { PasteElementToolStripMenuItem.Enabled = true; PasteElementStripButton.Enabled = true; } } else { DelSelectRecordToolToolStripMenuItem.Enabled = false; //DelSelectRecordToolStripButton.Enabled = false; } } } else { //非顶层元素 trvData_AfterSelect_NotTop(); } }
/// <summary> /// 建立数据库 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void CreateMongoDBToolStripMenuItem_Click(object sender, EventArgs e) { //新版本如果数据库没有数据集,则数据库将被回收? string strDbName = MyMessageBox.ShowInput( GuiConfig.GetText("Please Input DataBaseName:", "CreateNewDataBaseInput"), GuiConfig.GetText("Create Database", "CreateNewDataBase")); if (string.IsNullOrEmpty(strDbName)) { return; } string strInitColName = MyMessageBox.ShowInput( GuiConfig.GetText("Please Input Init CollectionName:", "CreateNewDataBaseInitCollection"), GuiConfig.GetText("Create Database", "CreateNewDataBase")); string errMessage; if (Operater.IsDatabaseNameValid(strDbName, out errMessage)) { try { var strRusult = Operater.CreateDataBaseWithInitCollection(strDbName, strInitColName); if (string.IsNullOrEmpty(strRusult)) { RefreshToolStripMenuItem_Click(sender, e); } else { MyMessageBox.ShowMessage("Error", "Create MongoDatabase", strRusult, true); } } catch (ArgumentException ex) { Utility.ExceptionDeal(ex, "Create MongoDatabase", "Argument Exception"); } } else { MyMessageBox.ShowMessage("Create MongoDatabase", "Argument Exception", errMessage, true); } }
private void InsertPorudzbina_Click(object sender, EventArgs e) { try { ISession sesija = DataLayer.GetSession(); ITransaction tran = sesija.BeginTransaction(); Operater o = sesija.Load <Operater>(2); Kupac k = sesija.Load <Kupac>(19); DateTime datum = new DateTime(2019, 5, 5); NeisporucenaPorudzbina p = new NeisporucenaPorudzbina(); p.DatumVremeKreiranja = datum; p.NacinPlacanja = "KARTICA"; sesija.Save(p); p.IdOperater = o; p.IdKupca = k;//, Sadrzi s = new Sadrzi() { PizzaId = sesija.Load <Pizza>("Kalcona"), VelicinaId = sesija.Load <VelicinaPizze>("Srednja"), PorudzbinaId = p }; sesija.Save(s); o.PrimljenePorudzbine.Add(p); k.Porudzbine.Add(p); sesija.Update(k); sesija.Update(o); sesija.Update(s); tran.Commit(); sesija.Close(); MessageBox.Show("KRAJ"); } catch (Exception exc) { MessageBox.Show(exc.Message); } }
/// <summary> /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmdAddHost_Click(object sender, EventArgs e) { try { var result = ShellMethod.AddToReplsetServer(RuntimeMongoDbContext.GetCurrentServer(), txtReplHost.Text + ":" + NumReplPort.Value, (int)NumPriority.Value, chkArbiterOnly.Checked); if (CommandExecute.IsShellOk(result)) { RuntimeMongoDbContext.CurrentMongoConnectionconfig.ReplsetList.Add(txtReplHost.Text + ":" + NumReplPort.Value); Operater.RefreshConnectionConfig(RuntimeMongoDbContext.CurrentMongoConnectionconfig); MyMessageBox.ShowMessage("Add Memeber OK", "Please refresh connection after one minute."); } else { MyMessageBox.ShowMessage("Add Memeber", "Add Memeber Failed", result.Response.ToString()); } } catch (Exception ex) { Utility.ExceptionDeal(ex); } }
/// <summary> /// ViewList右键事件 /// </summary> /// <param name="e"></param> private void ViewListHandler(TreeNodeMouseClickEventArgs e) { if (e.Button == MouseButtons.Right) { if (!Operater.IsSystemDataBase(RuntimeMongoDbContext.GetCurrentDataBaseName())) { CreateViewtoolStripMenuItem.Enabled = true; } contextMenuStripMain = new ContextMenuStrip(); if (SystemManager.MonoMode) { var createMongoCollection = CreateViewtoolStripMenuItem.Clone(); createMongoCollection.Click += CreateMongoCollectionToolStripMenuItem_Click; contextMenuStripMain.Items.Add(createMongoCollection); } else { contextMenuStripMain.Items.Add(CreateViewtoolStripMenuItem.Clone()); } e.Node.ContextMenuStrip = contextMenuStripMain; contextMenuStripMain.Show(trvsrvlst.PointToScreen(e.Location)); } }
/// <summary> /// 加载 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void frmAddSharding_Load(object sender, EventArgs e) { GuiConfig.Translateform(this); _prmSvr = RuntimeMongoDbContext.GetCurrentServer(); var mongoDb = _prmSvr.GetDatabase(ConstMgr.DatabaseNameConfig); MongoCollection mongoCol = mongoDb.GetCollection("databases"); foreach (var item in mongoCol.FindAllAs <BsonDocument>()) { if (item.GetValue(ConstMgr.KeyId) != ConstMgr.DatabaseNameAdmin) { cmbDataBase.Items.Add(item.GetValue(ConstMgr.KeyId)); cmbShardKeyDB.Items.Add(item.GetValue(ConstMgr.KeyId)); } } foreach (var lst in Operater.GetShardInfo(_prmSvr, ConstMgr.KeyId)) { lstSharding.Items.Add(lst.Value); } mongoCol = mongoDb.GetCollection("shards"); cmbTagList.Items.Clear(); foreach (var mShard in mongoCol.FindAllAs <BsonDocument>()) { if (mShard.Contains("tags")) { foreach (var tag in mShard.GetElement("tags").Value.AsBsonArray) { //严格意义上说,不应该在同一个路由里面出现两个同名的标签。 if (!_tagSet.ContainsKey(tag.ToString())) { _tagSet.Add(tag.ToString(), mShard.GetElement(ConstMgr.KeyId).Value.ToString()); cmbTagList.Items.Add(mShard.GetElement(ConstMgr.KeyId).Value + "." + tag); } } } } }
/// <summary> /// Drop MongoDB /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DelMongoDBToolStripMenuItem_Click(object sender, EventArgs e) { var strTitle = "Drop Database"; var strMessage = "Are you really want to Drop current Database?"; if (!GuiConfig.IsUseDefaultLanguage) { strTitle = GuiConfig.GetText(TextType.DropDataBase); strMessage = GuiConfig.GetText(TextType.DropDataBaseConfirm); } if (!MyMessageBox.ShowConfirm(strTitle, strMessage)) { return; } var strTagPrefix = TagInfo.GetTagPath(ConstMgr.CollectionTag + ":" + RuntimeMongoDbContext.SelectTagData); var strDbName = strTagPrefix.Split("/".ToCharArray())[(int)EnumMgr.PathLevel.Database]; if (trvsrvlst.SelectedNode == null) { trvsrvlst.SelectedNode = null; } var rtnResult = Operater.DataBaseOpration(RuntimeMongoDbContext.SelectObjectTag, strDbName, Operater.Oprcode.Drop); if (string.IsNullOrEmpty(rtnResult)) { RefreshToolStripMenuItem_Click(sender, e); //关闭所有的相关视图 MultiTabManger.SelectObjectTagPrefixDeleted(strTagPrefix); } else { MyMessageBox.ShowMessage("Error", "Error", rtnResult, true); } }
/// <summary> /// ReIndex /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ReIndexToolStripMenuItem_Click(object sender, EventArgs e) { Operater.ReIndex(); }
public UCLisItem() { InitializeComponent(); operater = Operater.noThing; }
/// <summary> /// Compact /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void CompactToolStripMenuItem_Click(object sender, EventArgs e) { Operater.Compact(); }
/// <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 = MongoUserEx.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 = MongoAction.JudgeRightByBuildInRole(roles, MongoAction.ActionType.ServerAdministrationActionsDropDatabase); CreateMongoCollectionToolStripMenuItem.Enabled = MongoAction.JudgeRightByBuildInRole(roles, MongoAction.ActionType.DatabaseManagementActionsCreateCollection); CopyDatabasetoolStripMenuItem.Enabled = true; InitGFSToolStripMenuItem.Enabled = MongoAction.JudgeRightByBuildInRole(roles, MongoAction.ActionType.MiscActionsInitGfs); AddUserToolStripMenuItem.Enabled = MongoAction.JudgeRightByBuildInRole(roles, MongoAction.ActionType.DatabaseManagementActionsCreateUser); //If a Slave server can repair database @ Master-Slave is not sure ?? RepairDBToolStripMenuItem.Enabled = MongoAction.JudgeRightByBuildInRole(roles, MongoAction.ActionType.ServerAdministrationActionsRepairDatabase); } else { DelMongoDBToolStripMenuItem.Enabled = true; CreateMongoCollectionToolStripMenuItem.Enabled = true; CreateViewtoolStripMenuItem.Enabled = true; CopyDatabasetoolStripMenuItem.Enabled = true; InitGFSToolStripMenuItem.Enabled = true; AddUserToolStripMenuItem.Enabled = true; RepairDBToolStripMenuItem.Enabled = true; } } AddDBCustomeRoleStripMenuItem.Enabled = true; //使用Shell:从实际情况来看,有一些Shell指令是不依赖与Admin数据库或者和数据库无关的 //所以这里暂时开放所有的Shell指令。 EvalJSToolStripMenuItem.Enabled = true; //备份数据库 DumpDatabaseToolStripMenuItem.Enabled = true; //Profilling 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 createView = CreateViewtoolStripMenuItem.Clone(); createView.Click += CreateViewtoolStripMenuItem_Click; contextMenuStripMain.Items.Add(createView); 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(CreateViewtoolStripMenuItem.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)); } }
/// <summary> /// 数据树形被选择后(非TOP) /// </summary> /// <returns>是否能被修改[双击事件]</returns> private bool trvData_AfterSelect_NotTop() { if (MDataViewInfo.IsView) { return(false); //View是只读的 } //非顶层可以删除的节点 if (!Operater.IsSystemCollection(RuntimeMongoDbContext.GetCurrentCollection()) && !MDataViewInfo.IsReadOnly && !RuntimeMongoDbContext.GetCurrentCollection().IsCapped()) { //普通数据:允许添加元素,不允许删除元素 DropElementToolStripMenuItem.Enabled = true; CopyElementToolStripMenuItem.Enabled = true; CopyElementStripButton.Enabled = true; CutElementToolStripMenuItem.Enabled = true; CutElementStripButton.Enabled = true; if (trvData.DatatreeView.SelectedNode.Nodes.Count != 0) { //父节点 //1. 以Array_Mark结尾的数组 //2. Document if (trvData.DatatreeView.SelectedNode.FullPath.EndsWith(ConstMgr.ArrayMark)) { //列表的父节点 if (ElementHelper.CanPasteAsValue) { PasteElementToolStripMenuItem.Enabled = true; PasteElementStripButton.Enabled = true; } } else { //文档的父节点 if (ElementHelper.CanPasteAsElement) { PasteElementToolStripMenuItem.Enabled = true; PasteElementStripButton.Enabled = true; } } AddElementToolStripMenuItem.Enabled = true; ModifyElementToolStripMenuItem.Enabled = false; } else { //子节点 //1.简单元素 //2.空的Array //3.空的文档 //4.Array中的Value BsonValue t; if (trvData.DatatreeView.SelectedNode.Tag is BsonElement) { //子节点是一个元素,获得子节点的Value t = ((BsonElement)trvData.DatatreeView.SelectedNode.Tag).Value; if (t.IsBsonDocument || t.IsBsonArray) { //2.空的Array //3.空的文档 ModifyElementToolStripMenuItem.Enabled = false; AddElementToolStripMenuItem.Enabled = true; if (t.IsBsonDocument) { //3.空的文档 if (ElementHelper.CanPasteAsElement) { PasteElementToolStripMenuItem.Enabled = true; PasteElementStripButton.Enabled = true; } } if (t.IsBsonArray) { //3.Array if (ElementHelper.CanPasteAsValue) { PasteElementToolStripMenuItem.Enabled = true; PasteElementStripButton.Enabled = true; } } } else { //1.简单元素 ModifyElementToolStripMenuItem.Enabled = true; AddElementToolStripMenuItem.Enabled = false; } } else { //子节点是一个Array的Value,获得Value //4.Array中的Value t = (BsonValue)trvData.DatatreeView.SelectedNode.Tag; ModifyElementToolStripMenuItem.Enabled = true; if (t.IsBsonArray || t.IsBsonDocument) { //当这个值是一个数组或者文档时候,仍然允许其添加子元素 AddElementToolStripMenuItem.Enabled = true; } else { AddElementToolStripMenuItem.Enabled = false; } } } } return(ModifyElementToolStripMenuItem.Enabled); }
/// <summary> /// 将数据库放入Node /// </summary> /// <param name="strDbName"></param> /// <param name="mongoSvrKey"></param> /// <param name="client"></param> /// <returns></returns> public static TreeNode FillDataBaseInfoToTreeNode(string strDbName, string mongoSvrKey, MongoClient client = null) { var strShowDbName = strDbName; if (!GuiConfig.IsUseDefaultLanguage) { if (StringResource.LanguageType == "Chinese") { switch (strDbName) { case ConstMgr.DatabaseNameAdmin: strShowDbName = "管理员权限(admin)"; break; case "local": strShowDbName = "本地(local)"; break; case "config": strShowDbName = "配置(config)"; break; } } } var mongoDbNode = new TreeNode(strShowDbName); mongoDbNode.Tag = TagInfo.CreateTagInfo(mongoSvrKey, strDbName); var userNode = new TreeNode("User", (int)GetSystemIcon.MainTreeImageType.UserIcon, (int)GetSystemIcon.MainTreeImageType.UserIcon); userNode.Tag = ConstMgr.UserListTag + ":" + mongoSvrKey + "/" + strDbName + "/" + ConstMgr.CollectionNameUser; mongoDbNode.Nodes.Add(userNode); var jsNode = new TreeNode("JavaScript", (int)GetSystemIcon.MainTreeImageType.JavaScriptList, (int)GetSystemIcon.MainTreeImageType.JavaScriptList); jsNode.Tag = ConstMgr.JavascriptTag + ":" + mongoSvrKey + "/" + strDbName + "/" + ConstMgr.CollectionNameJavascript; mongoDbNode.Nodes.Add(jsNode); var gfsNode = new TreeNode("Grid File System", (int)GetSystemIcon.MainTreeImageType.Gfs, (int)GetSystemIcon.MainTreeImageType.Gfs); gfsNode.Tag = ConstMgr.GridFileSystemTag + ":" + mongoSvrKey + "/" + strDbName + "/" + ConstMgr.CollectionNameGfsFiles; mongoDbNode.Nodes.Add(gfsNode); var mongoSysColListNode = new TreeNode("Collections(System)", (int)GetSystemIcon.MainTreeImageType.SystemCol, (int)GetSystemIcon.MainTreeImageType.SystemCol); mongoSysColListNode.Tag = ConstMgr.SystemCollectionListTag + ":" + mongoSvrKey + "/" + strDbName; mongoDbNode.Nodes.Add(mongoSysColListNode); var mongoColListNode = new TreeNode("Collections(General)", (int)GetSystemIcon.MainTreeImageType.CollectionList, (int)GetSystemIcon.MainTreeImageType.CollectionList); mongoColListNode.Tag = ConstMgr.CollectionListTag + ":" + mongoSvrKey + "/" + strDbName; var colNameList = GetConnectionInfo.GetCollectionList(client, strDbName); //Collection按照名称排序 colNameList.Sort((x, y) => { return(x.GetElement("name").Value.ToString().CompareTo(y.GetElement("name").Value.ToString())); }); foreach (var colDoc in colNameList) { var strColName = colDoc.GetElement("name").Value.ToString(); switch (strColName) { case ConstMgr.CollectionNameUser: //system.users,fs,system.js这几个系统级别的Collection不需要放入 break; case ConstMgr.CollectionNameJavascript: //foreach (var doc in MongoHelper.NewUtility.GetConnectionInfo.GetCollectionInfo(client, strDBName, ConstMgr.COLLECTION_NAME_JAVASCRIPT).Find<BsonDocument>(null,null)) //{ // var js = new TreeNode(doc.GetValue(ConstMgr.KEY_ID).ToString()); // js.ImageIndex = (int) GetSystemIcon.MainTreeImageType.JsDoc; // js.SelectedImageIndex = (int) GetSystemIcon.MainTreeImageType.JsDoc; // js.Tag = ConstMgr.JAVASCRIPT_DOC_TAG + ":" + mongoSvrKey + "/" + strDBName + "/" + // ConstMgr.COLLECTION_NAME_JAVASCRIPT + "/" + doc.GetValue(ConstMgr.KEY_ID); // JsNode.Nodes.Add(js); //} FillJavaScriptInfoToTreeNode(jsNode, GetConnectionInfo.GetCollectionInfo(client, strDbName, strColName), mongoSvrKey, strDbName); break; default: TreeNode mongoColNode; try { var col = GetConnectionInfo.GetCollectionInfo(client, strDbName, strColName); mongoColNode = FillCollectionInfoToTreeNode(col, mongoSvrKey); } catch (Exception ex) { mongoColNode = new TreeNode(strColName + "[exception:]"); mongoColNode.ImageIndex = (int)GetSystemIcon.MainTreeImageType.Err; mongoColNode.SelectedImageIndex = (int)GetSystemIcon.MainTreeImageType.Err; Utility.ExceptionDeal(ex); } if (Operater.IsSystemCollection(strDbName, strColName)) { switch (strColName) { case ConstMgr.CollectionNameGfsChunks: case ConstMgr.CollectionNameGfsFiles: gfsNode.Nodes.Add(mongoColNode); break; default: mongoSysColListNode.Nodes.Add(mongoColNode); break; } } else { mongoColListNode.Nodes.Add(mongoColNode); } break; } } mongoDbNode.Nodes.Add(mongoColListNode); mongoDbNode.ImageIndex = (int)GetSystemIcon.MainTreeImageType.Database; mongoDbNode.SelectedImageIndex = (int)GetSystemIcon.MainTreeImageType.Database; return(mongoDbNode); }
/// <summary> /// 导出到Excel /// </summary> /// <param name="dataList"></param> /// <param name="filename"></param> private static void Export(List <BsonDocument> dataList, string filename, bool IsAutoClose = false) { var schame = MongoHelper.GetCollectionSchame(_processCollection); dynamic excelObj = Interaction.CreateObject("Excel.Application"); excelObj.Visible = true; dynamic workbook; dynamic worksheet; var isNew = false; if (File.Exists(filename)) { workbook = excelObj.Workbooks.Open(filename); worksheet = workbook.Sheets(1); } else { isNew = true; workbook = excelObj.WorkBooks.Add(); worksheet = workbook.Sheets(1); } worksheet.Select(); worksheet.Name = _processCollection.Name; var rowCount = 1; var colCount = 1; foreach (var item in schame) { worksheet.Cells(rowCount, colCount).Value = item; colCount++; } rowCount++; foreach (var docItem in dataList) { colCount = 1; var isSystem = Operater.IsSystemCollection(_processCollection); if (!isSystem) { BsonElement id; docItem.TryGetElement(ConstMgr.KeyId, out id); worksheet.Cells(rowCount, colCount).Value = !(id.Value is BsonNull) ? docItem.GetValue(ConstMgr.KeyId).ToString() : "[Empty]"; } else { worksheet.Cells(rowCount, colCount).Value = docItem.GetValue(schame[0]).ToString(); } //OtherItems for (var i = isSystem ? 1 : 0; i < schame.Count; i++) { if (schame[i] == ConstMgr.KeyId) { continue; } BsonValue val; docItem.TryGetValue(schame[i], out val); worksheet.Cells(rowCount, i + 1).Value = val == null ? string.Empty : ViewHelper.ConvertToString(val); } rowCount++; } if (IsAutoClose) { if (isNew) { workbook.SaveAs(filename); } else { workbook.Save(); } workbook.Close(); excelObj = null; } }
/// <summary> /// 将数据库放入Node /// </summary> /// <param name="strDbName"></param> /// <param name="mongoSvrKey"></param> /// <param name="client"></param> /// <returns></returns> public static TreeNode FillDataBaseInfoToTreeNode(string strDbName, string mongoSvrKey, MongoClient client = null) { var strShowDbName = strDbName; switch (strDbName) { case ConstMgr.DatabaseNameAdmin: strShowDbName = GuiConfig.GetText("admin", "databasename.admin") + "(" + strDbName + ")"; break; case "local": strShowDbName = GuiConfig.GetText("local", "databasename.local") + "(" + strDbName + ")"; break; case "config": strShowDbName = GuiConfig.GetText("config", "databasename.config") + "(" + strDbName + ")"; break; } var mongoDbNode = new TreeNode(strShowDbName); mongoDbNode.Tag = TagInfo.CreateTagInfo(mongoSvrKey, strDbName); //User Node var userNode = new TreeNode(GuiConfig.GetText("Users", "collectionName.system.users"), (int)GetSystemIcon.MainTreeImageType.UserIcon, (int)GetSystemIcon.MainTreeImageType.UserIcon); userNode.Tag = ConstMgr.UserListTag + ":" + mongoSvrKey + "/" + strDbName + "/" + ConstMgr.CollectionNameUsers; if (client.GetServer().GetDatabase(strDbName).CollectionExists(ConstMgr.CollectionNameUsers)) { var usercol = ConnectionInfo.GetICollection(client, strDbName, ConstMgr.CollectionNameUsers); long colCount = ConnectionInfo.GetCollectionCnt(usercol); userNode.Text += "(" + colCount + ")"; } mongoDbNode.Nodes.Add(userNode); var roleNode = new TreeNode(GuiConfig.GetText("Roles", "collectionName.system.roles"), (int)GetSystemIcon.MainTreeImageType.UserIcon, (int)GetSystemIcon.MainTreeImageType.UserIcon); roleNode.Tag = ConstMgr.RoleListTag + ":" + mongoSvrKey + "/" + strDbName + "/" + ConstMgr.CollectionNameRoles; if (client.GetServer().GetDatabase(strDbName).CollectionExists(ConstMgr.CollectionNameRoles)) { var rolescol = ConnectionInfo.GetICollection(client, strDbName, ConstMgr.CollectionNameRoles); long colCount = ConnectionInfo.GetCollectionCnt(rolescol); roleNode.Text += "(" + colCount + ")"; } mongoDbNode.Nodes.Add(roleNode); //JsNode var jsNode = new TreeNode(GuiConfig.GetText("Javascript", "collectionName.system.Javascript"), (int)GetSystemIcon.MainTreeImageType.JavaScriptList, (int)GetSystemIcon.MainTreeImageType.JavaScriptList); jsNode.Tag = ConstMgr.JavascriptTag + ":" + mongoSvrKey + "/" + strDbName + "/" + ConstMgr.CollectionNameJavascript; mongoDbNode.Nodes.Add(jsNode); //GFS Node var gfsNode = new TreeNode(GuiConfig.GetText("Grid File System"), (int)GetSystemIcon.MainTreeImageType.Gfs, (int)GetSystemIcon.MainTreeImageType.Gfs); gfsNode.Tag = ConstMgr.GridFileSystemTag + ":" + mongoSvrKey + "/" + strDbName + "/" + ConstMgr.CollectionNameGfsFiles; if (client.GetServer().GetDatabase(strDbName).CollectionExists(ConstMgr.CollectionNameGfsFiles)) { var gfscol = ConnectionInfo.GetICollection(client, strDbName, ConstMgr.CollectionNameGfsFiles); long colCount = ConnectionInfo.GetCollectionCnt(gfscol); gfsNode.Text += "(" + colCount + ")"; } mongoDbNode.Nodes.Add(gfsNode); var mongoSysColListNode = new TreeNode("Collections(System)", (int)GetSystemIcon.MainTreeImageType.SystemCol, (int)GetSystemIcon.MainTreeImageType.SystemCol); mongoSysColListNode.Tag = ConstMgr.SystemCollectionListTag + ":" + mongoSvrKey + "/" + strDbName; mongoDbNode.Nodes.Add(mongoSysColListNode); var mongoColListNode = new TreeNode("Collections(General)", (int)GetSystemIcon.MainTreeImageType.CollectionList, (int)GetSystemIcon.MainTreeImageType.CollectionList); mongoColListNode.Tag = ConstMgr.CollectionListTag + ":" + mongoSvrKey + "/" + strDbName; var colNameList = ConnectionInfo.GetCollectionInfoList(client, strDbName); //Collection按照名称排序 colNameList.Sort((x, y) => { return(x.GetElement("name").Value.ToString().CompareTo(y.GetElement("name").Value.ToString())); }); var viewlist = ConnectionInfo.GetViewInfoList(client, strDbName); foreach (var colDoc in colNameList) { var strColName = colDoc.GetElement("name").Value.ToString(); if (viewlist.Contains(strDbName + "." + strColName)) { continue; } switch (strColName) { case ConstMgr.CollectionNameSystemViews: //视图 TreeNode mongoViewNode; var ViewCol = ConnectionInfo.GetICollection(client, strDbName, strColName); mongoViewNode = FillViewInfoToTreeNode(ViewCol, ConstMgr.ViewTag + ":" + mongoSvrKey + "/" + strDbName + "/"); mongoViewNode.Tag = ConstMgr.ViewListTag + ":" + mongoSvrKey + "/" + strDbName; mongoDbNode.Nodes.Add(mongoViewNode); break; case ConstMgr.CollectionNameUsers: case ConstMgr.CollectionNameRoles: break; case ConstMgr.CollectionNameJavascript: FillJavaScriptInfoToTreeNode(jsNode, ConnectionInfo.GetICollection(client, strDbName, strColName), mongoSvrKey, strDbName); break; case ConstMgr.CollectionNameGfsChunks: case ConstMgr.CollectionNameGfsFiles: var gfscol = ConnectionInfo.GetICollection(client, strDbName, strColName); gfsNode.Nodes.Add(FillCollectionInfoToTreeNode(gfscol, mongoSvrKey)); break; default: TreeNode mongoColNode; try { var col = ConnectionInfo.GetICollection(client, strDbName, strColName); mongoColNode = FillCollectionInfoToTreeNode(col, mongoSvrKey); } catch (Exception ex) { mongoColNode = new TreeNode(strColName + "[exception:]"); mongoColNode.ImageIndex = (int)GetSystemIcon.MainTreeImageType.Err; mongoColNode.SelectedImageIndex = (int)GetSystemIcon.MainTreeImageType.Err; Utility.ExceptionDeal(ex); } if (Operater.IsSystemCollection(strDbName, strColName)) { mongoSysColListNode.Nodes.Add(mongoColNode); } else { mongoColListNode.Nodes.Add(mongoColNode); } break; } } mongoDbNode.Nodes.Add(mongoColListNode); mongoDbNode.ImageIndex = (int)GetSystemIcon.MainTreeImageType.Database; mongoDbNode.SelectedImageIndex = (int)GetSystemIcon.MainTreeImageType.Database; return(mongoDbNode); }
/// <summary> /// Collection Hanlder. /// </summary> /// <param name="e">E.</param> private void CollectionHandler(TreeNodeMouseClickEventArgs e) { if (GuiConfig.IsUseDefaultLanguage) { statusStripMain.Items[0].Text = "Selected Collection:" + RuntimeMongoDbContext.SelectTagData; } else { statusStripMain.Items[0].Text = GuiConfig.GetText(TextType.SelectedCollection) + ":" + RuntimeMongoDbContext.SelectTagData; } var mongoCol = RuntimeMongoDbContext.GetCurrentCollection(); //解禁 删除数据集 if (!Operater.IsSystemCollection()) { //系统数据库无法删除!! if (!RuntimeMongoDbContext.CurrentMongoConnectionconfig.IsReadOnly) { DelMongoCollectionToolStripMenuItem.Enabled = true; RenameCollectionToolStripMenuItem.Enabled = true; } } if (!RuntimeMongoDbContext.CurrentMongoConnectionconfig.IsReadOnly) { ImportCollectionToolStripMenuItem.Enabled = true; CompactToolStripMenuItem.Enabled = true; } if (!Operater.IsSystemCollection() && !RuntimeMongoDbContext.CurrentMongoConnectionconfig.IsReadOnly) { IndexManageToolStripMenuItem.Enabled = true; ReIndexToolStripMenuItem.Enabled = true; } DumpCollectionToolStripMenuItem.Enabled = true; ExportCollectionToolStripMenuItem.Enabled = true; AggregationToolStripMenuItem.Enabled = true; ViewDataToolStripMenuItem.Enabled = true; CollectionStatusToolStripMenuItem.Enabled = true; ValidateToolStripMenuItem.Enabled = true; ExportToFileToolStripMenuItem.Enabled = true; if (!mongoCol.IsCapped()) { ConvertToCappedtoolStripMenuItem.Enabled = true; } if (e.Button == MouseButtons.Right) { contextMenuStripMain = new ContextMenuStrip(); if (SystemManager.MonoMode) { //悲催MONO不支持 var delMongoCollection = DelMongoCollectionToolStripMenuItem.Clone(); delMongoCollection.Click += DelMongoCollectionToolStripMenuItem_Click; contextMenuStripMain.Items.Add(delMongoCollection); var renameCollection = RenameCollectionToolStripMenuItem.Clone(); renameCollection.Click += RenameCollectionToolStripMenuItem_Click; contextMenuStripMain.Items.Add(renameCollection); var dumpCollection = DumpCollectionToolStripMenuItem.Clone(); dumpCollection.Click += DumpCollectionToolStripMenuItem_Click; contextMenuStripMain.Items.Add(dumpCollection); var restoreMongo = RestoreMongoToolStripMenuItem.Clone(); restoreMongo.Click += RestoreMongoToolStripMenuItem_Click; contextMenuStripMain.Items.Add(restoreMongo); var importCollection = ImportCollectionToolStripMenuItem.Clone(); importCollection.Click += ImportCollectionToolStripMenuItem_Click; contextMenuStripMain.Items.Add(importCollection); var exportCollection = ExportCollectionToolStripMenuItem.Clone(); exportCollection.Click += ExportCollectionToolStripMenuItem_Click; contextMenuStripMain.Items.Add(exportCollection); var compact = CompactToolStripMenuItem.Clone(); compact.Click += CompactToolStripMenuItem_Click; contextMenuStripMain.Items.Add(compact); contextMenuStripMain.Items.Add(new ToolStripSeparator()); var viewData = ViewDataToolStripMenuItem.Clone(); viewData.Click += (x, y) => ViewDataObj(); contextMenuStripMain.Items.Add(viewData); var aggregationMenu = AggregationToolStripMenuItem.Clone(); var distinct = distinctToolStripMenuItem.Clone(); distinct.Click += distinctToolStripMenuItem_Click; aggregationMenu.DropDownItems.Add(distinct); var mapReduce = mapReduceToolStripMenuItem.Clone(); mapReduce.Click += mapReduceToolStripMenuItem_Click; aggregationMenu.DropDownItems.Add(mapReduce); contextMenuStripMain.Items.Add(aggregationMenu); contextMenuStripMain.Items.Add(new ToolStripSeparator()); var indexManage = IndexManageToolStripMenuItem.Clone(); indexManage.Click += IndexManageToolStripMenuItem_Click; contextMenuStripMain.Items.Add(indexManage); var reIndex = ReIndexToolStripMenuItem.Clone(); reIndex.Click += ReIndexToolStripMenuItem_Click; contextMenuStripMain.Items.Add(reIndex); contextMenuStripMain.Items.Add(new ToolStripSeparator()); var collectionStatus = CollectionStatusToolStripMenuItem.Clone(); collectionStatus.Click += CollectionStatusToolStripMenuItem_Click; contextMenuStripMain.Items.Add(collectionStatus); } else { contextMenuStripMain.Items.Add(DelMongoCollectionToolStripMenuItem.Clone()); contextMenuStripMain.Items.Add(RenameCollectionToolStripMenuItem.Clone()); contextMenuStripMain.Items.Add(ConvertToCappedtoolStripMenuItem.Clone()); contextMenuStripMain.Items.Add(DumpCollectionToolStripMenuItem.Clone()); contextMenuStripMain.Items.Add(RestoreMongoToolStripMenuItem.Clone()); contextMenuStripMain.Items.Add(ImportCollectionToolStripMenuItem.Clone()); contextMenuStripMain.Items.Add(ExportCollectionToolStripMenuItem.Clone()); contextMenuStripMain.Items.Add(ExportToFileToolStripMenuItem.Clone()); contextMenuStripMain.Items.Add(CompactToolStripMenuItem.Clone()); contextMenuStripMain.Items.Add(new ToolStripSeparator()); contextMenuStripMain.Items.Add(ViewDataToolStripMenuItem.Clone()); contextMenuStripMain.Items.Add(AggregationToolStripMenuItem.Clone()); contextMenuStripMain.Items.Add(new ToolStripSeparator()); contextMenuStripMain.Items.Add(IndexManageToolStripMenuItem.Clone()); contextMenuStripMain.Items.Add(ReIndexToolStripMenuItem.Clone()); contextMenuStripMain.Items.Add(new ToolStripSeparator()); contextMenuStripMain.Items.Add(CollectionStatusToolStripMenuItem.Clone()); contextMenuStripMain.Items.Add(ValidateToolStripMenuItem.Clone()); } e.Node.ContextMenuStrip = contextMenuStripMain; contextMenuStripMain.Show(trvsrvlst.PointToScreen(e.Location)); } //PlugIn foreach (ToolStripMenuItem item in plugInToolStripMenuItem.DropDownItems) { if (PlugIn.PlugInList[item.Tag.ToString()].RunLv == PlugInBase.PathLv.CollectionLv) { item.Enabled = true; } } }