Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
Dim myImagine As Bitmap
Private accountEmail As Label
Private accountPassword As Label
Private CodAzienda As Label
Private Cognome As Label
Private Nome As Label
Private TitoloAccount As Label
Private NumInterno As Label
Private TitoloAccount As Label
Private NumInterno As Label
Private EditAzienda As EditText
Private EditCognome As EditText
Private EditEmail As EditText
Private EditNome As EditText
Private EditPassword As EditText
Private EditNumInterno As EditText
Private OkRegistrazione As Button
Private SfondoAccount As ImageView
Private conferma As Button
Private num As EditText
Private tit As Label
Private SfondoVerifica As Panel
Private Posizione As Int = -1
Dim SMTP1 As SMTP
Dim ListaRegistrati As List
Dim numVerifica As Long
Dim inviata As Boolean = False 'serve per evitare invii multipli? altrimenti si può eliminare
End Sub
Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
Activity.LoadLayout("Account")
SfondoVerifica.Visible = False 'nasconde pannello verifica codice
'Prepara pannello registrazione
SetLabelSize(TitoloAccount,"REGISTRAZIONE")
myImagine.Initialize(File.DirAssets,"Blue.png")
OkRegistrazione.SetBackgroundImage(myImagine)
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
'tasto conferma del pannello Registrazione
Sub OkRegistrazione_Click
EditCognome.Text = EditCognome.Text.ToUpperCase
EditNome.Text = EditNome.Text.ToUpperCase
EditEmail.Text = EditEmail.Text.ToUpperCase
If EditAzienda.Text <> "1234" Then
Pulisce
Msgbox("Codice Azienda, Errato!!!", "ERRORE!!")
EditCognome.requestfocus
Else
numVerifica = Rnd(100000,999999) 'può essere spostato dove serve, ovvero prima di invio mail
CheckAccount(EditNome.Text, EditCognome.Text, EditNumInterno.Text, EditEmail.Text, EditPassword.text)
End If
End Sub
'Ritorna True se trova Nome/Cognome oppure Email; altrimenti ritorna False
Sub CheckDatiReg(NomeReg As String, CognomeReg As String, Emailreg As String, Lst As List) As Boolean
For j = 0 To Lst.Size-1
Dim s1 As String = Lst.Get(j)
Dim stringArray() As String = Regex.Split("\|",s1)
If ((stringArray(0) = NomeReg) And (stringArray(1) = CognomeReg)) Then
Msgbox("Cognome e Nome già Registrati!!!", "ERRORE!!")
Pulisce
Return = True
Else if (stringArray(3) = Emailreg) Then
Msgbox("E-mail già Registrata!!!", "ERRORE!!")
Pulisce
Return = True
End If
Next
Return False
End Sub
'Ritorna prima posizione libera in ListaRegistrati; -1 se lista pina
Sub NextPlace (lst As List) As Int
For j = 0 To lst.Size-1
Dim s1 As String = lst.Get(j)
If s1 = "0" Then Return j
Next
Return -1
End Sub
'legge attuale lista utenti registrati da server, verifica che nuova registrazione sia effettivamente nuova
' ed in tal caso invia mail con codice di conefrma
Sub CheckAccount( NomeReg As String, CognomeReg As String, NumInternoReg As String, EmailReg As String, PasswordReg As String)
'crea dir temp; perché non in DirInternal?
If Not(File.Exists(File.DirRootExternal, "Pizza") Then File.MakeDir(File.DirRootExternal, "Pizza")
'preleva lista da server
Sviluppatore.ftp.Initialize ("ftp","ftp.XXXXXXXXXXXXXXXXXX.org", 21 , "XXXXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXXX")
Sviluppatore.ftp.PassiveMode = True
Dim sf As Object = Sviluppatore.ftp.DownloadFile("pizzagrifalapp/Registrazioni.txt", False, File.DirRootExternal, "Pizza/Registrazioni.txt" )
Wait For (sf) FTP_DownloadCompleted (ServerPath As String, Success As Boolean)
Log(ServerPath & " , Success=" & Success)
If Success = False Then
Log(LastException.Message)
Msgbox("File non copiato sul cell", "")
Else
Msgbox("File copiato sul cell", "")
ListaRegistrati = File.ReadList(File.DirRootExternal, "Pizza/Registrazioni.txt")
Dim trovato As Boolean = CheckDatiReg(NomeReg, CognomeReg, EmailReg, ListaRegistrati)
'attenzione: assumiamo che in lista ci sia sempre spazio!!
If Not(trovato) Then
Posizione = NextPlace(ListaRegistrati) 'cerca posizione vuota in lista
If Posizione > -1 Then
'invia email con codice registrazione
If Not(inviata) Then
SMTP1.Initialize("smtp.gmail.com", 465, "
[email protected]","XXXXXXXXX","SMTP")
SMTP1.UseSSL = True
SMTP1.To.Add(EditEmail.Text)
SMTP1.Subject = "Numero di verifica"
SMTP1.Body = "Numero di verifica e-mail dell'app SPEEDY PIZZA" & " " & numVerifica
Dim t As Object = SMTP1.Send
Wait For (t) Smtp_MessageSent (Success As Boolean)
inviata = Success '"inviata" serve per evitare invii multipli?
Log("e-mail inviata =" & Success)
If Success = False Then Msgbox("Errore invio email","") Else Msgbox("E-mail inviata")
End If
OkRegistrazione.Visible = False 'nasconde primo pannello
SfondoVerifica.Visible = True 'mostra secondo pannello
Else
Log("lista piena!")
End If
Else
Log("utente esistente")
End If
End If
End Sub
'Utente ha ricevuto email ed immesso codice registrazione
Sub Conferma_Click
'check se il codice immesso è uguale a quello inviato; se OK salva dati su server e lancia Main
If numVerifica <> num.Text Then
Msgbox("Verifica E-mail Errata!!!", "ERRORE!!")
Activity.Finish
Else
Dim s2 As String = NomeReg & "|" & CognomeReg & "|" & NumInternoReg & "|" & EmailReg & "|" & PasswordReg
ListaRegistrati.set(Posizione, s2)
'scrivo nel file e aggiorno server
File.WriteList(File.DirRootExternal, "Pizza/Registrazioni.txt", ListaRegistrati)
Sviluppatore.ftp.Initialize ("ftp","ftp.XXXXXXXXXXXXXXXXXX.org", 21 , "XXXXXXXXXXXXX", "XXXXXXXXXXXXXX")
Sviluppatore.ftp.PassiveMode = True
Dim sfu As Object = Sviluppatore.ftp.UpLoadFile(File.DirRootExternal, "Pizza/Registrazioni.txt",True, "pizzagrifalapp/Registrazioni.txt" )
Wait For (sfu) FTP_UploadCompleted (ServerPath As String, Success As Boolean)
Log(ServerPath & " , Success=" & Success)
If Success = False Then
Log(LastException.Message)
Msgbox("File non copiato sul Server", "")
Else
Msgbox("File copiato sul Server", "")
End If
Msgbox("Registrazione completata2", "")
File.Delete(File.DirRootExternal, "Pizza/Registrazioni.txt") 'elimina file temporaneo
StartActivity(Main)
Activity.finish
End If
End Sub
Sub Pulisce
EditAzienda.Text = ""
EditCognome.Text = ""
EditNome.Text = ""
EditNumInterno.Text = ""
EditPassword.text = ""
EditEmail.Text = ""
End Sub