public BsonDocument GenerateNewUser(string uname, string pw, string email)
        {
            uname = uname.ToLowerInvariant();
            BsonDocument bd = CreateEmptyUserDocument();

            bd[Account.USERNAME]        = uname;
            bd[Account.PASSWORD]        = ForumUtilities.Hash(pw, uname);
            bd[Account.EMAIL]           = email;
            bd[Account.UID]             = getIDFor(TF_USERS);
            bd[Account.ACTIVATION_CODE] = ForumUtilities.GetRandomHex(32);
            return(bd);
        }
        public void InstallDefaultUser(string pw)
        {
            IMongoCollection <BsonDocument> userbase = Database.GetCollection <BsonDocument>(TF_USERS);
            BsonDocument user = CreateEmptyUserDocument();

            user[Account.UID]          = (long)0;
            user[Account.USERNAME]     = "admin";
            user[Account.DISPLAY_NAME] = "Administrator";
            user[Account.PASSWORD]     = ForumUtilities.Hash(pw, "admin");
            user[Account.ACTIVE]       = true;
            user[Account.ACCOUNT_TYPE] = Account.AT_VALID;
            FilterDefinition <BsonDocument> fd = Builders <BsonDocument> .Filter.Eq(Account.UID, (long)0);

            UpdateOptions uo = new UpdateOptions()
            {
                IsUpsert = true
            };

            userbase.ReplaceOneAsync(fd, user, uo).Wait();
        }