示例#1
0
        private void SignupEmailInput(SessionBase session)
        {
            if (session.Status != 3)
            {
                return;
            }
            session.Status = 0;

            var inputValue = Encoding.ASCII.GetString(session.InputBuffer.ToArray());

            var emailRegEx = new Regex(
                "^(?(\")(\".+?(?<!\\\\)\"@)|(([0-9a-z]((\\.(?!\\.))|[-!#\\$%&'\\*\\+/=\\?\\^`\\{\\}\\|~\\w])*)(?<=[0-9a-z])@))(?(\\[)(\\[(\\d{1,3}\\.){3}\\d{1,3}\\])|(([0-9a-z][-0-9a-z]*[0-9a-z]*\\.)+[a-z0-9][\\-a-z0-9]{0,22}[a-z0-9]))$");

            if (!emailRegEx.IsMatch(inputValue))
            {
                EchoToClient(session,
                             "\r\n|RED||B|Please enter a valid e-Mail address.\r\n|RESET|".EncodeToANSIArray());
                session.SessionState = EnumSessionState.SignupEmailDisplay;
                session.InputBuffer.SetLength(0);
                return;
            }

            session.Email = inputValue;

            //Create the user in the database
            var accountId = _accountRepository.InsertAccount(session.Username, session.Password, session.Email);

            foreach (var c in _configuration.DefaultKeys)
            {
                _accountKeyRepository.InsertAccountKey(accountId, c);
            }

            //Add The User to the BBS Btrieve User Database
            var _accountBtrieve = _globalCache.Get <BtrieveFileProcessor>("ACCBB-PROCESSOR");

            _accountBtrieve.Insert(new UserAccount {
                userid = Encoding.ASCII.GetBytes(session.Username), psword = Encoding.ASCII.GetBytes("<<HASHED>>")
            }.Data);


            session.SessionState = EnumSessionState.LoginRoutines;
            session.InputBuffer.SetLength(0);
        }
示例#2
0
        private void SignupGenderInput(SessionBase session)
        {
            if (session.GetStatus() != EnumUserStatus.CR_TERMINATED_STRING_AVAILABLE)
            {
                return;
            }

            var inputValue = Encoding.ASCII.GetString(session.InputBuffer.ToArray());

            if (inputValue.ToUpper() is not("M" or "F"))
            {
                session.SendToClient("\r\n|RED||B|Please enter a valid gender selection ('M' or 'F').\r\n|RESET|".EncodeToANSIArray());
                session.SessionState = EnumSessionState.SignupGenderDisplay;
                session.InputBuffer.SetLength(0);
                return;
            }

            session.UsrAcc.sex = (byte)char.Parse(inputValue);

            //Create the user in the database
            var accountId = _accountRepository.InsertAccount(session.Username, session.Password, session.Email);

            foreach (var c in _configuration.DefaultKeys)
            {
                _accountKeyRepository.InsertAccountKey(accountId, c);
            }

            //Add The User to the BBS Btrieve User Database
            var _accountBtrieve = _globalCache.Get <BtrieveFileProcessor>("ACCBB-PROCESSOR");

            _accountBtrieve.Insert(new UserAccount {
                userid = Encoding.ASCII.GetBytes(session.Username), psword = Encoding.ASCII.GetBytes("<<HASHED>>"), sex = session.UsrAcc.sex
            }.Data, LogLevel.Error);

            session.SessionState = EnumSessionState.LoginRoutines;
            session.InputBuffer.SetLength(0);
        }