/// <summary> /// CollectionList右键事件 /// </summary> /// <param name="e"></param> private void CollectionListHandler(TreeNodeMouseClickEventArgs e) { if (e.Button == MouseButtons.Right) { if (!Operater.IsSystemDataBase(RuntimeMongoDbContext.GetCurrentDataBaseName())) { CreateMongoCollectionToolStripMenuItem.Enabled = true; } contextMenuStripMain = new ContextMenuStrip(); if (SystemManager.MonoMode) { var createMongoCollection = CreateMongoCollectionToolStripMenuItem.Clone(); createMongoCollection.Click += CreateMongoCollectionToolStripMenuItem_Click; contextMenuStripMain.Items.Add(createMongoCollection); } else { contextMenuStripMain.Items.Add(CreateMongoCollectionToolStripMenuItem.Clone()); } e.Node.ContextMenuStrip = contextMenuStripMain; contextMenuStripMain.Show(trvsrvlst.PointToScreen(e.Location)); } }
public FrmStageBuilder() { InitializeComponent(); txtLimit.Enabled = chkLimit.Checked; txtSkip.Enabled = chkSkip.Checked; txtSample.Enabled = chkSample.Checked; txtLimit.KeyPress += NumberTextBox.NumberTextInt_KeyPress; txtSkip.KeyPress += NumberTextBox.NumberTextInt_KeyPress; txtSample.KeyPress += NumberTextBox.NumberTextInt_KeyPress; var columnList = MongoHelper.GetCollectionSchame(RuntimeMongoDbContext.GetCurrentCollection()); foreach (var fieldname in columnList) { cmbSortByCount.Items.Add("$" + fieldname); cmbUnwind.Items.Add("$" + fieldname); } chkSkip.CheckedChanged += (x, y) => { txtSkip.Enabled = chkSkip.Checked; }; chkLimit.CheckedChanged += (x, y) => { txtLimit.Enabled = chkLimit.Checked; }; chkSample.CheckedChanged += (x, y) => { txtSample.Enabled = chkSample.Checked; }; }
/// <summary> /// 运行 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmdRun_Click(object sender, EventArgs e) { var map = new BsonJavaScript(ctlMapFunction.Context); var reduce = new BsonJavaScript(ctlReduceFunction.Context); //TODO:这里可能会超时,失去响应 //需要设置SocketTimeOut var args = new MapReduceArgs(); args.MapFunction = map; args.ReduceFunction = reduce; try { var mMapReduceResult = RuntimeMongoDbContext.GetCurrentCollection().MapReduce(args); UiHelper.FillDataToTreeView("MapReduce Result", trvResult, mMapReduceResult.Response); trvResult.DatatreeView.BeginUpdate(); trvResult.DatatreeView.ExpandAll(); trvResult.DatatreeView.EndUpdate(); } catch (Exception ex) { Utility.ExceptionDeal(ex); } }
public static string Distinct(string strKey, List <DataFilter.QueryConditionInputItem> distinctConditionList) { var strResult = string.Empty; var resultList = RuntimeMongoDbContext.GetCurrentCollection() .Distinct(strKey, QueryHelper.GetQuery(distinctConditionList)).ToList(); resultList.Sort(); //防止错误的条件造成的海量数据 var count = 0; foreach (var item in resultList) { if (count == 1000) { strResult = "Too many result,Display first 1000 records" + Environment.NewLine + strResult; break; } strResult += item.ToJson(MongoHelper.JsonWriterSettings) + Environment.NewLine; count++; } strResult = "Distinct Count: " + resultList.Count + Environment.NewLine + Environment.NewLine + strResult; return(strResult); }
/// <summary> /// 插入JS到系统JS库 /// </summary> /// <param name="jsName"></param> /// <param name="jsCode"></param> public static string CreateNewJavascript(string jsName, string jsCode) { var jsCol = RuntimeMongoDbContext.GetCurrentCollection(); //标准的JS库格式未知 if (QueryHelper.IsExistByKey(jsName)) { return(string.Empty); } CommandResult result; try { result = new CommandResult( jsCol.Insert(new BsonDocument().Add(ConstMgr.KeyId, jsName).Add("value", jsCode)).Response); } catch (MongoCommandException ex) { result = new CommandResult(ex.Result); } return(result.Response["err"] == BsonNull.Value ? string.Empty : result.Response["err"].ToString()); }
/// <summary> /// 保存 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmdSave_Click(object sender, EventArgs e) { var savefile = new SaveFileDialog { Filter = Utility.XmlFilter }; if (savefile.ShowDialog() != DialogResult.OK) { return; } // 设置DataFilter if (string.IsNullOrEmpty(txtSql.Text)) { //设置DataFilter SetCurrDataFilter(); } else { _currentDataViewInfo.MDataFilter = SqlHelper.ConvertQuerySql(txtSql.Text, RuntimeMongoDbContext.GetCurrentCollection()); } _currentDataViewInfo.MDataFilter.SaveFilter(savefile.FileName); }
/// <summary> /// 鼠标动作(顶层) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void trvData_MouseClick_Top(object sender, MouseEventArgs e) { if (_isNeedChangeNode) { //在节点展开和关闭后,不能使用这个方法来重新设定SelectedNode trvData.DatatreeView.SelectedNode = trvData.DatatreeView.GetNodeAt(e.Location); } _isNeedChangeNode = true; if (trvData.DatatreeView.SelectedNode == null) { return; } SetCurrentDocument(trvData.DatatreeView.SelectedNode, RuntimeMongoDbContext.GetCurrentCollection()); if (trvData.DatatreeView.SelectedNode.Level == 0) { if (e.Button == MouseButtons.Right) { contextMenuStripMain = new ContextMenuStrip(); //允许删除 DelSelectRecordToolToolStripMenuItem.Enabled = true; contextMenuStripMain.Items.Add(DelSelectRecordToolToolStripMenuItem.Clone()); //允许添加 AddElementToolStripMenuItem.Enabled = true; contextMenuStripMain.Items.Add(AddElementToolStripMenuItem.Clone()); //允许粘贴 PasteElementToolStripMenuItem.Enabled = true; contextMenuStripMain.Items.Add(PasteElementToolStripMenuItem.Clone()); trvData.DatatreeView.ContextMenuStrip = contextMenuStripMain; contextMenuStripMain.Show(trvData.DatatreeView.PointToScreen(e.Location)); } } else { //非顶层元素 trvData_MouseClick_NotTop(e); } }
/// <summary> /// </summary> /// <param name="trvSvrStatus"></param> /// <param name="mongoConnClientLst"></param> public static void FillClientStatusToList(CtlTreeViewColumns trvSvrStatus, Dictionary <string, MongoClient> mongoConnClientLst) { var srvDocList = new List <BsonDocument>(); foreach (var mongoSvrKey in mongoConnClientLst.Keys) { try { var mongoClient = mongoConnClientLst[mongoSvrKey]; //flydreamer提供的代码 // 感谢 魏琼东 的Bug信息,一些命令必须以Admin执行 if (RuntimeMongoDbContext.GetServerConfigBySvrPath(mongoSvrKey).LoginAsAdmin) { var adminDb = mongoClient.GetDatabase(ConstMgr.DatabaseNameAdmin); //Can't Convert IMongoDB To MongoDB var command = new CommandDocument { { CommandHelper.ServerStatusCommand.CommandString, 1 } }; var serverStatusDoc = CommandHelper.ExecuteMongoDBCommand(command, adminDb).Response; srvDocList.Add(serverStatusDoc); } } catch (Exception ex) { Utility.ExceptionDeal(ex); } } UiHelper.FillDataToTreeView("Server Status", trvSvrStatus, srvDocList, 0); //打开第一层 foreach (TreeNode item in trvSvrStatus.DatatreeView.Nodes) { item.Expand(); } }
/// <summary> /// 拖曳终止 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void lstData_DragDrop(object sender, DragEventArgs e) { Array UploadfileList = (Array)e.Data.GetData(DataFormats.FileDrop); if (!MyMessageBox.ShowConfirm("UploadFile", "是否上传" + UploadfileList.Length + "个文件")) { return; } var opt = new Gfs.UpLoadFileOption(); var frm = new FrmGfsOption(); frm.ShowDialog(); opt.AlreadyOpt = frm.Option; opt.DirectorySeparatorChar = frm.DirectorySeparatorChar; opt.FileNameOpt = frm.Filename; opt.IgnoreSubFolder = frm.IgnoreSubFolder; var count = 0; foreach (string UploadFilename in UploadfileList) { if (File.Exists(UploadFilename)) { Gfs.UpLoadFile(UploadFilename, opt, RuntimeMongoDbContext.GetCurrentDataBase()); count++; } else { if (Directory.Exists(UploadFilename)) { var uploadDir = new DirectoryInfo(UploadFilename); UploadFolder(uploadDir, ref count, opt); } } } RefreshGui(); MyMessageBox.ShowMessage("Upload", "Upload Completed! Upload Files Count: " + count); }
/// <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> /// </summary> /// <param name="uploadDir"></param> /// <param name="fileCount"></param> /// <param name="opt"></param> /// <returns>是否继续执行后续的所有操作</returns> private bool UploadFolder(DirectoryInfo uploadDir, ref int fileCount, Gfs.UpLoadFileOption opt) { foreach (var file in uploadDir.GetFiles()) { var rtn = Gfs.UpLoadFile(file.FullName, opt, RuntimeMongoDbContext.GetCurrentDataBase()); switch (rtn) { case Gfs.UploadResult.Complete: fileCount++; break; case Gfs.UploadResult.Skip: if (opt.AlreadyOpt == Gfs.EnumGfsAlready.Stop) { //这个操作返回为False,停止包括父亲过程在内的所有操作 return(false); } break; case Gfs.UploadResult.Exception: return(MyMessageBox.ShowConfirm("Upload Exception", "Is Continue?")); } } if (!opt.IgnoreSubFolder) { foreach (var dir in uploadDir.GetDirectories()) { //递归文件夹操作,如果下层有任何停止的意愿,则立刻停止,并且使上层也立刻停止 var isContinue = UploadFolder(dir, ref fileCount, opt); if (!isContinue) { return(false); } } } return(true); }
/// <summary> /// 数据绑定 /// </summary> private void DataBind() { ChangeEnable(false); try { //数据来源绑定 var db = RuntimeMongoDbContext.GetCurrentDataBase(); var treeNode = new TreeNode(db.Name); foreach (var name in db.GetCollectionNames()) { treeNode.Nodes.Add(name); } TreeNodeBind(treeNode); ComboxBind(comboBoxServer, RuntimeMongoDbContext.MongoConnSvrLst); } catch (Exception exception) { MessageBox.Show(exception.Message); } ChangeEnable(true); }
/// <summary> /// </summary> /// <param name="mIsShow"></param> public void InitByCurrentCollection(bool mIsShow) { var columnList = MongoHelper.GetCollectionSchame(RuntimeMongoDbContext.GetCurrentCollection()); var fieldList = new List <DataFilter.QueryFieldItem>(); foreach (var item in columnList) { //输出配置的初始化 var queryFieldItem = new DataFilter.QueryFieldItem() { ColName = item, IsShow = mIsShow, SortType = DataFilter.SortType.NoSort }; if (queryFieldItem.ColName == ConstMgr.KeyId) { queryFieldItem.IsShow = true; } fieldList.Add(queryFieldItem); } _mQueryFieldList = fieldList; SetFieldList(); }
private void cmdGeoNear_Click(object sender, EventArgs e) { BsonDocument mGeoNearAs = null; bool IsHaystack = chkHaystack.Checked; try { if (IsHaystack) { var geoSearchOption = new GeoHaystackSearchArgs(); geoSearchOption.MaxDistance = double.Parse(NumMaxDistance.Text); geoSearchOption.Limit = (int)NumResultCount.Value; geoSearchOption.Near = new XYPoint(double.Parse(NumGeoX.Text), double.Parse(NumGeoY.Text)); //geoSearch mGeoNearAs = RuntimeMongoDbContext.GetCurrentCollection().GeoHaystackSearchAs <BsonDocument>(geoSearchOption).Response; } else { var geoOption = new GeoNearArgs(); geoOption.DistanceMultiplier = double.Parse(NumDistanceMultiplier.Text); geoOption.MaxDistance = double.Parse(NumMaxDistance.Text); geoOption.Spherical = chkSpherical.Checked; geoOption.Limit = (int)NumResultCount.Value; geoOption.Near = new XYPoint(double.Parse(NumGeoX.Text), double.Parse(NumGeoY.Text)); //geoNear mGeoNearAs = RuntimeMongoDbContext.GetCurrentCollection().GeoNearAs <BsonDocument>(geoOption).Response; } } catch (Exception ex) { Utility.ExceptionDeal(ex); return; } UiHelper.FillDataToTreeView("Result", trvGeoResult, mGeoNearAs); trvGeoResult.DatatreeView.Nodes[0].Expand(); }
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, RuntimeMongoDbContext.GetCurrentJavaScript()); }; if (!GuiConfig.IsUseDefaultLanguage) { cmdSave.Text = GuiConfig.GetText(TextType.CommonSave); cmdSaveLocal.Text = GuiConfig.GetText(TextType.CommonSaveLocal); cmdLoadLocal.Text = GuiConfig.GetText(TextType.QueryActionLoad); } } }
///// <summary> ///// 数据树形被选择后(TOP) ///// </summary> ///// <param name="sender"></param> ///// <param name="e"></param> private void trvData_AfterSelect_Top(object sender, TreeViewEventArgs e) { //InitControlsEnable(); 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> /// 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; } } }
/// <summary> /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void trvData_AfterCollapse(object sender, TreeViewEventArgs e) { trvData.DatatreeView.SelectedNode = e.Node; _isNeedChangeNode = false; SetCurrentDocument(e.Node, RuntimeMongoDbContext.GetCurrentCollection()); }
/// <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> /// 确认 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmdOK_Click(object sender, EventArgs e) { var mongoCol = RuntimeMongoDbContext.GetCurrentCollection(); var query = QueryHelper.GetQuery(GroupConditionList); var groupdoc = new GroupByDocument(); var chartTite = string.Empty; foreach (CheckBox item in panColumn.Controls) { if (!item.Checked) { continue; } groupdoc.Add(item.Name, true); chartTite += item.Name + ","; } chartTite = chartTite.TrimEnd(",".ToCharArray()); var initial = new BsonDocument(); for (var i = 0; i < _conditionCount; i++) { var ctl = (ctlBsonValueTypeName)Controls.Find("BsonEl" + (i + 1), true)[0]; if (ctl.IsSetted) { initial.Add(ctl.GetElement()); } } var reduce = new BsonJavaScript(ctlReduce.Context); var finalize = new BsonJavaScript(ctlFinalize.Context); var resultlst = new List <BsonDocument>(); try { //SkipCnt Reset var result = mongoCol.Group(query, groupdoc, initial, reduce, finalize); //图形化初始化 chartResult.Series.Clear(); chartResult.Titles.Clear(); var seriesResult = new Series("Result"); //防止错误的条件造成的海量数据 var count = 0; foreach (var item in result) { if (count == 1000) { break; } resultlst.Add(item); //必须带有Count元素 var dPoint = new DataPoint(0, (double)item.GetElement("count").Value); seriesResult.Points.Add(dPoint); count++; } ViewHelper.FillJsonDataToTextBox(txtResult, resultlst, 0); if (count == 1001) { txtResult.Text = "Too many result,Display first 1000 records" + Environment.NewLine + txtResult.Text; } txtResult.Select(0, 0); //图形化加载 chartResult.Series.Add(seriesResult); chartResult.Titles.Add(new Title(chartTite)); tabGroup.SelectedIndex = 4; } catch (Exception ex) { Utility.ExceptionDeal(ex, "Exception", "Exception is Happened"); } }
/// <summary> /// 当前对象的MONGO命令 /// </summary> /// <param name="mMongoCommand">命令对象</param> /// <returns></returns> public static CommandResult ExecuteMongoCommand(MongoCommand mMongoCommand) { var resultCommandList = new List <CommandResult>(); var mCommandResult = new CommandResult(new BsonDocument()); switch (mMongoCommand.RunLevel) { case EnumMgr.PathLevel.CollectionAndView: if (string.IsNullOrEmpty(mMongoCommand.CommandString)) { mCommandResult = ExecuteMongoColCommand(mMongoCommand.CmdDocument, RuntimeMongoDbContext.GetCurrentCollection()); } else { mCommandResult = ExecuteMongoColCommand(mMongoCommand.CommandString, RuntimeMongoDbContext.GetCurrentCollection()); } break; case EnumMgr.PathLevel.Database: if (string.IsNullOrEmpty(mMongoCommand.DatabaseName)) { mCommandResult = ExecuteMongoDBCommand(mMongoCommand.CmdDocument, RuntimeMongoDbContext.GetCurrentDataBase()); } else { var db = RuntimeMongoDbContext.GetCurrentClient().GetDatabase(mMongoCommand.DatabaseName); mCommandResult = ExecuteMongoDBCommand(mMongoCommand.CmdDocument, db); } break; case EnumMgr.PathLevel.Instance: mCommandResult = ExecuteMongoSvrCommand(mMongoCommand.CmdDocument, RuntimeMongoDbContext.GetCurrentServer()); break; } resultCommandList.Add(mCommandResult); return(mCommandResult); }
/// <summary> /// Create a DataView Tab /// </summary> private void ViewDataRecord() { //由于Collection 和 Document 都可以触发这个事件,所以,先把Tag以前的标题头去掉 //Collectiong:XXXX 和 Document:XXXX 都统一成 XXXX var dataKey = RuntimeMongoDbContext.SelectTagData; if (MultiTabManger.IsExist(dataKey)) { MultiTabManger.SelectTab(dataKey); return; } var mDataViewInfo = new DataViewInfo { strCollectionPath = RuntimeMongoDbContext.SelectObjectTag, IsReadOnly = RuntimeMongoDbContext.CurrentMongoConnectionconfig.IsReadOnly, }; CtlDataView dataViewctl; switch (RuntimeMongoDbContext.SelectTagType) { case ConstMgr.GridFileSystemTag: dataViewctl = new CtlGfsView(mDataViewInfo); dataViewctl.AllowDrop = true; break; case ConstMgr.UserListTag: dataViewctl = new CtlUserView(mDataViewInfo); break; case ConstMgr.ViewTag: mDataViewInfo.IsView = true; dataViewctl = new CtlDocumentView(mDataViewInfo); break; default: dataViewctl = new CtlDocumentView(mDataViewInfo); break; } dataViewctl.mDataViewInfo = mDataViewInfo; dataViewctl.SelectObjectTag = RuntimeMongoDbContext.SelectObjectTag; dataViewctl.ParentMenu = CollectionToolStripMenuItem; var TabTitle = UiHelper.GetShowName(RuntimeMongoDbContext.GetCurrentDataBaseName(), RuntimeMongoDbContext.GetCurrentCollectionName()); MultiTabManger.AddView(dataViewctl, TabTitle, RuntimeMongoDbContext.SelectTagType); }
/// <summary> /// 是否为合法的数据库名称 /// </summary> /// <param name="strDbName"></param> /// <param name="errMessage"></param> /// <returns></returns> public static bool IsDatabaseNameValid(string strDbName, out string errMessage) { return(RuntimeMongoDbContext.GetCurrentServer().IsDatabaseNameValid(strDbName, out errMessage)); }
/// <summary> /// Is Exist by Key /// </summary> /// <param name="keyValue">KeyValue</param> /// <returns></returns> public static bool IsExistByKey(string keyValue) { var mongoCol = MongoHelper.GetCurrentJsCollection(RuntimeMongoDbContext.GetCurrentDataBase()); return(mongoCol.FindAs <BsonDocument>(Query.EQ(ConstMgr.KeyId, keyValue)).Any()); }
/// <summary> /// 保存 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSave_Click(object sender, EventArgs e) { MongoHelper.ActionDone += (x, y) => MyMessageBox.ShowMessage("ExportImport", y.Message); ExportImport.ExportToFile(_viewinfo, ctlExportFilePicker.SelectedPathOrFileName, _exportType, RuntimeMongoDbContext.GetCurrentCollection()); }
private void RefreshDbStatusChart(string strField) { //图形化初始化 chartResult.Series.Clear(); chartResult.Titles.Clear(); var seriesResult = new Series(strField); foreach (var colName in RuntimeMongoDbContext.GetCurrentDataBase().GetCollectionNames()) { DataPoint colPoint = null; switch (strField) { case "AverageObjectSize": try { if (RuntimeMongoDbContext.GetCurrentDataBase() .GetCollection(colName).GetStats().ObjectCount > 0) { //如果没有任何对象的时候,平均值无法取得 colPoint = new DataPoint(0, RuntimeMongoDbContext.GetCurrentDataBase() .GetCollection(colName) .GetStats() .AverageObjectSize); } else { colPoint = new DataPoint(0, 0); } } catch (Exception ex) { Utility.ExceptionDeal(ex); } break; case "DataSize": colPoint = new DataPoint(0, RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(colName).GetStats().DataSize); break; case "ExtentCount": colPoint = new DataPoint(0, RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(colName).GetStats().ExtentCount); break; //case "Flags": // ColPoint = new DataPoint(0, MongoHelper.Core.RuntimeMongoDBContext.GetCurrentDataBase().GetCollection(colName).GetStats().Flags); // break; case "IndexCount": colPoint = new DataPoint(0, RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(colName).GetStats().IndexCount); break; case "LastExtentSize": colPoint = new DataPoint(0, RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(colName).GetStats().LastExtentSize); break; case "MaxDocuments": // 仅在CappedCollection时候有效 colPoint = new DataPoint(0, RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(colName).GetStats().MaxDocuments); break; case "ObjectCount": colPoint = new DataPoint(0, RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(colName).GetStats().ObjectCount); break; case "PaddingFactor": colPoint = new DataPoint(0, RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(colName).GetStats().PaddingFactor); break; case "StorageSize": colPoint = new DataPoint(0, RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(colName).GetStats().StorageSize); break; default: colPoint = new DataPoint(0, RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(colName).GetStats().StorageSize); break; } colPoint.LegendText = colName; colPoint.LabelToolTip = colName; colPoint.ToolTip = colName; seriesResult.Points.Add(colPoint); } //图形化加载 seriesResult.ChartType = SeriesChartType.Pie; chartResult.Series.Add(seriesResult); chartResult.Titles.Add(new Title(strField)); }
/// <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)); } }
private void RefreshDbStatusChart(string strField) { //图形化初始化 chartResult.Series.Clear(); chartResult.Titles.Clear(); var seriesResult = new Series(strField); var viewlist = RuntimeMongoDbContext.GetCurrentDBViewNameList(); foreach (var colName in RuntimeMongoDbContext.GetCurrentDataBase().GetCollectionNames()) { if (viewlist.Contains(colName)) { continue; } DataPoint colPoint = new DataPoint(0, 0); switch (strField) { case "AverageObjectSize": if (RuntimeMongoDbContext.GetCurrentDataBase() .GetCollection(colName).GetStats().ObjectCount > 0) { //如果没有任何对象的时候,平均值无法取得 colPoint = new DataPoint(0, RuntimeMongoDbContext.GetCurrentDataBase() .GetCollection(colName) .GetStats() .AverageObjectSize); } else { colPoint = new DataPoint(0, 0); } break; case "DataSize": colPoint = new DataPoint(0, RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(colName).GetStats().DataSize); break; case "ExtentCount": colPoint = new DataPoint(0, RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(colName).GetStats().ExtentCount); break; case "IndexCount": colPoint = new DataPoint(0, RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(colName).GetStats().IndexCount); break; case "LastExtentSize": colPoint = new DataPoint(0, RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(colName).GetStats().LastExtentSize); break; case "MaxDocuments": // 仅在CappedCollection时候有效 colPoint = new DataPoint(0, RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(colName).GetStats().MaxDocuments); break; case "ObjectCount": colPoint = new DataPoint(0, RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(colName).GetStats().ObjectCount); break; case "PaddingFactor": colPoint = new DataPoint(0, RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(colName).GetStats().PaddingFactor); break; case "StorageSize": colPoint = new DataPoint(0, RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(colName).GetStats().StorageSize); break; default: colPoint = new DataPoint(0, RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(colName).GetStats().StorageSize); break; } colPoint.LegendText = colName; colPoint.LabelToolTip = colName; colPoint.ToolTip = colName; seriesResult.Points.Add(colPoint); } //图形化加载 seriesResult.ChartType = SeriesChartType.Pie; chartResult.Series.Add(seriesResult); chartResult.Titles.Add(new Title(strField)); }
/// <summary> /// 窗体初始化 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void frmStatus_Load(object sender, EventArgs e) { if (!GuiConfig.IsMono) { Icon = GetSystemIcon.ConvertImgToIcon(Resources.KeyInfo); } GuiConfig.Translateform(this); var strType = RuntimeMongoDbContext.SelectTagType; var docStatus = new BsonDocument(); cmbChartField.Visible = false; chartResult.Visible = false; tempIsDisplayNumberWithKSystem = CtlTreeViewColumns.IsDisplayNumberWithKSystem; CtlTreeViewColumns.IsDisplayNumberWithKSystem = true; switch (strType) { case ConstMgr.ServerTag: case ConstMgr.SingleDbServerTag: if (RuntimeMongoDbContext.GetCurrentServerConfig().LoginAsAdmin) { var StatusList = new List <BsonDocument>(); var Status = CommandExecute.ExecuteMongoSvrCommand(DataBaseCommand.ServerStatusCommand, RuntimeMongoDbContext.GetCurrentServer()).Response; StatusList.Add(Status); try { var ServerDesripter = MongoUtility.ToolKit.MongoHelper.GetCurrentServerDescription(); StatusList.Add(ServerDesripter); } catch (Exception) { //Repl的时候,无法获得 } UiHelper.FillDataToTreeView(strType, trvStatus, StatusList, 0); trvStatus.Height = trvStatus.Height * 2; trvStatus.DatatreeView.Nodes[0].Expand(); trvStatus.DatatreeView.Nodes[1].Expand(); return; } break; case ConstMgr.DatabaseTag: case ConstMgr.SingleDatabaseTag: docStatus = RuntimeMongoDbContext.GetCurrentDataBase().GetStats().Response.ToBsonDocument(); cmbChartField.Visible = true; chartResult.Visible = true; //{{ "db" : "aaaa", // "collections" : 8, // "objects" : 0, // "avgObjSize" : 0.0, // "dataSize" : 0.0, // "storageSize" : 32768.0, // "numExtents" : 0, // "indexes" : 8, // "indexSize" : 32768.0, // "ok" : 1.0 }} var statuspoint = docStatus.AsBsonDocument; //这里其实应该看Collection的Status,不同的引擎所拥有的状态不一样 if (statuspoint.Contains("avgObjSize")) { cmbChartField.Items.Add("AverageObjectSize"); } if (statuspoint.Contains("dataSize")) { cmbChartField.Items.Add("DataSize"); } if (statuspoint.Contains("extentCount")) { cmbChartField.Items.Add("ExtentCount"); } if (statuspoint.Contains("indexes")) { cmbChartField.Items.Add("IndexCount"); } if (statuspoint.Contains("lastExtentSize")) { cmbChartField.Items.Add("LastExtentSize"); } //MaxDocuments仅在CapedCollection时候有效 if (statuspoint.Contains("MaxDocuments")) { cmbChartField.Items.Add("MaxDocuments"); } if (statuspoint.Contains("ObjectCount")) { cmbChartField.Items.Add("ObjectCount"); } if (statuspoint.Contains("PaddingFactor")) { cmbChartField.Items.Add("PaddingFactor"); } if (statuspoint.Contains("storageSize")) { cmbChartField.Items.Add("StorageSize"); } cmbChartField.SelectedIndex = 0; try { RefreshDbStatusChart("StorageSize"); } catch (Exception ex) { Utility.ExceptionDeal(ex); } break; case ConstMgr.CollectionTag: //TODO:这里无法看到Collection的Document Validation信息。 docStatus = RuntimeMongoDbContext.GetCurrentCollection().GetStats().Response.ToBsonDocument(); //图形化初始化 chartResult.Visible = true; chartResult.Series.Clear(); chartResult.Titles.Clear(); var seriesResult = new Series("Usage"); var dpDataSize = new DataPoint(0, RuntimeMongoDbContext.GetCurrentCollection().GetStats().DataSize) { LegendText = "DataSize", LegendToolTip = "DataSize", ToolTip = "DataSize" }; seriesResult.Points.Add(dpDataSize); var dpTotalIndexSize = new DataPoint(0, RuntimeMongoDbContext.GetCurrentCollection().GetStats().TotalIndexSize) { LegendText = "TotalIndexSize", LegendToolTip = "TotalIndexSize", ToolTip = "TotalIndexSize" }; seriesResult.Points.Add(dpTotalIndexSize); var dpFreeSize = new DataPoint(0, RuntimeMongoDbContext.GetCurrentCollection().GetStats().StorageSize - RuntimeMongoDbContext.GetCurrentCollection().GetStats().TotalIndexSize - RuntimeMongoDbContext.GetCurrentCollection().GetStats().DataSize) { LegendText = "FreeSize", LegendToolTip = "FreeSize", ToolTip = "FreeSize" }; seriesResult.Points.Add(dpFreeSize); seriesResult.ChartType = SeriesChartType.Pie; chartResult.Series.Add(seriesResult); chartResult.Titles.Add(new Title("Usage")); break; default: if (RuntimeMongoDbContext.GetCurrentServerConfig().LoginAsAdmin) { docStatus = CommandExecute.ExecuteMongoSvrCommand(DataBaseCommand.ServerStatusCommand, RuntimeMongoDbContext.GetCurrentServer()).Response; trvStatus.Height = trvStatus.Height * 2; } break; } UiHelper.FillDataToTreeView(strType, trvStatus, docStatus); trvStatus.DatatreeView.Nodes[0].Expand(); }
/// <summary> /// Load /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void frmUser_Load(object sender, EventArgs e) { if (_modifyName != string.Empty) { Text = "Change User Config"; txtUserName.Enabled = false; txtUserName.Text = _modifyName; var userInfo = RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(ConstMgr.CollectionNameUsers) .FindOneAs <BsonDocument>(Query.EQ("user", _modifyName)); BsonElement role; if (userInfo.TryGetElement("roles", out role)) { var roles = role.Value.AsBsonArray; foreach (var _role in roles) { if (_role.IsBsonDocument) { _roleList.Add(new Role.GrantRole() { Role = _role.AsBsonDocument.GetElement("role").Value.ToString(), Db = _role.AsBsonDocument.GetElement("db").Value.ToString() }); } else { _roleList.Add(new Role.GrantRole() { Role = _role.ToString(), }); } } } RefreshRoles(); BsonElement custom; if (userInfo.TryGetElement("customData", out custom)) { customData = custom.Value.AsBsonDocument; lblcustomDocument.Text = "Custom Document:" + customData.ToString(); } } GuiConfig.Translateform(this); if (!GuiConfig.IsUseDefaultLanguage) { if (_modifyName == string.Empty) { if (!GuiConfig.IsMono) { Icon = GetSystemIcon.ConvertImgToIcon(Resources.AddUserToDB); } Text = GuiConfig.GetText(_isAdmin ? "MainMenu.OperationServerAddUserToAdmin" : "MainMenu.OperationDatabaseAddUser"); } else { if (!GuiConfig.IsMono) { Icon = GetSystemIcon.ConvertImgToIcon(Resources.DBkey); } Text = GuiConfig.GetText("CommonChangePassword"); } } }