public async Task<MongoDbServer> ConnectAsync(ConnectionInfo connectionInfo)
 {
     if (connectionInfo.Mode == 1)
         client = new MongoClient(new MongoClientSettings() { Server = new MongoServerAddress(connectionInfo.Address, connectionInfo.Port), ConnectionMode = ConnectionMode.Direct });
     else
         client = new MongoClient(new MongoUrl(connectionInfo.ConnectionString));
     var databases = await client.ListDatabasesAsync();
     var serverStatus = await client.GetDatabase("admin").RunCommandAsync(new JsonCommand<BsonDocument>("{serverStatus:1}"));
     MongoDbServer server = new MongoDbServer();
     server.Client = client;
     server.Databases = await databases.ToListAsync();
     server.ServerStatus = serverStatus;
     return server;
 }
        public void ConnectToDatabase()
        {
            _connecting = true;
            MongoClient client;
            ConnectionInfo info = new ConnectionInfo() { Address = Address, Port = Port, Mode = HostPortMode ? 1 : 2, ConnectionString = ConnectionString };
            if (HostPortMode)
                client = new MongoClient(new MongoClientSettings() { Server = new MongoServerAddress(Address, Port) });
            else
            {
                client = new MongoClient(new MongoUrl(ConnectionString));
                info.Address = client.Settings.Server.Host;
                info.Port = client.Settings.Server.Port;
            }

            Messenger.Default.Send(new NotificationMessage<ConnectionInfo>(info, Constants.LoggingInMessage));
        }