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;
}
}
}
}