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