/// <summary> /// 将数据放入TreeView里进行展示 /// </summary> /// <param name="collectionName"></param> /// <param name="trvData" /> /// <param name="dataList"></param> public static void FillDataToTreeView(string collectionName, CtlTreeViewColumns trvData, BsonDocument dataList) { var docList = new List <BsonDocument>(); docList.Add(dataList); FillDataToTreeView(collectionName, trvData, docList, 0); }
/// <summary> /// fill Collection status to ListView /// </summary> /// <param name="lstData"></param> /// <param name="mongoConnSvrLst"></param> public static void FillCollectionStatusToList(CtlTreeViewColumns lstData, Dictionary <string, MongoServer> mongoConnSvrLst) { var dbStatusList = new List <BsonDocument>(); foreach (var mongoSvrKey in mongoConnSvrLst.Keys) { var mongoSvr = mongoConnSvrLst[mongoSvrKey]; var databaseNameList = mongoSvr.GetDatabaseNames().ToList(); foreach (var strDbName in databaseNameList) { var mongoDb = mongoSvr.GetDatabase(strDbName); var colNameList = mongoDb.GetCollectionNames().ToList(); foreach (var strColName in colNameList) { try { //过滤掉View var collectionStatus = mongoDb.GetCollection(strColName).GetStats(); dbStatusList.Add(collectionStatus.Response); } catch (Exception ex) { } } } } UiHelper.FillDataToTreeView("Collection Status", lstData, dbStatusList, 0); }
/// <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> /// Fill Database status to ListView /// </summary> /// <param name="lstSvr"></param> /// <param name="mongoConnSvrLst"></param> public static void FillDataBaseStatusToList(CtlTreeViewColumns lstSvr, Dictionary <string, MongoServer> mongoConnSvrLst) { var dbStatusList = new List <BsonDocument>(); foreach (var mongoSvrKey in mongoConnSvrLst.Keys) { if (!MongoConnectionConfig.MongoConfig.ConnectionList[mongoSvrKey].Health) { continue; } try { var mongoSvr = mongoConnSvrLst[mongoSvrKey]; var databaseNameList = mongoSvr.GetDatabaseNames().ToList(); foreach (var strDbName in databaseNameList) { var mongoDb = mongoSvr.GetDatabase(strDbName); var dbStatus = mongoDb.GetStats(); dbStatusList.Add(dbStatus.Response); } } catch (Exception ex) { Utility.ExceptionDeal(ex); } } UiHelper.FillDataToTreeView("DataBase Status", lstSvr, dbStatusList, 0); }
/// <summary> /// fill Collection status to ListView /// </summary> /// <param name="lstData"></param> /// <param name="mongoConnSvrLst"></param> public static void FillCollectionStatusToList(CtlTreeViewColumns lstData, Dictionary <string, MongoServer> mongoConnSvrLst) { var dbStatusList = new List <BsonDocument>(); foreach (var mongoSvrKey in mongoConnSvrLst.Keys) { if (!MongoConnectionConfig.MongoConfig.ConnectionList[mongoSvrKey].Health) { continue; } var mongoSvr = mongoConnSvrLst[mongoSvrKey]; var databaseNameList = mongoSvr.GetDatabaseNames().ToList(); foreach (var strDbName in databaseNameList) { var mongoDb = mongoSvr.GetDatabase(strDbName); var viewlist = new List <string>(); //获得View列表 if (mongoDb.CollectionExists(ConstMgr.CollectionNameSystemViews)) { foreach (var viewdoc in mongoDb.GetCollection(ConstMgr.CollectionNameSystemViews).FindAll()) { viewlist.Add(viewdoc.GetElement(ConstMgr.KeyId).Value.AsString); } } var colNameList = mongoDb.GetCollectionNames().ToList(); foreach (var strColName in colNameList) { //过滤掉View,View无法读取状态 if (viewlist.Contains(strDbName + "." + strColName)) { continue; } try { var collectionStatus = mongoDb.GetCollection(strColName).GetStats(); dbStatusList.Add(collectionStatus.Response); } catch (Exception ex) { Utility.ExceptionDeal(ex); } } } } UiHelper.FillDataToTreeView("Collection Status", lstData, dbStatusList, 0); }
/// <summary> /// Fill Database status to ListView /// </summary> /// <param name="lstSvr"></param> /// <param name="mongoConnSvrLst"></param> public static void FillDataBaseStatusToList(CtlTreeViewColumns lstSvr, Dictionary<string, MongoServer> mongoConnSvrLst) { var dbStatusList = new List<BsonDocument>(); foreach (var mongoSvrKey in mongoConnSvrLst.Keys) { var mongoSvr = mongoConnSvrLst[mongoSvrKey]; var databaseNameList = mongoSvr.GetDatabaseNames().ToList(); foreach (var strDbName in databaseNameList) { var mongoDb = mongoSvr.GetDatabase(strDbName); var dbStatus = mongoDb.GetStats(); dbStatusList.Add(dbStatus.Response); } } UiHelper.FillDataToTreeView("DataBase Status", lstSvr, dbStatusList, 0); }
/// <summary> /// Fill Database status to ListView /// </summary> /// <param name="lstSvr"></param> public static void FillDataBaseStatusToList(CtlTreeViewColumns lstSvr, Dictionary <string, MongoServer> mongoConnSvrLst) { var dbStatusList = new List <BsonDocument>(); foreach (var mongoSvrKey in mongoConnSvrLst.Keys) { var mongoSvr = mongoConnSvrLst[mongoSvrKey]; var databaseNameList = mongoSvr.GetDatabaseNames().ToList(); foreach (var strDbName in databaseNameList) { var mongoDb = mongoSvr.GetDatabase(strDbName); var dbStatus = mongoDb.GetStats(); dbStatusList.Add(dbStatus.Response); } } UiHelper.FillDataToTreeView("DataBase Status", lstSvr, dbStatusList, 0); }
/// <summary> /// 将数据放入TreeView里进行展示 /// </summary> /// <param name="collectionName"></param> /// <param name="trvData"></param> /// <param name="dataList"></param> /// <param name="mSkip"></param> public static void FillDataToTreeView(string collectionName, CtlTreeViewColumns trvData, List <BsonDocument> dataList, int mSkip) { trvData.ContentData = dataList; trvData.DatatreeView.BeginUpdate(); trvData.DatatreeView.Nodes.Clear(); var skipCnt = mSkip; var count = 1; foreach (var item in dataList) { var dataNode = new TreeNode(collectionName + "[" + (skipCnt + count) + "]"); //这里保存真实的主Key数据,删除的时候使用 switch (collectionName) { case ConstMgr.CollectionNameGfsFiles: dataNode.Tag = item.GetElement(1).Value; break; case ConstMgr.CollectionNameUser: dataNode.Tag = item.GetElement(1).Value; break; //case COLLECTION_NAME_ROLE: // dataNode.Tag = item.GetElement(1).Value; // break; default: //SelectDocId属性的设置, //2012/03/19 不一定id是在第一位 //这里是为了操作顶层节点的删除,修改用的,所以必须要放item.GetElement(0).Value; BsonElement id; item.TryGetElement(ConstMgr.KeyId, out id); dataNode.Tag = (id.Value != null) ? id.Value : item.GetElement(0).Value; break; } AddBsonDocToTreeNode(dataNode, item); trvData.DatatreeView.Nodes.Add(dataNode); count++; } trvData.DatatreeView.EndUpdate(); }
/// <summary> /// fill Collection status to ListView /// </summary> /// <param name="lstData"></param> /// <param name="mongoConnSvrLst"></param> public static void FillCollectionStatusToList(CtlTreeViewColumns lstData, Dictionary<string, MongoServer> mongoConnSvrLst) { var dbStatusList = new List<BsonDocument>(); foreach (var mongoSvrKey in mongoConnSvrLst.Keys) { if (!MongoConnectionConfig.MongoConfig.ConnectionList[mongoSvrKey].Health) continue; var mongoSvr = mongoConnSvrLst[mongoSvrKey]; var databaseNameList = mongoSvr.GetDatabaseNames().ToList(); foreach (var strDbName in databaseNameList) { var mongoDb = mongoSvr.GetDatabase(strDbName); var viewlist = new List<string>(); //获得View列表 if (mongoDb.CollectionExists(ConstMgr.CollectionNameSystemViews)) { foreach (var viewdoc in mongoDb.GetCollection(ConstMgr.CollectionNameSystemViews).FindAll()) { viewlist.Add(viewdoc.GetElement(ConstMgr.KeyId).Value.AsString); } } var colNameList = mongoDb.GetCollectionNames().ToList(); foreach (var strColName in colNameList) { //过滤掉View,View无法读取状态 if (viewlist.Contains(strDbName + "." + strColName)) continue; try { var collectionStatus = mongoDb.GetCollection(strColName).GetStats(); dbStatusList.Add(collectionStatus.Response); } catch (Exception ex) { Utility.ExceptionDeal(ex); } } } } UiHelper.FillDataToTreeView("Collection Status", lstData, dbStatusList, 0); }
/// <summary> /// 将数据放入TreeView里进行展示 /// </summary> /// <param name="collectionName"></param> /// <param name="trvData"></param> /// <param name="dataList"></param> /// <param name="mSkip"></param> public static void FillDataToTreeView(string collectionName, CtlTreeViewColumns trvData, List <BsonDocument> dataList, int mSkip) { trvData.ContentData = dataList; trvData.DatatreeView.BeginUpdate(); trvData.DatatreeView.Nodes.Clear(); var skipCnt = mSkip; var count = 1; foreach (var item in dataList) { var dataNode = new TreeNode(collectionName + "[" + (skipCnt + count) + "]"); if (item.TryGetElement(ConstMgr.KeyId, out BsonElement id)) { //这里保存真实的主Key数据,修改和删除的时候使用 dataNode.Tag = item.GetElement(ConstMgr.KeyId).Value; } AddBsonDocToTreeNode(dataNode, item); trvData.DatatreeView.Nodes.Add(dataNode); count++; } trvData.DatatreeView.EndUpdate(); }
/// <summary> /// Fill Client status to ListView /// </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) { if (!MongoConnectionConfig.MongoConfig.ConnectionList[mongoSvrKey].Health) { continue; } 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 { { DataBaseCommand.ServerStatusCommand.CommandString, 1 } }; var serverStatusDoc = CommandExecute.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> /// 将数据放入TreeView里进行展示 /// </summary> /// <param name="collectionName"></param> /// <param name="trvData"></param> /// <param name="dataList"></param> /// <param name="mSkip"></param> public static void FillDataToTreeView(string collectionName, CtlTreeViewColumns trvData, List<BsonDocument> dataList, int mSkip) { trvData.ContentData = dataList; trvData.DatatreeView.BeginUpdate(); trvData.DatatreeView.Nodes.Clear(); var skipCnt = mSkip; var count = 1; foreach (var item in dataList) { var dataNode = new TreeNode(collectionName + "[" + (skipCnt + count) + "]"); //这里保存真实的主Key数据,删除的时候使用 switch (collectionName) { case ConstMgr.CollectionNameGfsFiles: dataNode.Tag = item.GetElement(1).Value; break; case ConstMgr.CollectionNameUser: dataNode.Tag = item.GetElement(1).Value; break; //case COLLECTION_NAME_ROLE: // dataNode.Tag = item.GetElement(1).Value; // break; default: //SelectDocId属性的设置, //2012/03/19 不一定id是在第一位 //这里是为了操作顶层节点的删除,修改用的,所以必须要放item.GetElement(0).Value; BsonElement id; item.TryGetElement(ConstMgr.KeyId, out id); dataNode.Tag = id.Value != null ? id.Value : item.GetElement(0).Value; break; } AddBsonDocToTreeNode(dataNode, item); trvData.DatatreeView.Nodes.Add(dataNode); count++; } trvData.DatatreeView.EndUpdate(); }
/// <summary> /// 将数据放入TreeView里进行展示 /// </summary> /// <param name="collectionName"></param> /// <param name="trvData"></param> /// <param name="dataList"></param> /// <param name="mSkip"></param> public static void FillDataToTreeView(string collectionName, CtlTreeViewColumns trvData, List<BsonDocument> dataList, int mSkip) { trvData.ContentData = dataList; trvData.DatatreeView.BeginUpdate(); trvData.DatatreeView.Nodes.Clear(); var skipCnt = mSkip; var count = 1; foreach (var item in dataList) { var dataNode = new TreeNode(collectionName + "[" + (skipCnt + count) + "]"); BsonElement id; if (item.TryGetElement(ConstMgr.KeyId, out id)) { //这里保存真实的主Key数据,修改和删除的时候使用 dataNode.Tag = item.GetElement(ConstMgr.KeyId).Value; } AddBsonDocToTreeNode(dataNode, item); trvData.DatatreeView.Nodes.Add(dataNode); count++; } trvData.DatatreeView.EndUpdate(); }
/// <summary> /// 将数据放入TreeView里进行展示 /// </summary> /// <param name="collectionName"></param> /// <param name="trvData" /> /// <param name="dataList"></param> public static void FillDataToTreeView(string collectionName, CtlTreeViewColumns trvData, BsonDocument dataList) { var docList = new List<BsonDocument>(); docList.Add(dataList); FillDataToTreeView(collectionName, trvData, docList, 0); }
/// <summary> /// Fill Database status to ListView /// </summary> /// <param name="lstSvr"></param> /// <param name="mongoConnSvrLst"></param> public static void FillDataBaseStatusToList(CtlTreeViewColumns lstSvr, Dictionary<string, MongoServer> mongoConnSvrLst) { var dbStatusList = new List<BsonDocument>(); foreach (var mongoSvrKey in mongoConnSvrLst.Keys) { if (!MongoConnectionConfig.MongoConfig.ConnectionList[mongoSvrKey].Health) continue; try { var mongoSvr = mongoConnSvrLst[mongoSvrKey]; var databaseNameList = mongoSvr.GetDatabaseNames().ToList(); foreach (var strDbName in databaseNameList) { var mongoDb = mongoSvr.GetDatabase(strDbName); var dbStatus = mongoDb.GetStats(); dbStatusList.Add(dbStatus.Response); } } catch (Exception ex) { Utility.ExceptionDeal(ex); } } UiHelper.FillDataToTreeView("DataBase Status", lstSvr, dbStatusList, 0); }