Esempio n. 1
0
        private void ReadPicture(Citizen citizen)
        {
            var pictureData = Pteid.GetPic();

            if (pictureData == null || pictureData.picture == null)
            {
                return;
            }

            var j2kImg = CSJ2K.J2kImage.FromBytes(pictureData.picture);
            var bmap   = j2kImg.As <Bitmap>();

            var imgConverter = new ImageConverter();
            var bitmapBytes  = (byte[])imgConverter.ConvertTo(bmap, typeof(byte[]));

            citizen.Picture = Convert.ToBase64String(bitmapBytes);
        }
Esempio n. 2
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);
        }