Beispiel #1
0
        public void TestEncodeMessage()
        {
            QRCode qr     = QRCode.Encode("HELLO WORLD");
            string result = "0110000101101111000110100010111001011011100010011010100001101000000111011000001000111101100000100011110110000010001111011000001000111101100";

            Assert.AreEqual(result, qr.Encode_Message());
        }
 public void QRCodeClick(object sender, RoutedEventArgs e)
 {
     if (sender == createQR)
     {
         //Creation of the QRCode
         OnWindowClosing(null, null);
         Window window = new CreateQR(this);
         window.ShowDialog();
     }
     else if (sender == decryptQR && img != null)
     {
         string result = "Impossible de décoder ce QRCode\nL'image doit être clair et le type de QRCode 1 ou 2 avec masque 0 et alphanumérique uniquement.\nVeillez à avoir le code droit sur un fond blanc.";
         try
         {
             result = QRCode.Decode(img);
             System.Windows.Clipboard.SetText(result);
             result = "Le Code Signifie : " + result + "\nLe texte a été collé dans le presse papier";
         }
         catch (Exception ex)
         {
         }
         finally
         {
             System.Windows.MessageBox.Show(result, "QRCode Decoder", MessageBoxButton.OK);
         }
     }
     else if (sender.GetType() == typeof(string))
     {
         string qrContent = (string)sender;
         img        = QRCode.Encode(qrContent);
         sDlg.Title = "Sauvegardez votre QR Code";
         if (sDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
         {
             selectedFileName.Push(img.Save(sDlg.FileName));
             InitButtons();
             SetImageSource(sDlg.FileName);
         }
         sDlg.Title = "Save image";
     }
 }
        public ModuleQRCode()
            : base("/doorbell")
        {
            Get["/mobile_qrcode", true] = async(parameters, ct) =>
            {
                //string DeviceId = this.Request.Query["ro"];
                string user = this.Request.Query["user"];
                //Match m = Regex.Match(DeviceId, @"^\w{2}-\w{2}-\w{2}-\w{2}-\w{2}-\w{2}$");
                //if (m.Length == 0)
                //    return HttpStatusCode.BadRequest;   // illigal Device address format

                //DeviceId = m.Value;
                if (user.Length == 0)
                {
                    return(HttpStatusCode.BadRequest);
                }

                using (var db = new ICMDBContext())
                {
                    var sipAccount = (from account in db.Sipaccounts
                                      where account.C_user == user
                                      select account).FirstOrDefault();
                    if (sipAccount == null)
                    {
                        return(HttpStatusCode.BadRequest);
                    }

                    string content = "";
                    switch (Config.Instance.CloudSolution)
                    {
                    case CloudSolution.SIPServer:
                        string sipServerIP = Config.Instance.SIPServerIP;
                        content += sipAccount.C_user + "\n" + sipAccount.C_password + "\n" + sipServerIP;
                        break;

                    case CloudSolution.PPHook:
                        string icmServerIP = Config.Instance.OutboundIP;
                        string result      = await HttpClient.GetPPHookServiceToken("8001");

                        PPHookServiceToken pphookServiceToken = JsonConvert.DeserializeObject <PPHookServiceToken>(result);
                        string             token     = pphookServiceToken.token;
                        string             userGroup = sipAccount.C_usergroup;
                        content += sipAccount.C_user + "\n" +
                                   sipAccount.C_password + "\n" +
                                   icmServerIP + "\n" +
                                   token + "\n" +
                                   userGroup;
                        break;
                    }
                    //string content = "http://www.google.com/";

                    //将要編碼的文字生成出QRCode的图檔
                    System.Drawing.Bitmap bitmap = QRCode.Encode(content);
                    //儲存图片
                    MemoryStream ms = new MemoryStream();
                    bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);   // JPG、GIF、PNG等均可
                    byte[] imageData = ms.ToArray();
                    //bitmap.Save(@"D:\temp.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

                    var response = new Response();
                    response.ContentType = "image/jpg";
                    response.Contents    = s => s.Write(imageData, 0, imageData.Count());
                    return(response);
                }
            };
        }