Vous êtes sur la page 1sur 5

Public Class clCartaoCidadao 'Dim proxyInfo As ProxyInfo 'Dim scWatch As SCWatcher 'Dim ccCurrentReader As String = "RICOH Company, Ltd.

RICOH SmartCard Reader 0" Private knownCards As New ArrayList(New String() {"3B 7D 95 00 00 80 31 80 6 5 B0 83 11 C0 A9 83 00 90 00", "3B 95 95 40 FF D0 00 54 01 31", "3B 95 95 40 FF D0 00 54 01 32"}) Dim isCardPresent As Boolean = False Dim eId As eidpt.Pteid Dim _leitorSmartReader As String = "" Public Property leitor As String Get Return _leitorSmartReader End Get Set(ByVal value As String) _leitorSmartReader = value If Not sCCInit() Then Throw New Exception("Erro a Iniciar Carto") End If End Set End Property Public Function sCCInit() As Boolean Try eId.Init(_leitorSmartReader) eId.SetSODChecking(False) Return True Catch ex As Exception eId.Exit(0) Return False End Try End Function Public Sub sClose() eId.Exit(0) End Sub Function fGetString(ByVal str As String, ByVal conv As VbStrConv) As String Dim byInput() As Byte = System.Text.Encoding.Default.GetBytes(str) Return StrConv(System.Text.Encoding.UTF8.GetString(byInput), conv) End Function Public Class clMorada Public tipoRua As String Public tipoRuaAbr As String Public rua As String Public morada As String Public porta As String Public andar As String Public lado As String Public edificio As String Public edificioAbr As String Public codigoPostal As String Public codigoPostal1 As String Public codigoPostal2 As String

Public localidade As String Public Public Public Public End Class freguesia As String concelho As String districto As String pais As String

Public Function fGetMorada() As clMorada Try Dim address As eidpt.PteidAddr = eId.GetAddr() Dim cl As New clMorada With cl .tipoRua = fGetString(address.streettype, VbStrConv.ProperCase) .rua = fGetString(address.street, VbStrConv.ProperCase) .morada = fGetString(address.streettype & " " & address.street, VbStrConv.ProperCase) .porta = fGetString(address.door, VbStrConv.ProperCase) .andar = fGetString(address.floor, VbStrConv.ProperCase) .lado = fGetString(address.side, VbStrConv.ProperCase) .edificio = fGetString(address.building, VbStrConv.ProperCase) .edificioAbr = fGetString(address.buildingAbbr, VbStrConv.Proper Case) .codigoPostal = fGetString(address.cp4 & "-" & address.cp3, VbSt rConv.ProperCase) .codigoPostal1 = fGetString(address.cp4, VbStrConv.ProperCase) .codigoPostal2 = fGetString(address.cp3, VbStrConv.ProperCase) .localidade = fGetString(address.locality, VbStrConv.ProperCase) .tipoRuaAbr = fGetString(address.streettypeAbbr, VbStrConv.Prope rCase) .freguesia = fGetString(address.freguesiaDesc, VbStrConv.ProperC ase) .concelho = fGetString(address.municipalityDesc, VbStrConv.Prope rCase) .districto = fGetString(address.districtDesc, VbStrConv.ProperCa se) .pais = fGetString(address.countryDescF, VbStrConv.ProperCase) End With Return cl Catch Return Nothing End Try End Function Public Class clGeral Public altura As String Public sexoMasc As Boolean Public sexoFem As Boolean Public dataNascimento As String Public nrCartao As String Public nrCartaoPAN As String Public pais As String

Public dataValidade As String Public dataEmissao As String Public arquivo As String Public localidade As String Public nacionalidade As String Public primeiroNome As String Public primeiroNomePai As String Public primeiroNomeMae As String Public apelido As String Public apelidoPai As String Public apelidoMae As String Public nome As String Public nomePai As String Public nomeMae As String Public notas As String Public Public Public Public End Class Public Function fGetGeral() As clGeral Try Dim ID As eidpt.PteidId = eId.GetID() Dim cl As New clGeral With cl .altura = uCDec(ID.height) .sexoMasc = IIf(ID.sex = "M", True, False) .sexoFem = Not .sexoMasc .primeiroNome = fGetString(ID.firstname, VbStrConv.ProperCase) .primeiroNomeMae = fGetString(ID.firstnameMother, VbStrConv.Prop erCase) .primeiroNomePai = fGetString(ID.firstnameFather, VbStrConv.Prop erCase) .apelido = fGetString(ID.name, VbStrConv.ProperCase) .apelidoMae = fGetString(ID.nameMother, VbStrConv.ProperCase) .apelidoPai = fGetString(ID.nameFather, VbStrConv.ProperCase) .nome = fGetString(ID.firstname & " " & ID.name, VbStrConv.Prope rCase) .nomeMae = fGetString(ID.firstnameMother & " " & ID.nameMother, VbStrConv.ProperCase) .nomePai = fGetString(ID.firstnameFather & " " & ID.nameFather, VbStrConv.ProperCase) .arquivo = fGetString(ID.deliveryEntity, VbStrConv.ProperCase) .dataEmissao = fGetString(ID.deliveryDate, VbStrConv.ProperCase) .dataNascimento = fGetString(ID.birthDate, VbStrConv.ProperCase) .dataValidade = fGetString(ID.validityDate, VbStrConv.ProperCase nrBI As String nrNIF As String nrSNS As String nrSS As String

) .localidade = fGetString(ID.locale, VbStrConv.ProperCase) .nacionalidade = fGetString(ID.nationality, VbStrConv.ProperCase ) .notas = fGetString(ID.notes, VbStrConv.ProperCase) .nrBI = fGetString(ID.numBI, VbStrConv.ProperCase) .nrCartao = fGetString(ID.cardNumber, VbStrConv.ProperCase) .nrCartaoPAN = fGetString(ID.cardNumberPAN, VbStrConv.ProperCase ) .nrNIF = fGetString(ID.numNIF, VbStrConv.ProperCase) .nrSNS = fGetString(ID.numSNS, VbStrConv.ProperCase) .nrSS = fGetString(ID.numSS, VbStrConv.ProperCase) End With Return cl Catch Return Nothing End Try End Function Public Function fGetFoto(Optional ByVal altura As Integer = 0, Optional ByVa l largura As Integer = 0) As Bitmap Try Dim pic As eidpt.PteidPic = eId.GetPic() Dim bmp As New Bitmap(CSJ2K.J2kImage.FromStream(New System.IO.Memory Stream(pic.picture, 0, pic.piclength, False))) If altura = 0 AndAlso largura = 0 Then Return bmp ElseIf altura > 0 AndAlso largura = 0 Then Return New Bitmap(bmp, (altura * bmp.Width) / bmp.Height, altura ) ElseIf altura = 0 AndAlso largura > 0 Then Return New Bitmap(bmp, largura, (largura * bmp.Height) / bmp.Wid th) Else Return New Bitmap(bmp, largura, altura) End If Catch Return Nothing End Try End Function Sub sCartaoCCInserido(ByVal readerName As String, ByVal cardName As String) MsgBox("Carto inserido") If (readerName <> _leitorSmartReader Or isCardPresent Or Not knownCards. Contains(cardName)) Then Exit Sub MsgBox("Um Carto de Cidado foi detectado.") 'configs.leitorSmartReader = readerName isCardPresent = True End Sub Sub sCartaoCCRemovido(ByVal readerName As String) isCardPresent = False End Sub Public Sub sLoadCC() 'scWatch = SCWatcher.GetInstance() ' Daemon starts when instantiated 'ccCurrentReader = ""

'If (scWatch.ListReaders.Length > 0) Then 'ccCurrentReader = scWatch.ListReaders(0) 'End If 'AddHandler scWatch.CardInserted, AddressOf sCartaoCCInserido ' AddHandler scWatch.CardRemoved, AddressOf sCartaoCCRemovido ' scWatcher.ReaderInserted += new SCWatcher.ReaderInsertedHandler(scWatc her_ReaderInserted); ' scWatcher.ReaderRemoved += new SCWatcher.ReaderRemovedHandler(scWatche r_ReaderRemoved); ' scWatcher.onerror += new SCWatcher.ErrorHandler(scWatcher_onerror); ' TODO: Test and validate the use of delegate as function pointer 'eId.ChangeAddressHandler += new EIDPT.ChangeAddressCallback(ChangeAddre ssHandler); 'eId.ChangePinHandler += new EIDPT.CapPinChangeCallback(ChangePinHandler ); End Sub End Class

Vous aimerez peut-être aussi