Esempio n. 1
0
        private static byte[] Register(HttpListenerContext context, NameValueCollection query)
        {
            byte[] data        = null;
            string newUsername = query["newUsername"];
            string newPassword = query["newPassword"];

            if (!Database.IsValidUsername(newUsername))
            {
                return(WriteError("Invalid username."));
            }

            if (!Database.IsValidPassword(newPassword))
            {
                return(WriteError("Invalid password."));
            }

            _listenEvent.Reset();
            Program.PushWork(() =>
            {
                RegisterStatus status = Database.RegisterAccount(newUsername, newPassword, GetIPFromContext(context));
                if (status == RegisterStatus.Success)
                {
                    data = WriteSuccess();
                }
                else
                {
                    data = WriteError(status.ToString());
                }
            }, () => _listenEvent.Set());
            _listenEvent.WaitOne();

            return(data);
        }