public MembershipUser CreateUser(string username, string password, string email, string gender, string accountType, string externalID, out MembershipCreateStatus status)
        {
            //check if username exists
            /* don't do this check if we're using this create user method, because we're auto generating the username
            if (UserRepository.Users.Where(u => u.Username.Equals(username)).Count() > 0)
            {
                status = MembershipCreateStatus.DuplicateUserName;
                return null;
            }*/
            //check if email exists
            if (UserRepository.Users.Where(u => u.Email.Equals(email)).Count() > 0)
            {
                status = MembershipCreateStatus.DuplicateEmail;
                return null;
            }

            User newUser = new User();
            newUser.Email = email;
            newUser.Password = BCrypt.Net.BCrypt.HashPassword(password);
            newUser.Username = username;
            newUser.Gender = gender;
            newUser.AccountType = accountType;
            newUser.ExternalUserID = externalID;
            UserRepository.SaveUser(newUser);
            status = MembershipCreateStatus.Success;

            return newUser.ConvertToMembershipUser();
        }
        public MembershipUser CreateUser(string username, string password, string email, string gender, out MembershipCreateStatus status)
        {
            //check if username exists
            if (UserRepository.Users.Where(u => u.Username.Equals(username)).Count() > 0)
            {
                status = MembershipCreateStatus.DuplicateUserName;
                return null;
            }
            //check if email exists
            if (UserRepository.Users.Where(u => u.Email.Equals(email)).Count() > 0)
            {
                status = MembershipCreateStatus.DuplicateEmail;
                return null;
            }

            User newUser = new User();
            newUser.Email = email;
            newUser.Password = BCrypt.Net.BCrypt.HashPassword(password);
            newUser.Username = username;
            newUser.Gender = gender;
            UserRepository.SaveUser(newUser);
            status = MembershipCreateStatus.Success;

            return newUser.ConvertToMembershipUser();
        }