Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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 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);
     });
 }
        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);
            }
        }