public void LoadDatabases(List <BsonDocument> databases) { try { LoggerHelper.Logger.Debug("Loading database list of server " + Name); this.Children.Clear(); List <MongoDbDatabaseViewModel> systemDatabases = new List <MongoDbDatabaseViewModel>(); List <MongoDbDatabaseViewModel> standardDatabases = new List <MongoDbDatabaseViewModel>(); FolderViewModel systemDbFolder = new FolderViewModel("System", this); foreach (var database in databases) { var databaseVm = new MongoDbDatabaseViewModel(this, database["name"].AsString); databaseVm.SizeOnDisk = database["sizeOnDisk"].AsDouble; if (databaseVm.Name == "local") { systemDatabases.Add(databaseVm); } else { standardDatabases.Add(databaseVm); } } foreach (var systemDb in systemDatabases.OrderBy(o => o.Name)) { systemDbFolder.Children.Add(systemDb); } this.Children.Add(systemDbFolder); if (ServerVersion >= SemanticVersion.Parse("2.6.0")) { _users = new FolderViewModel("Users", this); _users.Children.Add(new MongoDbUserViewModel(null, null) { IconVisible = false }); this.Children.Add(_users); } foreach (var db in standardDatabases.OrderBy(o => o.Name)) { this.Children.Add(db); } this.IsExpanded = true; } catch (Exception ex) { LoggerHelper.Logger.Error("Failed to load database list on server " + Name, ex); } }
public void InnerCreateNewDatabase() { var newDb = new MongoDbDatabaseViewModel(this, ""); newDb.IsSelected = true; newDb.IsNew = true; this.IsExpanded = true; DispatcherHelper.CheckBeginInvokeOnUI(() => { LoggerHelper.Logger.Debug("Adding new database to server " + Name); Children.Add(newDb); }); }
/// <summary> /// Initializes a new instance of the MongoDbCollectionViewModel class. /// </summary> public MongoDbCollectionViewModel(MongoDbDatabaseViewModel database, string collectionName) { _children = new ObservableCollection <BaseTreeviewViewModel>(); _indexes = new FolderViewModel("Indexes", this); _children.Add(_indexes); _indexes.Children.Add(new MongoDbIndexViewModel(this, null) { IconVisible = false }); OpenTab = new RelayCommand(InternalOpenTab); RenameCollection = new RelayCommand(InternalRenameCollection); SaveCollection = new RelayCommand(InnerSaveCollection, () => { return(!string.IsNullOrWhiteSpace(Name) && _oldName != Name); }); InsertDocuments = new RelayCommand(InternalInsertDocuments); CreateIndex = new RelayCommand(InternalCreateIndex); ConfirmDropCollection = new RelayCommand( () => { Messenger.Default.Send(new NotificationMessage <MongoDbCollectionViewModel>(this, ServiceLocator.Current.GetInstance <MainViewModel>(), this, Constants.ConfirmDropCollectionMessage)); }); Messenger.Default.Register <PropertyChangedMessage <bool> >(this, (message) => { if (message.Sender == _indexes && message.PropertyName == "IsExpanded" && _indexes.IsExpanded) { if (!IsNew && !_indexesLoaded && !string.IsNullOrWhiteSpace(Name)) { LoadIndexes(); } } }); Messenger.Default.Register <NotificationMessage <CreateIndexViewModel> >(this, InnerCreateIndex); Messenger.Default.Register <NotificationMessage <MongoDbIndexViewModel> >(this, (message) => IndexMessageHandler(message)); Database = database; _name = collectionName; _oldName = collectionName; }
/// <summary> /// Initializes a new instance of the MongoDbCollectionViewModel class. /// </summary> public MongoDbCollectionViewModel(MongoDbDatabaseViewModel database, string collectionName) { _children = new ObservableCollection<BaseTreeviewViewModel>(); _indexes = new FolderViewModel("Indexes", this); _children.Add(_indexes); _indexes.Children.Add(new MongoDbIndexViewModel(this, null) { IconVisible = false }); OpenTab = new RelayCommand(InternalOpenTab); RenameCollection = new RelayCommand(InternalRenameCollection); SaveCollection = new RelayCommand(InnerSaveCollection, () => { return !string.IsNullOrWhiteSpace(Name) && _oldName != Name; }); InsertDocuments = new RelayCommand(InternalInsertDocuments); CreateIndex = new RelayCommand(InternalCreateIndex); ConfirmDropCollection = new RelayCommand( () => { Messenger.Default.Send(new NotificationMessage<MongoDbCollectionViewModel>(this, ServiceLocator.Current.GetInstance<MainViewModel>(), this, Constants.ConfirmDropCollectionMessage)); }); Messenger.Default.Register<PropertyChangedMessage<bool>>(this, (message) => { if (message.Sender == _indexes && message.PropertyName == "IsExpanded" && _indexes.IsExpanded) { if (!IsNew && !_indexesLoaded && !string.IsNullOrWhiteSpace(Name)) LoadIndexes(); } }); Messenger.Default.Register<NotificationMessage<CreateIndexViewModel>>(this, InnerCreateIndex); Messenger.Default.Register<NotificationMessage<MongoDbIndexViewModel>>(this, (message) => IndexMessageHandler(message)); Database = database; _name = collectionName; _oldName = collectionName; }
public void LoadDatabases(List<BsonDocument> databases) { try { LoggerHelper.Logger.Debug("Loading database list of server " + Name); this.Children.Clear(); List<MongoDbDatabaseViewModel> systemDatabases = new List<MongoDbDatabaseViewModel>(); List<MongoDbDatabaseViewModel> standardDatabases = new List<MongoDbDatabaseViewModel>(); FolderViewModel systemDbFolder = new FolderViewModel("System", this); foreach (var database in databases) { var databaseVm = new MongoDbDatabaseViewModel(this, database["name"].AsString); databaseVm.SizeOnDisk = database["sizeOnDisk"].AsDouble; if (databaseVm.Name == "local") systemDatabases.Add(databaseVm); else standardDatabases.Add(databaseVm); } foreach (var systemDb in systemDatabases.OrderBy(o => o.Name)) systemDbFolder.Children.Add(systemDb); this.Children.Add(systemDbFolder); if (ServerVersion >= SemanticVersion.Parse("2.6.0")) { _users = new FolderViewModel("Users", this); _users.Children.Add(new MongoDbUserViewModel(null, null) { IconVisible = false }); this.Children.Add(_users); } foreach (var db in standardDatabases.OrderBy(o => o.Name)) this.Children.Add(db); this.IsExpanded = true; } catch (Exception ex) { LoggerHelper.Logger.Error("Failed to load database list on server " + Name, ex); } }