using CyberX8_Core; using MECF.Framework.Common.ControlDataContext; using MECF.Framework.Common.DataCenter; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using WPF.Themes.UserControls; using GlobalEvents = CyberX8_MainPages.Unity.GlobalEvents; namespace CyberX8_MainPages.Views { /// /// UserItemView.xaml 的交互逻辑 /// public partial class UserItemView :Window { #region 内部变量 private UserItem _selectedUser; #endregion public UserItemView(UserItem selectedUser = null) { InitializeComponent(); if (selectedUser != null) _selectedUser = selectedUser; } /// /// 窗口加载事件 /// /// /// private void Window_Loaded(object sender, RoutedEventArgs e) { if (_selectedUser != null) { textBoxName.Text = _selectedUser.Name; textBoxName.IsEnabled = false; textBoxPassword.Text = _selectedUser.Password; textBoxPassword.IsEnabled = false; textBoxNotes.Text = _selectedUser.Notes; textBoxConfirePassword.Text = _selectedUser.Password; textBoxConfirePassword.IsEnabled = false; comBoboxRole.SelectedIndex = (int)Enum.Parse(typeof(Role), _selectedUser.Role); button2.Visibility = Visibility.Visible; button1.Visibility = Visibility.Collapsed; self.Title = "Edit User"; } else { button1.Visibility = Visibility.Visible; button2.Visibility = Visibility.Collapsed; } name_img.Visibility = Visibility.Collapsed; cpwd_img.Visibility = Visibility.Collapsed; pwd_img.Visibility = Visibility.Collapsed; } /// /// 创建按钮 /// /// /// private async void CreateButton_Click(object sender, RoutedEventArgs e) { PwdBox_LostFocus(null, null); PwdBoxConfirm_LostFocus(null, null); UserNameBox_LostFocus(null, null); if (!string.IsNullOrEmpty(pwd1.Text) || !string.IsNullOrEmpty(pwd2.Text) || !string.IsNullOrEmpty(username.Text)) { WPFMessageBox.ShowError("Please enter the correct user information!"); return; } var users = new ObservableCollection(QueryDataClient.Instance.Service.QueryAllUsers()); if (users.Where(x => x.Name == textBoxName.Text).FirstOrDefault() != null) { WPFMessageBox.ShowError("User Name exists"); return; } QueryDataClient.Instance.Service.InserUser(new UserItem() { Name = textBoxName.Text, Password = textBoxConfirePassword.Password, Role = (comBoboxRole.SelectedItem as ComboBoxItem).Content.ToString(), Notes = textBoxNotes.Text }); await Task.Delay(500); GlobalEvents.Instance.OnUserViewUpdateEvent(); this.Close(); } /// /// Edit保存 /// /// /// private async void SaveButton_Click(object sender, RoutedEventArgs e) { QueryDataClient.Instance.Service.EditUser(new UserItem() { Name = _selectedUser.Name, Password = _selectedUser.Password, Role = (comBoboxRole.SelectedItem as ComboBoxItem).Content.ToString(), Notes = textBoxNotes.Text }); await Task.Delay(500); GlobalEvents.Instance.OnUserViewUpdateEvent(); this.Close(); } /// /// 密码输入格式提示 /// /// /// private void PwdBox_LostFocus(object sender, RoutedEventArgs e) { Regex regex = new Regex(@"^[a-zA-Z0-9_]{6,16}$");//6~16位字符 if (!regex.IsMatch(textBoxPassword.Password)) { pwd1.Text = "Please enter a password of 6 ~ 16 characters, including letters, numbers, or underline!"; pwd_img.Visibility = Visibility.Visible; } else { pwd1.Text = ""; pwd_img.Visibility = Visibility.Collapsed; } } /// /// 二次密码确认提示 /// /// /// private void PwdBoxConfirm_LostFocus(object sender, RoutedEventArgs e) { if (textBoxConfirePassword.Password != textBoxPassword.Password) { pwd2.Text = "The password is not same!"; cpwd_img.Visibility = Visibility.Visible; } else { pwd2.Text = ""; cpwd_img.Visibility = Visibility.Collapsed; } } /// /// 用户名输入提示 /// /// /// private void UserNameBox_LostFocus(object sender, RoutedEventArgs e) { if (textBoxName.Text == "") { username.Text = "User name can not be empty!"; name_img.Visibility = Visibility.Visible; } else { username.Text = ""; name_img.Visibility = Visibility.Collapsed; } } } }