/// <summary> /// Obters the dados cartao cidadao. /// </summary> /// <param name="leitor">The leitor.</param> /// <returns></returns> private Cidadao ObterDadosCartaoCidadao(string leitor) { Cidadao cidadao = null; try { Pteid.Init(leitor); Pteid.SetSODChecking(0); var x = Pteid.GetID(); var pins = Pteid.GetPINs(); var pinMorada = pins.Where(fi => fi.id == 131).FirstOrDefault(); PteidAddr address = null; // Descomentar linhas abaixo para ler a morada. // Nota: Vai pedir o PIN de morada, geralmente é: 0000 //if (pinMorada.triesLeft > 0) //{ // address = // Pteid.GetAddr(); //} // Obter a fotografia e converter para byte[]. var y = Pteid.GetPic(); byte[] photo = null; using (MemoryStream ms = new MemoryStream(y.picture, 0, y.piclength, false)) { BitmapImageCreator.Register(); var tempImage = CSJ2K.J2kImage.FromStream(ms); ms.Close(); var img = tempImage.As <Bitmap>(); using (MemoryStream ms2 = new MemoryStream()) { img.Save(ms2, ImageFormat.Jpeg); photo = ms2.ToArray(); } } cidadao = new Cidadao() { NomeCompleto = ConverterString(x.firstname + " " + x.name), NumBI = x.numBI, NIF = x.numNIF, SNS = x.numSNS, SS = x.numSS, Sexo = x.sex, DataValidade = DateTime.Parse(x.validityDate), DataNascimento = DateTime.Parse(x.birthDate), Nacionalidade = ConverterString(x.nationality), Fotografia = Convert.ToBase64String(photo), EntidadeEmissora = ConverterString(x.deliveryEntity), //TODO: Adicionar outros campo }; if (address != null) { // TODO: Caso a prorpiedade "streettype" venha a vazio ler a rua no campo "place". cidadao.Rua = ConverterString(address.streettype) + " " + ConverterString(address.street) + ", " + ConverterString(address.door); cidadao.CodigoPostal = address.cp4 + "-" + address.cp3; cidadao.Localidade = ConverterString(address.locality); cidadao.Municipio = ConverterString(address.municipalityDesc); cidadao.Distrito = ConverterString(address.districtDesc); } } catch (Exception) { throw; } finally { Pteid.Exit(0); } return(cidadao); }
public void dumpAddr(PteidAddr addrData) { Utils.writeLog("addrData.addressF " + addrData.addressF + "\n"); Utils.writeLog("addrData.addrType " + addrData.addrType + "\n"); Utils.writeLog("addrData.building " + addrData.building + "\n"); Utils.writeLog("addrData.buildingAbbr " + addrData.buildingAbbr + "\n"); Utils.writeLog("addrData.cityF " + addrData.cityF + "\n"); Utils.writeLog("addrData.country " + addrData.country + "\n"); Utils.writeLog("addrData.countryDescF " + addrData.countryDescF + "\n"); Utils.writeLog("addrData.cp3 " + addrData.cp3 + "\n"); Utils.writeLog("addrData.cp4 " + addrData.cp4 + "\n"); Utils.writeLog("addrData.district " + addrData.district + "\n"); Utils.writeLog("addrData.districtDesc " + addrData.districtDesc + "\n"); Utils.writeLog("addrData.door " + addrData.door + "\n"); Utils.writeLog("addrData.floor " + addrData.floor + "\n"); Utils.writeLog("addrData.freguesia " + addrData.freguesia + "\n"); Utils.writeLog("addrData.freguesiaDesc " + addrData.freguesiaDesc + "\n"); Utils.writeLog("addrData.locality " + addrData.locality + "\n"); Utils.writeLog("addrData.localityF " + addrData.localityF + "\n"); Utils.writeLog("addrData.municipality " + addrData.municipality + "\n"); Utils.writeLog("addrData.municipalityDesc " + addrData.municipalityDesc + "\n"); Utils.writeLog("addrData.numMor " + addrData.numMor + "\n"); Utils.writeLog("addrData.numMorF " + addrData.numMorF + "\n"); Utils.writeLog("addrData.place " + addrData.place + "\n"); Utils.writeLog("addrData.postal " + addrData.postal + "\n"); Utils.writeLog("addrData.postalF " + addrData.postalF + "\n"); Utils.writeLog("addrData.regioF " + addrData.regioF + "\n"); Utils.writeLog("addrData.side " + addrData.side + "\n"); Utils.writeLog("addrData.street " + addrData.street + "\n"); Utils.writeLog("addrData.streettype " + addrData.streettype + "\n"); Utils.writeLog("addrData.streettypeAbbr " + addrData.streettypeAbbr + "\n"); Utils.writeLog("addrData.version " + addrData.version + "\n"); }