public DatabaseDetailsViewModel(MongoDatabase db) { _db = db; DatabaseStatsResult stats = db.GetStats(); Size = new Dictionary <string, long>(); Size.Add("Индексы", stats.IndexSize); Size.Add("Данные", stats.DataSize); Size.Add("Зарезервированное место", stats.FileSize - stats.IndexSize - stats.DataSize); }
/// <summary> /// Fill Database status to ListView /// </summary> /// <param name="lstSvr"></param> public static void FillDataBaseStatusToList(ListView lstSvr) { lstSvr.Clear(); if (SystemManager.IsUseDefaultLanguage) { lstSvr.Columns.Add("DataBaseName"); lstSvr.Columns.Add("CollectionCount"); lstSvr.Columns.Add("DataSize"); lstSvr.Columns.Add("FileSize"); lstSvr.Columns.Add("IndexCount"); lstSvr.Columns.Add("IndexSize"); lstSvr.Columns.Add("ObjectCount"); lstSvr.Columns.Add("StorageSize"); } else { lstSvr.Columns.Add(SystemManager.mStringResource.GetText(StringResource.TextType.DataBase_Status_DataBaseName)); lstSvr.Columns.Add(SystemManager.mStringResource.GetText(StringResource.TextType.DataBase_Status_CollectionCount)); lstSvr.Columns.Add(SystemManager.mStringResource.GetText(StringResource.TextType.DataBase_Status_DataSize)); lstSvr.Columns.Add(SystemManager.mStringResource.GetText(StringResource.TextType.DataBase_Status_FileSize)); lstSvr.Columns.Add(SystemManager.mStringResource.GetText(StringResource.TextType.DataBase_Status_IndexCount)); lstSvr.Columns.Add(SystemManager.mStringResource.GetText(StringResource.TextType.DataBase_Status_IndexSize)); lstSvr.Columns.Add(SystemManager.mStringResource.GetText(StringResource.TextType.DataBase_Status_ObjectCount)); lstSvr.Columns.Add(SystemManager.mStringResource.GetText(StringResource.TextType.DataBase_Status_StorageSize)); } foreach (String mongoSvrKey in _mongoConnSvrLst.Keys) { try { MongoServer mongoSvr = _mongoConnSvrLst[mongoSvrKey]; //感谢 魏琼东 的Bug信息,一些命令必须以Admin执行 if (!SystemManager.GetCurrentServerConfig(mongoSvrKey).Health || !SystemManager.GetCurrentServerConfig(mongoSvrKey).LoginAsAdmin) { continue; } List <String> databaseNameList = mongoSvr.GetDatabaseNames().ToList <String>(); foreach (String strDBName in databaseNameList) { MongoDatabase mongoDB = mongoSvr.GetDatabase(strDBName); DatabaseStatsResult dbStatus = mongoDB.GetStats(); ListViewItem lst = new ListViewItem(mongoSvrKey + "." + strDBName); try { lst.SubItems.Add(dbStatus.CollectionCount.ToString()); } catch (Exception) { lst.SubItems.Add("0"); } lst.SubItems.Add(GetSize(dbStatus.DataSize)); lst.SubItems.Add(GetSize(dbStatus.FileSize)); lst.SubItems.Add(dbStatus.IndexCount.ToString()); lst.SubItems.Add(GetSize(dbStatus.IndexSize)); lst.SubItems.Add(dbStatus.ObjectCount.ToString()); lst.SubItems.Add(GetSize(dbStatus.StorageSize)); lstSvr.Items.Add(lst); } } catch (Exception ex) { throw ex; } } }