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); }
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); }