SoftAuthDialog.xaml.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using QRCoder;
  2. using SWRIS.Core;
  3. using SWRIS.Extensions;
  4. using SWRIS.Models;
  5. using System.Drawing;
  6. using System.Windows;
  7. using System.Windows.Controls;
  8. using System.Windows.Input;
  9. namespace SWRIS
  10. {
  11. /// <summary>
  12. /// SoftAuthDialog.xaml 的交互逻辑
  13. /// </summary>
  14. public partial class SoftAuthDialog : Window
  15. {
  16. public SoftAuthorizeModel AuthorizeModel { get; set; }
  17. public SoftAuthDialog()
  18. {
  19. InitializeComponent();
  20. AuthorizeModel = new SoftAuthorizeModel() { MachineCode = SoftAuth.GetMachineCode() };
  21. DataContext = this;
  22. }
  23. private void Window_Loaded(object sender, RoutedEventArgs e)
  24. {
  25. if (AuthorizeModel.MachineCode != null)
  26. {
  27. QRCodeGenerator qrGenerator = new QRCodeGenerator();
  28. QRCodeData qrCodeData = qrGenerator.CreateQrCode(AuthorizeModel.MachineCode, QRCodeGenerator.ECCLevel.Q);
  29. QRCode qrCode = new QRCode(qrCodeData);
  30. Bitmap qrCodeImage = qrCode.GetGraphic(10);
  31. imgQRCode.Source = qrCodeImage.ConvertBitmapToBitmapImage();
  32. }
  33. }
  34. private void Copy_Click(object sender, RoutedEventArgs e)
  35. {
  36. Clipboard.SetDataObject(AuthorizeModel.MachineCode);
  37. }
  38. private void PasteExecuted(object sender, ExecutedRoutedEventArgs e)
  39. {
  40. IDataObject iData = Clipboard.GetDataObject();
  41. if (iData.GetDataPresent(DataFormats.Text))
  42. {
  43. var finalCode = (string)iData.GetData(DataFormats.Text);
  44. AuthorizeModel.FinalData.Set(finalCode);
  45. }
  46. e.Handled = true;
  47. }
  48. private void BtnSave_Click(object sender, RoutedEventArgs e)
  49. {
  50. DialogResult = SoftAuth.WriteRegistry(AuthorizeModel.FinalCode);
  51. }
  52. private void Fourth_TextChanged(object sender, TextChangedEventArgs e)
  53. {
  54. var fourth = sender as TextBox;
  55. if (fourth.Text.Length == fourth.MaxLength)
  56. {
  57. if (SoftAuth.CheckFinalCode(AuthorizeModel.FinalCode))
  58. {
  59. piCheckResult.Visibility = Visibility.Visible;
  60. btnSave.IsEnabled = true;
  61. return;
  62. }
  63. }
  64. piCheckResult.Visibility = Visibility.Hidden;
  65. btnSave.IsEnabled = false;
  66. }
  67. private void Card_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
  68. {
  69. base.OnMouseLeftButtonDown(e);
  70. DragMove();
  71. }
  72. }
  73. }