Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
 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");
 }