PageUserEdit.xaml.cs 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. using NEIntelligentControl2.Models;
  2. using NEIntelligentControl2.Models.Pages;
  3. using NEIntelligentControl2.Models.User;
  4. using NEIntelligentControl2.Service.User;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Drawing;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Windows;
  12. using System.Windows.Controls;
  13. using System.Windows.Data;
  14. using System.Windows.Documents;
  15. using System.Windows.Input;
  16. using System.Windows.Media;
  17. using System.Windows.Media.Imaging;
  18. using System.Windows.Navigation;
  19. using System.Windows.Shapes;
  20. namespace NEIntelligentControl2.Pages.User
  21. {
  22. /// <summary>
  23. /// 用户编辑页面
  24. /// </summary>
  25. public partial class PageUserEdit : Page, IPageMessage
  26. {
  27. private UserInfo userInfo;
  28. /// <summary>
  29. /// 用户信息
  30. /// </summary>
  31. public UserInfo UserInfo { get => userInfo ?? (userInfo = new UserInfo()); set => userInfo = value; }
  32. /// <summary>
  33. /// 是否是编辑模式
  34. /// </summary>
  35. private bool _IsEdit;
  36. private UserManager _UserManager;
  37. private int _FingerIndex = 0;
  38. public PageUserEdit(UserManager um)
  39. {
  40. InitializeComponent();
  41. _UserManager = um;
  42. Init();
  43. }
  44. private void Init()
  45. {
  46. _CBMain.ItemsSource = new string[] { "选择指纹", "指纹1", "指纹2", "指纹3", "指纹4", "指纹5", "指纹6", "指纹7", "指纹8", "指纹9", "指纹10" };
  47. _CBMain.SelectedIndex = 0;
  48. _gd.DataContext = this.UserInfo;
  49. }
  50. public Action<object> OnMessage { get; set; }
  51. private void Button_Click(object sender, RoutedEventArgs e)
  52. {
  53. switch (((Control)sender).Tag)
  54. {
  55. case "submit":// 提交
  56. Submit();
  57. break;
  58. default:return;
  59. }
  60. }
  61. /// <summary>
  62. /// 提交
  63. /// </summary>
  64. private void Submit()
  65. {
  66. _TBTitle.Text = "";
  67. if (string.IsNullOrWhiteSpace(_TBPassword.Password) || string.IsNullOrWhiteSpace(_TBUserName.Text))
  68. {
  69. _TBTitle.Text = "用户名或密码不能为空!";
  70. return;
  71. }
  72. this.UserInfo.Password = _TBPassword.Password;
  73. string message = "";
  74. if (_IsEdit)
  75. {
  76. message = _UserManager.UpdateUser(this.UserInfo);
  77. }
  78. else
  79. {
  80. message = _UserManager.RegisterUser(this.UserInfo);
  81. }
  82. if (message=="success")
  83. {
  84. OnMessage?.Invoke(message);
  85. }
  86. else
  87. {
  88. _TBTitle.Text = message;
  89. }
  90. }
  91. /// <summary>
  92. /// 编辑用户
  93. /// </summary>
  94. internal void EditUser(UserInfo user)
  95. {
  96. UserInfo = user;
  97. _IsEdit = true;
  98. _TBUserName.Text = user.UserName;
  99. _TBUserName.IsReadOnly = true;
  100. _TBName.Text = user.Name;
  101. _Phone.Text = user.Telephone;
  102. _TBPageTitle.Text = "用户编辑";
  103. _gd.DataContext = this.UserInfo;
  104. }
  105. private void _CBMain_SelectionChanged(object sender, SelectionChangedEventArgs e)
  106. {
  107. if (_CBMain.SelectedIndex <= 0) return;
  108. _fi1.IsActive = true;
  109. _FingerIndex = 0;
  110. }
  111. private void InitFingerPoint(byte[] fs)
  112. {
  113. int index = _CBMain.SelectedIndex;
  114. if (index <= 0) return;
  115. var pt = UserInfo.GetType().GetProperty($"Finger{index}");
  116. if (pt == null) return;
  117. pt.SetValue(this.UserInfo, Convert.ToBase64String(fs));
  118. }
  119. private void CapturedPicture(Bitmap obj)
  120. {
  121. Dispatcher.Invoke(() =>
  122. {
  123. switch (_FingerIndex)
  124. {
  125. case 0:
  126. _fi1.ShowImage(obj.GetBitmapImage());
  127. _fi2.IsActive = true;
  128. break;
  129. case 1:
  130. _fi2.ShowImage(obj.GetBitmapImage());
  131. _fi3.IsActive = true;
  132. break;
  133. case 2:
  134. _fi3.ShowImage(obj.GetBitmapImage());
  135. break;
  136. default:
  137. _FingerIndex = 0;
  138. return;
  139. }
  140. ++_FingerIndex;
  141. });
  142. }
  143. }
  144. }