/// <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); cmbShard.Items.Add(lst.Value); } MongoCollection ColShards = mongoDb.GetCollection("shards"); RefreshShardingZone(); RefreshShardingRange(); }
/// <summary> /// 修改用户 /// </summary> /// <param name="user"></param> public static CommandResult UpdateUser(MongoUserEx user, bool IsAdmin) { var result = Command.DataBaseCommand.updateUser(user, IsAdmin ? RuntimeMongoDbContext.GetCurrentServer() .GetDatabase(ConstMgr.DatabaseNameAdmin) : RuntimeMongoDbContext.GetCurrentDataBase()); return(result); }
private void M_Tick(object sender, EventArgs e) { var docStatus = CommandHelper.ExecuteMongoSvrCommand(CommandHelper.ServerStatusCommand, RuntimeMongoDbContext.GetCurrentServer()).Response; var queryPoint = new DataPoint(); queryPoint.SetValueXY(DateTime.Now.ToString(CultureInfo.InvariantCulture), docStatus.GetElement("opcounters").Value.AsBsonDocument.GetElement("query").Value); MonitorGrap.Series[0].Points.Add(queryPoint); var insertPoint = new DataPoint(); insertPoint.SetValueXY(DateTime.Now.ToString(CultureInfo.InvariantCulture), docStatus.GetElement("opcounters").Value.AsBsonDocument.GetElement("insert").Value); MonitorGrap.Series[1].Points.Add(insertPoint); var updatePoint = new DataPoint(); updatePoint.SetValueXY(DateTime.Now.ToString(CultureInfo.InvariantCulture), docStatus.GetElement("opcounters").Value.AsBsonDocument.GetElement("update").Value); MonitorGrap.Series[2].Points.Add(updatePoint); var deletePoint = new DataPoint(); deletePoint.SetValueXY(DateTime.Now.ToString(CultureInfo.InvariantCulture), docStatus.GetElement("opcounters").Value.AsBsonDocument.GetElement("delete").Value); MonitorGrap.Series[3].Points.Add(deletePoint); }
/// <summary> /// Add A Custom User /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnAddCustomRole_Click(object sender, EventArgs e) { var r = new Role(); if (RuntimeMongoDbContext.GetCurrentDataBase() != null) { r.Database = RuntimeMongoDbContext.GetCurrentDataBase().Name; } else { r.Database = ConstMgr.DatabaseNameAdmin; } r.Rolename = txtRolename.Text; r.Privileges = new Role.Privilege[_privilegeList.Count]; for (var i = 0; i < _privilegeList.Count; i++) { r.Privileges[i] = _privilegeList[i]; } r.Roles = new Role.GrantRole[_roleList.Count]; for (var i = 0; i < _roleList.Count; i++) { r.Roles[i] = _roleList[i]; } //这个时候可能没有GetCurrentDataBase,如果是Admin var result = DataBaseCommand.createRole(RuntimeMongoDbContext.GetCurrentServer().GetDatabase(r.Database), r); if (result.Ok) { MyMessageBox.ShowEasyMessage("Succeed", "Add Role OK"); } else { MyMessageBox.ShowMessage("Error", "Add Role Error", result.Response.ToString()); } }
/// <summary> /// Load事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void frmCollectionIndex_Load(object sender, EventArgs e) { GuiConfig.Translateform(this); if (!GuiConfig.IsUseDefaultLanguage) { lstIndex.Columns.Add(GuiConfig.GetText(TextType.IndexName)); lstIndex.Columns.Add(GuiConfig.GetText(TextType.IndexVersion)); lstIndex.Columns.Add(GuiConfig.GetText(TextType.IndexKeys)); lstIndex.Columns.Add(GuiConfig.GetText(TextType.IndexNameSpace)); lstIndex.Columns.Add(GuiConfig.GetText(TextType.IndexBackground)); lstIndex.Columns.Add(GuiConfig.GetText(TextType.IndexSparse)); lstIndex.Columns.Add(GuiConfig.GetText(TextType.IndexUnify)); lstIndex.Columns.Add(GuiConfig.GetText(TextType.IndexRepeatDel)); lstIndex.Columns.Add(GuiConfig.GetText(TextType.IndexExpireData)); } else { lstIndex.Columns.Add("Name"); lstIndex.Columns.Add("Version"); lstIndex.Columns.Add("IndexKey"); lstIndex.Columns.Add("NameSpace"); lstIndex.Columns.Add("BackGround"); lstIndex.Columns.Add("Sparse"); lstIndex.Columns.Add("Unify"); lstIndex.Columns.Add("DroppedDups"); lstIndex.Columns.Add("Expire Data"); } //2.2.2 开始支持TTL索引 if (RuntimeMongoDbContext.GetCurrentServer().BuildInfo.Version < new Version(2, 2, 2, 0)) { chkExpireData.Enabled = false; numTTL.Enabled = false; } RefreshList(); }
/// <summary> /// 移除主机 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmdRemoveHost_Click(object sender, EventArgs e) { //使用修改系统数据集和repleSetReconfig MongoCollection replsetCol = RuntimeMongoDbContext.GetCurrentServer(). GetDatabase(ConstMgr.DatabaseNameLocal).GetCollection("system.replset"); var replsetDoc = replsetCol.FindOneAs <BsonDocument>(); var memberlist = replsetDoc.GetElement("members").Value.AsBsonArray; var strHost = lstHost.SelectedItem.ToString(); for (var i = 0; i < memberlist.Count; i++) { if (memberlist[i].AsBsonDocument.GetElement("host").Value.ToString() != strHost) { continue; } memberlist.RemoveAt(i); break; } try { CommandHelper.ReconfigReplsetServer(RuntimeMongoDbContext.GetCurrentServer(), replsetDoc); //由于这个命令会触发异常,所以没有Result可以获得 RuntimeMongoDbContext.CurrentMongoConnectionconfig.ReplsetList.Remove(strHost); lstHost.Items.Remove(lstHost.SelectedItem); MyMessageBox.ShowMessage("Remove Memeber", "Please wait one minute and check the server list"); } catch (Exception ex) { Utility.ExceptionDeal(ex); } }
/// <summary> /// 运行插件 /// </summary> /// <param name="plugInKeyCode"></param> public static void RunPlugIn(string plugInKeyCode) { var mPlug = PlugInList[plugInKeyCode]; switch (mPlug.RunLv) { case PlugInBase.PathLv.ConnectionLv: mPlug.PlugObj = RuntimeMongoDbContext.GetCurrentServer(); break; case PlugInBase.PathLv.InstanceLv: mPlug.PlugObj = RuntimeMongoDbContext.GetCurrentServer(); break; case PlugInBase.PathLv.DatabaseLv: mPlug.PlugObj = RuntimeMongoDbContext.GetCurrentDataBase(); break; case PlugInBase.PathLv.CollectionLv: mPlug.PlugObj = RuntimeMongoDbContext.GetCurrentCollection(); break; case PlugInBase.PathLv.DocumentLv: break; } mPlug.Run(); }
/// <summary> /// Refresh Data /// </summary> public override void RefreshGui() { Clear(); mDataViewInfo.SkipCnt = 0; RuntimeMongoDbContext.SelectObjectTag = mDataViewInfo.strCollectionPath; var datalist = DataViewInfo.GetDataList(ref mDataViewInfo, RuntimeMongoDbContext.GetCurrentServer()); ViewHelper.FillDataToControl(datalist, DataShower, mDataViewInfo); InitControlsEnable(); SetDataNav(); if (mDataViewInfo.Query != string.Empty) { txtQuery.Text = mDataViewInfo.Query; if (!tabDataShower.TabPages.Contains(tabQuery)) { tabDataShower.TabPages.Add(tabQuery); } } else { if (tabDataShower.TabPages.Contains(tabQuery)) { tabDataShower.TabPages.Remove(tabQuery); } } IsNeedRefresh = false; }
/// <summary> /// 修改用户 /// </summary> /// <param name="user"></param> public static void UpdateUser(MongoUserEx user, bool IsAdmin) { var result = Command.DataBaseCommand.updateUser(user, IsAdmin ? RuntimeMongoDbContext.GetCurrentServer() .GetDatabase(ConstMgr.DatabaseNameAdmin) : RuntimeMongoDbContext.GetCurrentDataBase()); MyMessageBox.ShowConfirm("Update User", result.Response.ToString()); }
//从权限上看,clusterAdmin是必须的 //但是能够建立数据库,不表示能够看到里面的内容! //dbAdmin可以访问数据库。 //clusterAdmin能创建数据库但是不能访问数据库。 /// <summary> /// 数据库操作 /// </summary> /// <param name="strObjTag"></param> /// <param name="dbName"></param> /// <param name="func"></param> /// <returns></returns> public static string DataBaseOpration(string strObjTag, string dbName, Oprcode func) { var mongoSvr = RuntimeMongoDbContext.GetCurrentServer(); var rtnResult = string.Empty; TagInfo.GetTagPath(strObjTag); if (mongoSvr == null) { return(rtnResult); } var db = mongoSvr.GetDatabase(dbName); switch (func) { case Oprcode.Drop: if (mongoSvr.DatabaseExists(dbName)) { var result = mongoSvr.DropDatabase(dbName); return(!result.Response.Contains("err") ? string.Empty : result.Response["err"].ToString()); } break; case Oprcode.Repair: //其实Repair的入口不在这个方法里面 CommandHelper.ExecuteMongoDBCommand(CommandHelper.RepairDatabaseCommand, mongoSvr.GetDatabase(dbName)); break; } return(rtnResult); }
/// <summary> /// 加载 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void frmAddRole_Load(object sender, EventArgs e) { Common.UIAssistant.FillComberWithEnum(cmbResourceType, typeof(MongoResource.ResourceType)); var dbs = RuntimeMongoDbContext.GetCurrentServer().GetDatabaseNames(); Common.UIAssistant.FillComberWithArray(cmbDatabase, dbs, false); Common.UIAssistant.FillComberWithEnum(cmbActionGroup, typeof(MongoAction.ActionGroup)); GuiConfig.Translateform(this); }
/// <summary> /// /// </summary> /// <returns></returns> public static MongoRestoreInfo GetMongoRestoreInfo() { var mongoRestore = new MongoRestoreInfo(); var mongosrv = RuntimeMongoDbContext.GetCurrentServer().Instance; mongoRestore.HostAddr = mongosrv.Address.Host; mongoRestore.Port = mongosrv.Address.Port; return(mongoRestore); }
/// <summary> /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmbDatabase_SelectedIndexChanged(object sender, EventArgs e) { cmbCollection.Text = string.Empty; cmbCollection.Items.Clear(); foreach ( var item in RuntimeMongoDbContext.GetCurrentServer().GetDatabase(cmbDatabase.Text).GetCollectionNames()) { cmbCollection.Items.Add(item); } }
private void frmReplsetMgr_Load(object sender, EventArgs e) { GuiConfig.Translateform(this); var server = RuntimeMongoDbContext.GetCurrentServer(); foreach (var item in server.Instances) { lstHost.Items.Add(item.Address.ToString()); } }
/// <summary> /// Remove A User From Admin database /// </summary> /// <param name="strUser">UserName</param> public static void RemoveUserFromSystem(string strUser, bool isAdmin) { MongoCollection users; users = isAdmin ? RuntimeMongoDbContext.GetCurrentServer() .GetDatabase(ConstMgr.DatabaseNameAdmin) .GetCollection(ConstMgr.CollectionNameUsers) : RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(ConstMgr.CollectionNameUsers); users.Remove(Query.EQ("user", strUser)); }
public static MongoImportExportInfo GetImportExportInfo() { var mongoImportExport = new MongoImportExportInfo(); var mongosrv = RuntimeMongoDbContext.GetCurrentServer().Instance; mongoImportExport.HostAddr = mongosrv.Address.Host; mongoImportExport.Port = mongosrv.Address.Port; mongoImportExport.DbName = RuntimeMongoDbContext.GetCurrentDataBaseName(); mongoImportExport.CollectionName = RuntimeMongoDbContext.GetCurrentCollectionName(); return(mongoImportExport); }
/// <summary> /// 将值设定到图表 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SetValue(object sender, EventArgs e) { var docStatus = CommandExecute.ExecuteMongoSvrCommand(DataBaseCommand.ServerStatusCommand, RuntimeMongoDbContext.GetCurrentServer()).Response; foreach (var item in CatalogDetailDic.Keys) { var queryPoint = new DataPoint(); queryPoint.SetValueXY(DateTime.Now.ToString(CultureInfo.InvariantCulture), SystemStatus.GetValue(docStatus, CatalogDetailDic[item])); MonitorGrap.Series[item.Split(".".ToCharArray())[1]].Points.Add(queryPoint); } }
/// <summary> /// 选择数据库变更 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmbDatabase_SelectedIndexChanged(object sender, EventArgs e) { cmbCollection.Text = string.Empty; cmbCollection.Items.Clear(); if (cmbDatabase.SelectedIndex == 0) { Common.UIAssistant.FillComberWithArray(cmbCollection, new List <string>(), false); return; } var cols = RuntimeMongoDbContext.GetCurrentServer().GetDatabase(cmbDatabase.Text).GetCollectionNames(); Common.UIAssistant.FillComberWithArray(cmbCollection, cols, false); }
/// <summary> /// 数据库操作 /// </summary> /// <param name="strObjTag"></param> /// <param name="dbName"></param> /// <param name="func"></param> /// <returns></returns> public static string DataBaseOpration(string strObjTag, string dbName, Oprcode func) { var mongoSvr = RuntimeMongoDbContext.GetCurrentServer(); var rtnResult = string.Empty; var tag = TagInfo.GetTagPath(strObjTag); if (mongoSvr == null) { return(rtnResult); } switch (func) { case Oprcode.Create: if (!mongoSvr.DatabaseExists(dbName)) { //从权限上看,clusterAdmin是必须的 //但是能够建立数据库,不表示能够看到里面的内容! //dbAdmin可以访问数据库。 //clusterAdmin能创建数据库但是不能访问数据库。 try { //Driver 2.0.1 //如果没有后续对于db的操作,则数据库无法新建 var db = mongoSvr.GetDatabase(dbName); db.CreateCollection("demo"); } catch (Exception ex) { //如果使用没有dbAdmin权限的clusterAdmin。。。。 Utility.ExceptionDeal(ex); } } break; case Oprcode.Drop: if (mongoSvr.DatabaseExists(dbName)) { var result = mongoSvr.DropDatabase(dbName); return(!result.Response.Contains("err") ? string.Empty : result.Response["err"].ToString()); } break; case Oprcode.Repair: //其实Repair的入口不在这个方法里面 CommandHelper.ExecuteMongoDBCommand(CommandHelper.RepairDatabaseCommand, mongoSvr.GetDatabase(dbName)); break; } return(rtnResult); }
/// <summary> /// 重新加载数据 /// </summary> private void ReloadData() { if (mDataViewInfo == null) { return; } Clear(); RuntimeMongoDbContext.SelectObjectTag = mDataViewInfo.strCollectionPath; var datalist = DataViewInfo.GetDataList(ref mDataViewInfo, RuntimeMongoDbContext.GetCurrentServer()); ViewHelper.FillDataToControl(datalist, DataShower, mDataViewInfo); SetDataNav(); IsNeedRefresh = false; }
/// <summary> /// get current Server Information /// </summary> /// <returns></returns> public static BsonDocument GetCurrentServerDescription() { var mongosvr = RuntimeMongoDbContext.GetCurrentServer(); //Repl的时候 mongosvr.Instance 无效 var Description = mongosvr.Instance; var DescriptionDoc = new BsonDocument(); DescriptionDoc.Add(new BsonElement(nameof(Description.IsArbiter), Description.IsArbiter)); DescriptionDoc.Add(new BsonElement(nameof(Description.IsPrimary), Description.IsPrimary)); DescriptionDoc.Add(new BsonElement(nameof(Description.IsSecondary), Description.IsSecondary)); DescriptionDoc.Add(new BsonElement(nameof(Description.Address), Description.Address.ToString())); DescriptionDoc.Add(new BsonElement(nameof(Description.BuildInfo.VersionString), Description.BuildInfo.VersionString)); return(DescriptionDoc); }
public static MongoDumpInfo GetMongoDump(bool isDb) { var mongoDump = new MongoDumpInfo(); var mongosrv = RuntimeMongoDbContext.GetCurrentServer().Instance; mongoDump.HostAddr = mongosrv.Address.Host; mongoDump.Port = mongosrv.Address.Port; mongoDump.DbName = RuntimeMongoDbContext.GetCurrentDataBaseName(); if (!isDb) { mongoDump.CollectionName = RuntimeMongoDbContext.GetCurrentCollectionName(); } return(mongoDump); }
/// <summary> /// get current Server Information /// </summary> /// <returns></returns> public static string GetCurrentSvrInfo() { var mongosvr = RuntimeMongoDbContext.GetCurrentServer(); var rtnSvrInfo = "IsArbiter:" + mongosvr.Instance.IsArbiter + Environment.NewLine; rtnSvrInfo += "IsPrimary:" + mongosvr.Instance.IsPrimary + Environment.NewLine; rtnSvrInfo += "IsSecondary:" + mongosvr.Instance.IsSecondary + Environment.NewLine; rtnSvrInfo += "Address:" + mongosvr.Instance.Address + Environment.NewLine; if (mongosvr.Instance.BuildInfo != null) { rtnSvrInfo += "VersionString:" + mongosvr.Instance.BuildInfo.VersionString + Environment.NewLine; } return(rtnSvrInfo); }
/// <summary> /// 当前对象的MONGO命令 /// </summary> /// <param name="mMongoCommand">命令对象</param> /// <param name="Obj"></param> /// <returns></returns> public static CommandResult ExecuteMongoCommand(MongoCommand mMongoCommand) { var resultCommandList = new List <CommandResult>(); var mCommandResult = new CommandResult(new BsonDocument()); try { switch (mMongoCommand.RunLevel) { case EnumMgr.PathLevel.Collection: if (string.IsNullOrEmpty(mMongoCommand.CommandString)) { mCommandResult = ExecuteMongoColCommand(mMongoCommand.CmdDocument, RuntimeMongoDbContext.GetCurrentCollection()); } else { mCommandResult = ExecuteMongoColCommand(mMongoCommand.CommandString, RuntimeMongoDbContext.GetCurrentCollection()); } break; case EnumMgr.PathLevel.Database: mCommandResult = ExecuteMongoDBCommand(mMongoCommand.CmdDocument, RuntimeMongoDbContext.GetCurrentDataBase()); break; case EnumMgr.PathLevel.Instance: mCommandResult = ExecuteMongoSvrCommand(mMongoCommand.CmdDocument, RuntimeMongoDbContext.GetCurrentServer()); break; default: break; } resultCommandList.Add(mCommandResult); } catch (IOException ex) { Utility.ExceptionDeal(ex, mMongoCommand.CommandString, "IOException,Try to set Socket TimeOut more long at connection config"); } catch (Exception ex) { Utility.ExceptionDeal(ex, mMongoCommand.CommandString); } return(mCommandResult); }
/// <summary> /// frmUser /// </summary> /// <param name="isAdmin"></param> public FrmUser(bool isAdmin) { InitializeComponent(); _isAdmin = isAdmin; foreach (var item in RuntimeMongoDbContext.GetCurrentServer().GetDatabaseNames()) { cmbDB.Items.Add(item); } if (!isAdmin) { //Admin以外的不能有otherDBRoles Width = Width / 2; } userRoles.IsAdmin = isAdmin; }
/// <summary> /// 新建数据库 /// 数据库必须有一个数据集,如果没有数据集的话,则数据库会被回收掉 /// </summary> /// <param name="dbName"></param> /// <param name="CollectionName"></param> /// <returns></returns> public static string CreateDataBaseWithInitCollection(string dbName, string CollectionName) { var mongoSvr = RuntimeMongoDbContext.GetCurrentServer(); var rtnResult = string.Empty; if (mongoSvr == null) { return(rtnResult); } if (!mongoSvr.DatabaseExists(dbName)) { var db = mongoSvr.GetDatabase(dbName); db.CreateCollection(CollectionName); } return(rtnResult); }
//从权限上看,clusterAdmin是必须的 //但是能够建立数据库,不表示能够看到里面的内容! //dbAdmin可以访问数据库。 //clusterAdmin能创建数据库但是不能访问数据库。 /// <summary> /// 数据库操作 /// </summary> /// <param name="strObjTag"></param> /// <param name="dbName"></param> /// <param name="func"></param> /// <returns></returns> public static string DropDatabase(string strObjTag, string dbName) { var mongoSvr = RuntimeMongoDbContext.GetCurrentServer(); var rtnResult = string.Empty; TagInfo.GetTagPath(strObjTag); if (mongoSvr == null) { return(rtnResult); } if (mongoSvr.DatabaseExists(dbName)) { var result = mongoSvr.DropDatabase(dbName); return(!result.Response.Contains("err") ? string.Empty : result.Response["err"].ToString()); } return(rtnResult); }
/// <summary> /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void frmAddRole_Load(object sender, EventArgs e) { cmbResourceType.Items.Clear(); foreach (var item in Enum.GetNames(typeof(Resource.ResourceType))) { cmbResourceType.Items.Add(item); } cmbDatabase.Items.Clear(); foreach (var item in RuntimeMongoDbContext.GetCurrentServer().GetDatabaseNames()) { cmbDatabase.Items.Add(item); } foreach (var item in Enum.GetValues(typeof(MongoDbAction.ActionGroup))) { cmbActionGroup.Items.Add(item.ToString().Replace("_", " ")); } }
/// <summary> /// 换页操作 /// </summary> /// <param name="pageChangeMode"></param> /// <param name="mDataViewInfo"></param> /// <param name="dataShower"></param> public static void PageChanged(PageChangeOpr pageChangeMode, ref DataViewInfo mDataViewInfo, List <Control> dataShower) { switch (pageChangeMode) { case PageChangeOpr.FirstPage: mDataViewInfo.SkipCnt = 0; break; case PageChangeOpr.LastPage: if (mDataViewInfo.CurrentCollectionTotalCnt % mDataViewInfo.LimitCnt == 0) { //没有余数的时候,600 % 100 == 0 => Skip = 600-100 = 500 mDataViewInfo.SkipCnt = mDataViewInfo.CurrentCollectionTotalCnt - mDataViewInfo.LimitCnt; } else { // 630 % 100 == 30 => Skip = 630-30 = 600 mDataViewInfo.SkipCnt = mDataViewInfo.CurrentCollectionTotalCnt - mDataViewInfo.CurrentCollectionTotalCnt % mDataViewInfo.LimitCnt; } break; case PageChangeOpr.NextPage: mDataViewInfo.SkipCnt += mDataViewInfo.LimitCnt; if (mDataViewInfo.SkipCnt >= mDataViewInfo.CurrentCollectionTotalCnt) { mDataViewInfo.SkipCnt = mDataViewInfo.CurrentCollectionTotalCnt - 1; } break; case PageChangeOpr.PrePage: mDataViewInfo.SkipCnt -= mDataViewInfo.LimitCnt; if (mDataViewInfo.SkipCnt < 0) { mDataViewInfo.SkipCnt = 0; } break; default: break; } var datalist = DataViewInfo.GetDataList(ref mDataViewInfo, RuntimeMongoDbContext.GetCurrentServer()); FillDataToControl(datalist, dataShower, mDataViewInfo); }
/// <summary> /// get current Server Information /// </summary> /// <returns></returns> public static string GetCurrentSvrInfo() { var mongosvr = RuntimeMongoDbContext.GetCurrentServer(); var rtnSvrInfo = "IsArbiter:" + mongosvr.Instance.IsArbiter + Environment.NewLine; rtnSvrInfo += "IsPrimary:" + mongosvr.Instance.IsPrimary + Environment.NewLine; rtnSvrInfo += "IsSecondary:" + mongosvr.Instance.IsSecondary + Environment.NewLine; rtnSvrInfo += "Address:" + mongosvr.Instance.Address + Environment.NewLine; if (mongosvr.Instance.BuildInfo != null) { //Before mongo2.0.2 BuildInfo will be null rtnSvrInfo += "VersionString:" + mongosvr.Instance.BuildInfo.VersionString + Environment.NewLine; //remove from mongodrvier 2.0.0 //rtnSvrInfo += "SysInfo:" + mongosvr.Instance.BuildInfo.SysInfo + Environment.NewLine; } return(rtnSvrInfo); }