UserItemView.xaml.cs 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. using CyberX8_Core;
  2. using MECF.Framework.Common.ControlDataContext;
  3. using MECF.Framework.Common.DataCenter;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Collections.ObjectModel;
  7. using System.Linq;
  8. using System.Text.RegularExpressions;
  9. using System.Threading.Tasks;
  10. using System.Windows;
  11. using System.Windows.Controls;
  12. using WPF.Themes.UserControls;
  13. using GlobalEvents = CyberX8_MainPages.Unity.GlobalEvents;
  14. namespace CyberX8_MainPages.Views
  15. {
  16. /// <summary>
  17. /// UserItemView.xaml 的交互逻辑
  18. /// </summary>
  19. public partial class UserItemView :Window
  20. {
  21. #region 内部变量
  22. private UserItem _selectedUser;
  23. #endregion
  24. public UserItemView(UserItem selectedUser = null)
  25. {
  26. InitializeComponent();
  27. if (selectedUser != null) _selectedUser = selectedUser;
  28. }
  29. /// <summary>
  30. /// 窗口加载事件
  31. /// </summary>
  32. /// <param name="sender"></param>
  33. /// <param name="e"></param>
  34. private void Window_Loaded(object sender, RoutedEventArgs e)
  35. {
  36. if (_selectedUser != null)
  37. {
  38. textBoxName.Text = _selectedUser.Name;
  39. textBoxName.IsEnabled = false;
  40. textBoxPassword.Text = _selectedUser.Password;
  41. textBoxPassword.IsEnabled = false;
  42. textBoxNotes.Text = _selectedUser.Notes;
  43. textBoxConfirePassword.Text = _selectedUser.Password;
  44. textBoxConfirePassword.IsEnabled = false;
  45. comBoboxRole.SelectedIndex = (int)Enum.Parse(typeof(Role), _selectedUser.Role);
  46. button2.Visibility = Visibility.Visible;
  47. button1.Visibility = Visibility.Collapsed;
  48. self.Title = "Edit User";
  49. }
  50. else
  51. {
  52. button1.Visibility = Visibility.Visible;
  53. button2.Visibility = Visibility.Collapsed;
  54. }
  55. name_img.Visibility = Visibility.Collapsed;
  56. cpwd_img.Visibility = Visibility.Collapsed;
  57. pwd_img.Visibility = Visibility.Collapsed;
  58. }
  59. /// <summary>
  60. /// 创建按钮
  61. /// </summary>
  62. /// <param name="sender"></param>
  63. /// <param name="e"></param>
  64. private async void CreateButton_Click(object sender, RoutedEventArgs e)
  65. {
  66. PwdBox_LostFocus(null, null);
  67. PwdBoxConfirm_LostFocus(null, null);
  68. UserNameBox_LostFocus(null, null);
  69. if (!string.IsNullOrEmpty(pwd1.Text) || !string.IsNullOrEmpty(pwd2.Text) || !string.IsNullOrEmpty(username.Text))
  70. {
  71. WPFMessageBox.ShowError("Please enter the correct user information!");
  72. return;
  73. }
  74. var users = new ObservableCollection<UserItem>(QueryDataClient.Instance.Service.QueryAllUsers());
  75. if (users.Where(x => x.Name == textBoxName.Text).FirstOrDefault() != null)
  76. {
  77. WPFMessageBox.ShowError("User Name exists");
  78. return;
  79. }
  80. QueryDataClient.Instance.Service.InserUser(new UserItem() { Name = textBoxName.Text, Password = textBoxConfirePassword.Password, Role = (comBoboxRole.SelectedItem as ComboBoxItem).Content.ToString(), Notes = textBoxNotes.Text });
  81. await Task.Delay(500);
  82. GlobalEvents.Instance.OnUserViewUpdateEvent();
  83. this.Close();
  84. }
  85. /// <summary>
  86. /// Edit保存
  87. /// </summary>
  88. /// <param name="sender"></param>
  89. /// <param name="e"></param>
  90. private async void SaveButton_Click(object sender, RoutedEventArgs e)
  91. {
  92. QueryDataClient.Instance.Service.EditUser(new UserItem() { Name = _selectedUser.Name, Password = _selectedUser.Password, Role = (comBoboxRole.SelectedItem as ComboBoxItem).Content.ToString(), Notes = textBoxNotes.Text });
  93. await Task.Delay(500);
  94. GlobalEvents.Instance.OnUserViewUpdateEvent();
  95. this.Close();
  96. }
  97. /// <summary>
  98. /// 密码输入格式提示
  99. /// </summary>
  100. /// <param name="sender"></param>
  101. /// <param name="e"></param>
  102. private void PwdBox_LostFocus(object sender, RoutedEventArgs e)
  103. {
  104. Regex regex = new Regex(@"^[a-zA-Z0-9_]{6,16}$");//6~16位字符
  105. if (!regex.IsMatch(textBoxPassword.Password))
  106. {
  107. pwd1.Text = "Please enter a password of 6 ~ 16 characters, including letters, numbers, or underline!";
  108. pwd_img.Visibility = Visibility.Visible;
  109. }
  110. else
  111. {
  112. pwd1.Text = "";
  113. pwd_img.Visibility = Visibility.Collapsed;
  114. }
  115. }
  116. /// <summary>
  117. /// 二次密码确认提示
  118. /// </summary>
  119. /// <param name="sender"></param>
  120. /// <param name="e"></param>
  121. private void PwdBoxConfirm_LostFocus(object sender, RoutedEventArgs e)
  122. {
  123. if (textBoxConfirePassword.Password != textBoxPassword.Password)
  124. {
  125. pwd2.Text = "The password is not same!";
  126. cpwd_img.Visibility = Visibility.Visible;
  127. }
  128. else
  129. {
  130. pwd2.Text = "";
  131. cpwd_img.Visibility = Visibility.Collapsed;
  132. }
  133. }
  134. /// <summary>
  135. /// 用户名输入提示
  136. /// </summary>
  137. /// <param name="sender"></param>
  138. /// <param name="e"></param>
  139. private void UserNameBox_LostFocus(object sender, RoutedEventArgs e)
  140. {
  141. if (textBoxName.Text == "")
  142. {
  143. username.Text = "User name can not be empty!";
  144. name_img.Visibility = Visibility.Visible;
  145. }
  146. else
  147. {
  148. username.Text = "";
  149. name_img.Visibility = Visibility.Collapsed;
  150. }
  151. }
  152. }
  153. }