'Attributen
#Region Activity Attributes
#FullScreen: False
#IncludeTitle: True
#End Region
'Server aanspreken
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
'Variabele aanmaken om de server te kunnen aanspreken.
Dim ServerUrl As String
'Variabele waarde toekennen om verbinding te kunnen maken met de juiste poort en database van de MSSQL.
ServerUrl = "http://81.82.217.67:10001/ticketcenter.aspx"
'...
Dim job1, job2 As HttpJob
End Sub
Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
Dim strGebruikersnaam, strWachtwoord, strEmailAdres As String
Private btnRegistreren As Button
Private btnAlgemeneVoorwaarden As Button
Private cboxAlgemeneVoorwaarden As CheckBox
Private edtEmailAdres As EditText
Private edtWachtwoord As EditText
Private edtGebruikersnaam As EditText
Dim intValidateResponse As Int
Dim UserNameChecker As String
Dim Phone1 As Phone
End Sub
Sub Delay(nmillisecond As Long)
Dim nBeginTime As Long
Dim nEndTime As Long
nEndTime = DateTime.Now + nmillisecond
nBeginTime = DateTime.Now
Do While nBeginTime < nEndTime
nBeginTime = DateTime.Now
If nEndTime < nBeginTime Then
Return
End If
DoEvents
Loop
End Sub
'Registratiescherm
Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
'Activity.LoadLayout("Layout1")
'Laad de layout registreren om de gebruiker zich te laten registreren.
Activity.LoadLayout("registreren")
'Tekstboxen van een inputtype voorzien.
edtGebruikersnaam.InputType = Bit.OR(edtGebruikersnaam.InputType, 0x00000080)
edtGebruikersnaam.PasswordMode = False
edtWachtwoord.InputType = Bit.OR(edtWachtwoord.InputType, 0x00000080)
edtEmailAdres.InputType = Bit.OR(edtEmailAdres.InputType, 0x00000080)
edtEmailAdres.PasswordMode = False
End Sub
'Verdergaan (niet gebruikt)
Sub Activity_Resume
End Sub
'Pauze (niet gebruikt)
Sub Activity_Pause (UserClosed As Boolean)
End Sub
'Registreren van een gebruiker
Sub btnRegistreren_click ()
'Valideert de ingegeven velden van de registratie.
validateFields
'Verberegt het toetsenbord
Phone1.HideKeyboard(Activity)
'Geeft een progressschermpje weer met even geduld a.u.b. weer.
ProgressDialogShow("Even geduld a.u.b.")
'Valideert of de gebruikersnaam die ingevoerd is bestaat.
CheckIfUsersExists
End Sub
'Terugkeren
Sub btnGoBack1_click
'Laat de gebruiker terugkeren naar het main scherm.
StartActivity(Main)
End Sub
'Algemene voorwaarden
Sub btnAlgemeneVoorwaarden_click
'laat de gebruiker naar de gebruikersvoorwaarden gaan om deze te lezen.
StartActivity(Gebruikersvoorwaarden)
End Sub
'Valideren velden
Sub validateFields ()
'String koppelen aan edit tekstboxen
strGebruikersnaam = edtGebruikersnaam.Text
strWachtwoord = edtWachtwoord.Text
strEmailAdres = edtEmailAdres.Text
'Gebruikersnaam fout meldingen
Dim temppndstring As String
temppndstring = edtGebruikersnaam.Text
If temppndstring = "" Then
Msgbox("Voer een gebruikersnaam in","Waarschuwing")
Return
End If
If strGebruikersnaam.Length < 6 Then
Msgbox("De gebruikersnaam is niet lang genoeg, voer minstens 6 karakters in.","Waarschuwing")
edtGebruikersnaam.text = ""
Return
End If
'Wachtwoord fout meldingen
Dim temppwdstring As String
temppwdstring = edtWachtwoord.Text
If temppwdstring = "" Then
Msgbox("Voer een wachtwoord in","Waarschuwing")
Return
End If
If strWachtwoord.Length < 5 Then
Msgbox("Het opgegeven wachtwoord is niet lang genoeg, voer minstens 5 karakters in","Waarschuwing")
edtWachtwoord.text = ""
Return
End If
'Email Adres fout meldingen
If edtEmailAdres.Text = "" Then
Msgbox("Voer een email adres in","Waarschuwing")
Return
End If
If edtEmailAdres.Text <> "" Then
Dim matcher1 As Matcher
matcher1 = Regex.Matcher("\w+@\w+\.\w+", edtEmailAdres.Text)
If matcher1.Find = False Then
Msgbox("Voer een geldig email adres in","Waarschuwing")
Return
End If
End If
'tikbox waarschuwing
If cboxAlgemeneVoorwaarden.Checked = False Then
Msgbox("Lees en accepteer de algemene voorwaarden","Waarschuwing")
Return
End If
End Sub
Sub CheckIfUsersExists
job1.Initialize("Job1", Me)
job1.PostString(ServerUrl,"SELECT Gebruikersnaam FROM Gebruiker WHERE Gebruikersnaam ='"&edtGebruikersnaam.Text&"'")
Log("HttpUtils.PostString(SELECT Gebruikersnaam FROM Gebruiker) --> CheckIfUserExists")
Log("Gebruikersnaam ="& edtGebruikersnaam.Text)
End Sub
Sub RegistratieSucces
ToastMessageShow("U registratie is geslaagd, u kunt nu aanmelden.",True)
job2.Initialize("Job2", Me)
job2.PostString(ServerUrl,"INSERT INTO Gebruiker (gebruikersnaam,wachtwoord,e-mailadres) VALUES ("&edtGebruikersnaam.Text&"','"&edtWachtwoord.Text&"','"&edtEmailAdres&"')")
End Sub
Sub JobDone (job As HttpJob)
Log("JobDone Sub gestart")
If job.Success = True Then
Log("HttpUtils.IsSucces = true")
Select job.JobName
Case "Job2"
Dim parser As JSONParser
Dim response As String
response = job2.GetString
parser.Initialize(response)
Dim rows As List
rows = parser.NextArray
Log("Rows=" & rows)
'werken met resultaat
'rows is een lijst (zie hierboven)
'Elk item is een Map met de kolomnamen als keys en de db-waarden als waarden.
For i = 0 To rows.Size - 1
Log("Rows #" & i)
Dim m As Map
m = rows.Get(i)
'values van kolom 1, 2 en 3 loggen
Log("Gebruikersnaam=" & m.Get("Gebruikersnaam"))
Log("i=" & i)
Log("m="& m)
Next
If i = 1 Then
'Als i in dit geval 1 is, wilt dit zeggen dat we een resultaat krijgen, en slagen we dit op in een variable om later nogmaals te controleren
UserNameChecker = m.Get("Gebruikersnaam")
Log("Usernamecheck"&UserNameChecker)
If btnRegistreren.Text = UserNameChecker Then
ProgressDialogHide
Msgbox("Deze gebruikersnaam is al in gebruik.","Waarschuwing")
btnRegistreren.Text=""
Else
RegistratieSucces
Log("FIRST REGISTRATIONSUCCESS")
End If
Else If i <> 1 Then
'In het andere geval zijn er dus geen overeenkomsten en voeren we de functie uit die zorgt dat de account wordt aangemaakt
ProgressDialogHide
RegistratieSucces
Log("SECOND REGISTRATIONSUCCESS")
End If
'Als de ontvangen gegevens van de DB overeenkomen met de ingegeven tekst, geven we een melding weer.
Case "Job1"
Log("POSTED DATASTRING")
'Na dat de account gemaakt is, wachten we 0,7 seconden voor we automatisch teruggaan naar het Loginscherm
'ProgressDialogHide
Delay(700)
Activity.Finish
End Select
'Als JobDone iet doet geven we een foutmelding weer die laat blijken dat men een verbindingprobleem heeft.
Else If job.Success = False Then
Msgbox("Controleer of u verbonden bent met het netwerk.", "Verbindingsproblemen")
ProgressDialogHide
End If
job1.Release
End Sub