Пример #1
0
        /// <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);
        }
Пример #2
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);
        }
Пример #3
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();
            }
        }
Пример #4
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);
        }
Пример #5
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);
        }
Пример #6
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);
 }
Пример #7
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);
        }
Пример #8
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();
        }
Пример #9
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);
 }
Пример #10
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();
        }
Пример #11
0
        /// <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();
            }
        }
Пример #12
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();
 }
Пример #13
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) + "]");
         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();
 }
Пример #14
0
 /// <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);
 }
Пример #15
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);
 }