Пример #1
0
 private void InitCustomFont(string text)
 {
     QRCoder.QRCodeGenerator qr   = new QRCoder.QRCodeGenerator();
     QRCoder.QRCodeData      data = qr.CreateQrCode(text, QRCoder.QRCodeGenerator.ECCLevel.Q);
     QRCoder.QRCode          code = new QRCoder.QRCode(data);
     qrBox.Image = code.GetGraphic(10);
 }
Пример #2
0
 public void SaveQrCode(string data, string filename, QRCoder.QRCodeGenerator.ECCLevel err_cor)
 {
     QRCoder.QRCodeData qr_data = qgen.CreateQrCode(data, err_cor);
     qrCode = new QRCoder.QRCode(qr_data);
     bitmap = qrCode.GetGraphic(100, Color.Black, Color.White, false);
     bitmap.Save(filename);
 }
Пример #3
0
 /// <summary>
 /// 生成二维码
 /// </summary>
 /// <param name="value">需要生成的值</param>
 /// <param name="pixelsPerModule">像素</param>
 /// <param name="level">级别</param>
 /// <param name="drawQuietZones">是否生成白色边框</param>
 /// <param name="ico">ico logo</param>
 /// <param name="iconSizePercent">log大小比例</param>
 /// <param name="iconBorderWidth">log的边框</param>
 /// <returns></returns>
 public Bitmap GetQRCode(string value, int pixelsPerModule = 8, QRCodeLevel level = QRCodeLevel.M, bool drawQuietZones = true, Bitmap ico = null, int iconSizePercent = 15, int iconBorderWidth = 6)
 {
     QRCoder.QRCodeGenerator Tool   = new QRCoder.QRCodeGenerator();
     QRCoder.QRCodeData      data   = Tool.CreateQrCode(value, (QRCoder.QRCodeGenerator.ECCLevel)((int)level), true);
     QRCoder.QRCode          qrcode = new QRCoder.QRCode(data);
     return(qrcode.GetGraphic(pixelsPerModule, Color.Black, Color.White, ico, iconSizePercent, iconBorderWidth, drawQuietZones));
 }
Пример #4
0
 private QRCoder.QRCode GenerateQRCode(string v)
 {
     QRCoder.QRCodeGenerator QRG        = new QRCoder.QRCodeGenerator();
     QRCoder.QRCodeData      qRCodeData = QRG.CreateQrCode(v, QRCoder.QRCodeGenerator.ECCLevel.H);
     QRCoder.QRCode          qRCode     = new QRCoder.QRCode(qRCodeData);
     return(qRCode);
 }
Пример #5
0
        public static Bitmap GetQrCodeBitMap(string content, int version, int pixel)
        {
            QRCoder.QRCodeGenerator coder    = new QRCoder.QRCodeGenerator();
            QRCoder.QRCodeData      codeData = coder.CreateQrCode(content, QRCoder.QRCodeGenerator.ECCLevel.M, true, true);
            QRCoder.QRCode          code     = new QRCoder.QRCode(codeData);
            Bitmap bitMap = code.GetGraphic(pixel, Color.Black, Color.White, true);

            return(bitMap);
        }
Пример #6
0
        /// <summary>
        /// generate QR Barcode (as image) with info received from the client
        /// </summary>
        /// <param name="codeInfo"></param>
        /// <returns></returns>
        private HttpContent GenerateQRImage(string codeInfo)
        {
            QRCoder.QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();
            QRCoder.QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(codeInfo, QRCoder.QRCodeGenerator.ECCLevel.Q);
            QRCoder.Base64QRCode    qrCode      = new QRCoder.Base64QRCode(qrCodeData);
            string qrCodeImageAsBase64          = qrCode.GetGraphic(5);

            return(new StringContent(qrCodeImageAsBase64));
        }
Пример #7
0
        /// <summary>
        /// 生成不带图标的二维码
        /// </summary>
        /// <param name="msg">二维码内容</param>
        /// <param name="version">版本 1 ~ 40</param>
        /// <param name="pixel">像素点大小(二维码的大小)</param>
        /// <param name="white_edge">二维码白边</param>
        /// <returns></returns>
        public static Bitmap Code(string msg, int version, int pixel, bool white_edge)
        {
            QRCoder.QRCodeGenerator code_generator = new QRCoder.QRCodeGenerator();
            QRCoder.QRCodeData      code_data      = code_generator.CreateQrCode(msg, QRCoder.QRCodeGenerator.ECCLevel.M /* 这里设置容错率的一个级别 */, true, true, QRCoder.QRCodeGenerator.EciMode.Utf8, version);
            QRCoder.QRCode          code           = new QRCoder.QRCode(code_data);
            Bitmap bmp = code.GetGraphic(pixel, Color.Black, Color.White, null, 0, 0, white_edge);

            return(bmp);
        }
Пример #8
0
        /// <summary>
        /// 生成不带图标的二维码到指定的路径
        /// </summary>
        /// <param name="msg">二维码内容</param>
        /// <param name="version">版本 1 ~ 40</param>
        /// <param name="pixel">像素点大小(二维码的大小)</param>
        /// <param name="white_edge">二维码白边</param>
        /// <param name="path">二维码存储路径</param>
        /// <param name="format">二维码图片格式(.Bmp .Png等)</param>
        public static void Code(string msg, int version, int pixel, bool white_edge, string path, ImageFormat format)
        {
            QRCoder.QRCodeGenerator code_generator = new QRCoder.QRCodeGenerator();
            QRCoder.QRCodeData      code_data      = code_generator.CreateQrCode(msg, QRCoder.QRCodeGenerator.ECCLevel.M /* 这里设置容错率的一个级别 */, true, true, QRCoder.QRCodeGenerator.EciMode.Utf8, version);
            QRCoder.QRCode          code           = new QRCoder.QRCode(code_data);
            Bitmap bmp = code.GetGraphic(pixel, Color.Black, Color.White, null, 0, 0, white_edge);

            bmp.Save(path, format);
        }
Пример #9
0
        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="msg">信息</param>
        /// <param name="pixel">像素点大小</param>
        /// <returns>位图</returns>
        public static Bitmap GenQRCode(string msg, int pixel)
        {
            QRCoder.QRCodeGenerator code_generator = new QRCoder.QRCodeGenerator();
            QRCoder.QRCodeData      code_data      = code_generator.CreateQrCode(msg, QRCoder.QRCodeGenerator.ECCLevel.M /* 这里设置容错率的一个级别 */);
            QRCoder.QRCode          code           = new QRCoder.QRCode(code_data);
            Bitmap bmp = code.GetGraphic(pixel, Color.Black, Color.White, drawQuietZones: true);

            return(bmp);
        }
Пример #10
0
        public static System.Drawing.Bitmap GetQRCodeBitmap(string aUrl)
        {
            QRCoder.QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();
            QRCoder.QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(aUrl, QRCoder.QRCodeGenerator.ECCLevel.Q);
            QRCoder.QRCode          qrCode      = new QRCoder.QRCode(qrCodeData);
            System.Drawing.Bitmap   qrCodeImage = qrCode.GetGraphic(10);

            return(qrCodeImage);
        }
Пример #11
0
        /// <summary>
        /// Рисует QR код
        /// </summary>
        /// <param name="data">данный</param>
        /// <param name="g">объект графики</param>
        /// <param name="z">размер квадрата</param>
        /// <param name="p">координаты левого верхнего угла</param>
        ///  <param name="err_cor">уровень коррекции ошибок</param>
        public void DrawQrCode(string data, Graphics g, int z, PointF p, QRCoder.QRCodeGenerator.ECCLevel err_cor)
        {
            QRCoder.QRCodeData qr_data = qgen.CreateQrCode(data, err_cor);
            qrCode = new QRCoder.QRCode(qr_data);
            bitmap = qrCode.GetGraphic(10, Color.Black, Color.White, false);
            float h = z * (float)3.779527559055;

            g.DrawImage(bitmap, p.X, p.Y, h, h);
        }
Пример #12
0
        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="msg">信息</param>
        /// <param name="version">版本 1 ~ 40</param>
        /// <param name="pixel">像素点大小</param>
        /// <param name="icon_path">图标路径</param>
        /// <param name="icon_size">图标尺寸</param>
        /// <param name="icon_border">图标边框厚度</param>
        /// <param name="white_edge">二维码白边</param>
        /// <returns>位图</returns>
        public static Bitmap code(string msg, int pixel, string icon_path, int icon_size, int icon_border, bool white_edge)
        {
            QRCoder.QRCodeGenerator code_generator = new QRCoder.QRCodeGenerator();

            QRCoder.QRCodeData code_data = code_generator.CreateQrCode(msg, QRCoder.QRCodeGenerator.ECCLevel.M /* 这里设置容错率的一个级别 */, true, true, QRCoder.QRCodeGenerator.EciMode.Utf8);

            QRCoder.QRCode code = new QRCoder.QRCode(code_data);

            Bitmap icon = new Bitmap(icon_path);

            Bitmap bmp = code.GetGraphic(pixel, Color.Black, Color.White, icon, icon_size, icon_border, white_edge);

            return(bmp);
        }
Пример #13
0
        /// <summary>
        /// 生成二维码 返回图片对象
        /// </summary>
        /// <param name="content"></param>
        /// <returns></returns>
        public static Bitmap CreateCodeSimpleBitmap(string content)
        {
            if (string.IsNullOrEmpty(content))
            {
                return(null);
            }

            QRCoder.QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();
            QRCoder.QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(content, QRCoder.QRCodeGenerator.ECCLevel.Q);
            QRCoder.QRCode          qrCode      = new QRCoder.QRCode(qrCodeData);
            Bitmap qrCodeImage = qrCode.GetGraphic(20, Color.Black, Color.White, true);

            return(qrCodeImage);
        }
Пример #14
0
        public static string GetQRCodeEmbeddedImg(string identity, byte[] secret, QRCoder.QRCodeGenerator.ECCLevel size)
        {
            string base32Secret = GetSecretCode(secret);
            string keyUri       = string.Format("otpauth://totp/{0}?secret={1}", System.Web.HttpUtility.UrlEncode(identity), base32Secret);

            QRCoder.QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();
            QRCoder.QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(keyUri, size);
            QRCoder.QRCode          qrCode      = new QRCoder.QRCode(qrCodeData);
            Bitmap qrCodeImage = qrCode.GetGraphic(size == QRCoder.QRCodeGenerator.ECCLevel.L ? 5 : (size == QRCoder.QRCodeGenerator.ECCLevel.M || size == QRCoder.QRCodeGenerator.ECCLevel.H ? 10 : 20));

            using (MemoryStream ms = new MemoryStream())
            {
                qrCodeImage.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
                byte[] png      = ms.GetBuffer();
                string imageUrl = "data:image/png;base64," + Convert.ToBase64String(png);
                return(imageUrl);
            }
        }
Пример #15
0
        public Bitmap code(string msg, int version, int pixel, int icon_size, int icon_border, bool white_edge)
        {
            string icon_path = Environment.CurrentDirectory + @"\wwwroot\img\logo.jpg";

            logger.LogInformation(icon_path);

            QRCoder.QRCodeGenerator code_generator = new QRCoder.QRCodeGenerator();

            QRCoder.QRCodeData code_data = code_generator.CreateQrCode(msg, QRCoder.QRCodeGenerator.ECCLevel.M /* 这里设置容错率的一个级别 */, true, true, QRCoder.QRCodeGenerator.EciMode.Utf8, version);

            QRCoder.QRCode code = new QRCoder.QRCode(code_data);


            Bitmap icon = new Bitmap(icon_path);
            Bitmap bmp  = code.GetGraphic(pixel, Color.Black, Color.White, icon, icon_size, icon_border, white_edge);

            return(bmp);
        }
Пример #16
0
        private async void ShoarQrBtnClicked(object sender, RoutedEventArgs e)
        {
            var index = (sender as Button).TabIndex;

            QRCoder.PayloadGenerator.WiFi generator;
            string title = "";

            if (index == 0)
            {
                generator = new QRCoder.PayloadGenerator.WiFi(title = data.wlanInfo.wl0_ssid, data.wlanInfo.wl0_wpa_psk, QRCoder.PayloadGenerator.WiFi.Authentication.WPA);
            }
            else
            {
                generator = new QRCoder.PayloadGenerator.WiFi(title = data.wlanInfo.wl1_ssid, data.wlanInfo.wl1_wpa_psk, QRCoder.PayloadGenerator.WiFi.Authentication.WPA);
            }
            QRCoder.QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();
            QRCoder.QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(generator.ToString(), QRCoder.QRCodeGenerator.ECCLevel.Q);
            await new Control.QrCodeDialog(title, "Share Wi-Fi", qrCodeData).ShowAsync();
        }
Пример #17
0
        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="msg">信息</param>
        /// <param name="version">版本 1 ~ 40</param>
        /// <param name="pixel">像素点大小</param>
        /// <param name="icon_path">图标路径</param>
        /// <param name="icon_size">图标尺寸</param>
        /// <param name="icon_border">图标边框厚度</param>
        /// <param name="white_edge">二维码白边</param>
        /// <returns>位图</returns>
        public static Bitmap code(string msg, int version = 5, int pixel = 6, string icon_path = "", int icon_size = 20, int icon_border = 2, bool white_edge = true)
        {
            QRCoder.QRCodeGenerator code_generator = new QRCoder.QRCodeGenerator();
            QRCoder.QRCodeData      code_data      = code_generator.CreateQrCode(msg, QRCoder.QRCodeGenerator.ECCLevel.M /* 这里设置容错率的一个级别 */, true, true, QRCoder.QRCodeGenerator.EciMode.Utf8, version);
            QRCoder.QRCode          code           = new QRCoder.QRCode(code_data);
            Bitmap icon;

            if (string.IsNullOrEmpty(icon_path))
            {
                icon = null;
            }
            else
            {
                icon = new Bitmap(icon_path);
            }
            Bitmap bmp = code.GetGraphic(pixel, Color.Black, Color.White, icon, icon_size, icon_border, white_edge);

            return(bmp);
        }
Пример #18
0
        public Image qrgen(string qrcode)
        {
            if (qrcode.Equals(""))
            {
                int first_qr  = rand.Next(10000, 99999);
                int second_qr = rand.Next(10000, 99999);
                qrcode = first_qr.ToString() + second_qr.ToString();
            }
            else
            {
                qrcode = qrcode.ToString();
            }
            QRCoder.QRCodeGenerator qrCodeGenerator = new QRCoder.QRCodeGenerator();
            QRCoder.QRCodeData      qrCodeData      = qrCodeGenerator.CreateQrCode(qrcode, QRCoder.QRCodeGenerator.ECCLevel.Q);
            QRCoder.QRCode          qrCode          = new QRCoder.QRCode(qrCodeData);
            Image img = qrCode.GetGraphic(2);

            return(img);
        }
        private void btnQrCodeGenerator_Click(object sender, RoutedEventArgs e)
        {
            QRCoder.QRCodeGenerator qr   = new QRCoder.QRCodeGenerator();
            QRCoder.QRCodeData      data = qr.CreateQrCode(txtQrCode.Text, QRCoder.QRCodeGenerator.ECCLevel.L);
            QRCoder.QRCode          code = new QRCoder.QRCode(data);
            Bitmap bitmap = code.GetGraphic(100);

            using (MemoryStream memory = new MemoryStream())
            {
                bitmap.Save(memory, System.Drawing.Imaging.ImageFormat.Bmp);
                memory.Position = 0;
                BitmapImage bitmapimage = new BitmapImage();
                bitmapimage.BeginInit();
                bitmapimage.StreamSource = memory;
                bitmapimage.CacheOption  = BitmapCacheOption.OnLoad;
                bitmapimage.EndInit();
                qrImageView.Source = bitmapimage;
            }
        }
Пример #20
0
        private ImageSource GenerateQRCode(string key, string username)
        {
            string qrString = "otpauth://totp/GP:" + username + "?secret=" + key + "&issuer=GP";

            QRCoder.QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();
            QRCoder.QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(qrString, QRCoder.QRCodeGenerator.ECCLevel.Q);
            QRCoder.QRCode          qrCode      = new QRCoder.QRCode(qrCodeData);
            Bitmap qrCodeImage = qrCode.GetGraphic(20);

            using (MemoryStream memory = new MemoryStream())
            {
                qrCodeImage.Save(memory, System.Drawing.Imaging.ImageFormat.Bmp);
                memory.Position = 0;
                BitmapImage bitmapimage = new BitmapImage();
                bitmapimage.BeginInit();
                bitmapimage.StreamSource = memory;
                bitmapimage.CacheOption  = BitmapCacheOption.OnLoad;
                bitmapimage.EndInit();

                return(bitmapimage);
            }
        }
Пример #21
0
        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="msg">信息</param>
        /// <param name="version">版本 1 ~ 40</param>
        /// <param name="pixel">像素点大小</param>
        /// <param name="icon_path">图标路径</param>
        /// <param name="icon_size">图标尺寸</param>
        /// <param name="icon_border">图标边框厚度</param>
        /// <param name="white_edge">二维码白边</param>
        /// <returns>位图</returns>
        public static Bitmap EncodeQRCode(string msg, int version, int pixel, string icon_path, int icon_size, int icon_border, bool white_edge)
        {
            QRCoder.QRCodeGenerator code_generator = new QRCoder.QRCodeGenerator();

            QRCoder.QRCodeData code_data = code_generator.CreateQrCode(msg, QRCoder.QRCodeGenerator.ECCLevel.H /* 这里设置容错率的一个级别 */, true, false, QRCoder.QRCodeGenerator.EciMode.Utf8, version);

            QRCoder.QRCode code = new QRCoder.QRCode(code_data);

            Bitmap icon;

            if (icon_path == null || icon_path == "")
            {
                icon = null;
            }
            else
            {
                icon = new Bitmap(icon_path);
            }

            Bitmap bmp = code.GetGraphic(pixel, Color.Black, Color.White, icon, icon_size, icon_border, white_edge);

            return(bmp);
        }
Пример #22
0
        private void cargarDatos()
        {
            //colocar en referencia la dll de qrcode para oder generar el codigo
            String codigogenerado = "000008967";

            //generamos el codigo


            QRCoder.QRCodeGenerator qRCodeGenerator = new QRCoder.QRCodeGenerator();
            QRCoder.QRCodeData      qRCodeData      = qRCodeGenerator.CreateQrCode(codigogenerado, QRCoder.QRCodeGenerator.ECCLevel.Q);
            QRCoder.QRCode          qRCode          = new QRCoder.QRCode(qRCodeData);
            //transformamos en bits
            Bitmap bmp = qRCode.GetGraphic(7);



            using (MemoryStream ms = new MemoryStream())
            {
                //importante para generar el qr
                bmp.Save(ms, ImageFormat.Bmp);


                PermisoSalida ps = new PermisoSalida();


                List <PermisoSalida.PermisoSalidaRow> PermisoR = new List <PermisoSalida.PermisoSalidaRow>();
                PermisoSalida.PermisoSalidaRow        row      = ps._PermisoSalida.NewPermisoSalidaRow();


                //dia lunes 26
                //Dato para imprimir el volante : 250555
                // PermisoSalidaDA permisoda = new PermisoSalidaDA();

                Entities.Request.RequestImprimirPermisoSalida requestpermiso = new Entities.Request.RequestImprimirPermisoSalida();
                PermisoSalidaDA permisoda = new PermisoSalidaDA();
                requestpermiso.PermisoSalida = "250555";

                List <Entities.PermisoSalida> ListaPermisoSalida = permisoda.ImprimirPermisoSalida(requestpermiso);


                foreach (Entities.PermisoSalida datos in ListaPermisoSalida)
                {
                    row = ps._PermisoSalida.NewPermisoSalidaRow();


                    row.PermisoSalida    = datos.NumeroPermisoSalida;
                    row.Rol              = datos.Rol;
                    row.Agencia          = datos.Agencia;
                    row.Despachador      = datos.Despachador;
                    row.Carnet           = datos.Carnet;
                    row.Recalada         = datos.Recalada;
                    row.NombreNave       = datos.NombreNave;
                    row.FechaArribo      = datos.FechaArribo;
                    row.TipoDocumento    = datos.TipoDocumento;
                    row.NumeroDocumento  = datos.NumeroDocumento;
                    row.Cliente          = datos.Cliente;
                    row.DocumentoAduana  = datos.DocumentoAduana;
                    row.FechaEmision     = datos.FechaEmision;
                    row.FechaVencimiento = datos.FechaVencimiento;
                    row.Item             = datos.Item;
                    row.MarcasNumeros    = datos.MarcasNumeros;
                    row.Mercaderia       = datos.Mercaderia;
                    //row.IdenManifiesto = datos.IdenManifiesto;
                    row.TipoEmbalaje   = datos.TipoEmbalaje;
                    row.TipoCarga      = datos.TipoCarga;
                    row.Carga          = datos.Carga;
                    row.Cantidad       = datos.Cantidad;
                    row.Peso           = datos.Peso;
                    row.Viaje          = datos.Viaje;
                    row.Contenedor     = datos.Contenedor;
                    row.FechaIngreso   = datos.FechaIngreso;
                    row.CargaPeligrosa = datos.CargaPeligrosa;
                    row.Manifiesto     = datos.Manifiesto;
                    row.Ubicacion      = datos.Ubicacion;
                    row.Sada           = datos.Sada;
                    row.Usuario        = datos.Usuario;
                    row.Conectado      = datos.Conectado;
                    row.IQBF           = datos.IQBF;

                    PermisoR.Add(row);
                }



                //comentado dia viernes 23

                /* row.Agencia = "TRAMARSA";
                 * row.Carga = "STANDARD 40";
                 * row.Cantidad = "1.00";
                 * row.Cliente = "INTRADEVCO INDUSTRIAL SA";
                 * //   row.CargaPeligrosa = "NO";
                 * row.Carnet = "5547-17-R";
                 * row.Conectado = "NO";
                 * row.Contenedor = "UACU9798779";
                 * row.Despachador = "CUARESMA SIERRA MARIO JULIO";
                 * row.DocumentoAduana = "118-2019-10-325270-01-8";
                 * row.FechaArribo = "27/07/2019";
                 * row.FechaEmision = "12/08/2019";
                 * row.FechaIngreso = "20/07/2019";
                 * row.FechaVencimiento = "12/08/2019";
                 * row.Rol = "AGENTE ADUANA";
                 * row.IQBF = "NO";
                 * row.Recalada = "00000838509";
                 * row.TipoCarga = "CONTENEDORES";
                 * row.TipoDocumento = "CONOCIMIENTO DE EMBARQUE";
                 * row.TipoEmbalaje = "CONTENEDOR";
                 * row.Viaje = "927W";
                 * row.NombreNave = "NORDIC HONG KONG";
                 * row.Manifiesto = "2019-01987";
                 * row.NumeroDocumento = "HLCUSS5190707005";
                 * //  row.Modalidad = "NORMAL";
                 * row.MarcasNumeros = " ";
                 * row.Item = "0001";
                 * row.Peso = "25,300";
                 * row.Ubicacion = "18 /E /1";
                 * // row.CodigoQR = ms.ToArray();
                 * //row.Numero_Permiso = "asd";
                 */



                reportViewer1.LocalReport.DataSources.Clear();
                reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("PermisoSalida", PermisoR));

                reportViewer1.RefreshReport();
            }
        }
 public void qrCodeGenerate(string text)
 {
     QRCoder.QRCodeData qrData = qRCodeGenerator.CreateQrCode(text, QRCoder.QRCodeGenerator.ECCLevel.H);
     QRCoder.QRCode     qrCode = new QRCoder.QRCode(qrData);
     qrCodeSave(qrCode);
 }
Пример #24
0
        public CreateQRCodeResponse CreateQRCode(CreateQRCodeRequest createQRCodeRequest)
        {
            int count = _qRCodeRepository.GetAlleQRCodes()
                        .Where(x => x.eVoucherId == createQRCodeRequest.eVoucharId).Count();

            if (count < 1000)
            {
                string promoCode = String.Empty;
                string imageURL  = string.Empty;
                QRCode obj       = new QRCode();
                obj.Id         = Guid.NewGuid();
                obj.eVoucherId = createQRCodeRequest.eVoucharId;
                bool isAlreadyHave = false;
                do
                {
                    promoCode     = GeneratePromoteCode();
                    isAlreadyHave = _qRCodeRepository.CheckPromoCode(promoCode);
                }while (isAlreadyHave);
                obj.PromoCode = promoCode;
                QRCoder.QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();
                QRCoder.QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(promoCode, QRCoder.QRCodeGenerator.ECCLevel.Q);
                QRCoder.QRCode          qrCode      = new QRCoder.QRCode(qrCodeData);
                try
                {
                    using (Bitmap bitMap = qrCode.GetGraphic(20))
                    {
                        using (MemoryStream ms = new MemoryStream())
                        {
                            bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
                            byte[] byteImage = ms.ToArray();
                            imageURL        = "data:image/png;base64," + Convert.ToBase64String(byteImage);
                            obj.QRCodeImg   = byteImage;
                            obj.CreatedBy   = "System";
                            obj.CreatedDate = DateTime.Now;
                            _qRCodeRepository.CreateQRCode(obj);
                            var qrDto          = _messageMapper.MapToeQRCodeDto(obj);
                            var createResponse = new CreateQRCodeResponse
                            {
                                codeDto    = qrDto,
                                StatusCode = System.Net.HttpStatusCode.OK
                            };
                            return(createResponse);
                        }
                    }
                }
                catch (Exception ex)
                {
                    var createResponse = new CreateQRCodeResponse
                    {
                        StatusCode = System.Net.HttpStatusCode.BadRequest
                    };
                    return(createResponse);
                }
            }
            else
            {
                string        messageStr = "QRCode generation exceed limitation!";
                List <string> msgList    = new List <string>();
                msgList.Add(messageStr);
                var createResponse = new CreateQRCodeResponse
                {
                    Messages = msgList
                };
                return(createResponse);
            }
        }
Пример #25
0
        private void OnOTPQRCode(object sender, EventArgs e)
        {
            if (m_host.MainWindow.GetSelectedEntriesCount() != 1)
            {
                return;
            }
            KPOTP otp = OTPDAO.GetOTP(m_host.MainWindow.GetSelectedEntry(true));

            if (!otp.Valid)
            {
                return;
            }
            try
            {
                byte[]             bOTP = otp.OTPAuthString.ReadUtf8();
                QRCoder.QRCodeData qrd  = QRCoder.QRCodeGenerator.GenerateQrCode(bOTP, QRCoder.QRCodeGenerator.ECCLevel.Q);
                MemUtil.ZeroByteArray(bOTP);
                QRCoder.QRCode qrc = new QRCoder.QRCode(qrd);
                Bitmap         bmp = qrc.GetGraphic(8);
                QRForm         f   = new QRForm();
                f.FormBorderStyle = FormBorderStyle.FixedDialog;
                f.StartPosition   = FormStartPosition.CenterParent;
                f.Text            = PluginTranslate.PluginName;
                f.MinimizeBox     = false;
                f.MaximizeBox     = false;
                PictureBox pb = new PictureBox();
                pb.Size      = new Size(bmp.Width, bmp.Height);
                pb.Location  = new Point(0, 0);
                f.ClientSize = pb.Size;
                pb.Image     = bmp;
                f.Controls.Add(pb);
                if (!string.IsNullOrEmpty(otp.Issuer) && (otp.Issuer != PluginTranslate.PluginName))
                {
                    Label lIssuer = new Label();
                    lIssuer.Width    = f.ClientSize.Width;
                    lIssuer.Text     = otp.Issuer;
                    lIssuer.Location = new Point(0, f.ClientSize.Height + 10);
                    f.Controls.Add(lIssuer);
                    f.Height += lIssuer.Height + 10;
                }
                if (!string.IsNullOrEmpty(otp.Label))
                {
                    Label lLabel = new Label();
                    lLabel.Width    = f.ClientSize.Width;
                    lLabel.Text     = otp.Label;
                    lLabel.Location = new Point(0, f.ClientSize.Height + 10);
                    f.Controls.Add(lLabel);
                    f.Height += lLabel.Height + 10;
                }
                f.Height += 5;
                Timer tClose = new Timer();
                tClose.Interval = 30000;
                tClose.Tick    += (o, e1) =>
                {
                    tClose.Stop();
                    tClose.Dispose();
                    if (f != null)
                    {
                        f.Close();
                    }
                };
                f.Shown += (o, e2) =>
                {
                    KeePass.UI.GlobalWindowManager.AddWindow(f, f);
                    tClose.Start();
                };
                f.FormClosed += (o, e1) => { if (f != null)
                                             {
                                                 KeePass.UI.GlobalWindowManager.RemoveWindow(f);
                                             }
                };
                f.ShowDialog(KeePass.UI.GlobalWindowManager.TopWindow);
                pb.Image.Dispose();
                f.Dispose();
                qrc.Dispose();
                qrd.Dispose();
            }
            catch { }
        }