using HxModel;
|
using HxUserManagement;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows;
|
using System.Windows.Controls;
|
using System.Windows.Controls.Primitives;
|
using System.Windows.Data;
|
using System.Windows.Documents;
|
using System.Windows.Input;
|
using System.Windows.Media;
|
using System.Windows.Media.Animation;
|
using System.Windows.Media.Imaging;
|
using System.Windows.Navigation;
|
using System.Windows.Shapes;
|
using XHandler.Class;
|
using XHandler.Controls;
|
using XHandler.View.MethodProperty;
|
using XImagingXhandler.XDAL;
|
namespace XHandler.View.User
|
{
|
/// <summary>
|
/// ResetPassword.xaml 的交互逻辑
|
/// </summary>
|
public partial class ResetPassword : UserControl
|
{
|
public event EventHandler closeEvent;
|
public event EventHandler okEvent;
|
private UserInfo userInfoModel = null;
|
private string Id;
|
public ResetPassword()
|
{
|
InitializeComponent();
|
}
|
|
public ResetPassword(string id)
|
{
|
InitializeComponent();
|
Id = id;
|
userInfoModel = UserDB.GetUserInfByUserId(id);//userInfoBLL.GetInfodById(id);
|
}
|
|
private void UserControl_Loaded(object sender, RoutedEventArgs e)
|
{
|
Storyboard storyboard = new Storyboard();
|
|
DoubleAnimation doubleAnimation = new DoubleAnimation(0, 500, new Duration(TimeSpan.FromSeconds(0.25)));
|
Storyboard.SetTarget(doubleAnimation, border);//Target对象
|
Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("Width"));//Target属性
|
storyboard.Children.Add(doubleAnimation);
|
|
ObjectAnimationUsingKeyFrames showAnimation = new ObjectAnimationUsingKeyFrames();
|
showAnimation.BeginTime = TimeSpan.FromSeconds(0);
|
Storyboard.SetTarget(showAnimation, border);
|
Storyboard.SetTargetProperty(showAnimation, new PropertyPath("(UIElement.Visibility)"));
|
DiscreteObjectKeyFrame closeKeyFrame = new DiscreteObjectKeyFrame(Visibility.Visible, TimeSpan.FromSeconds(0.01));
|
showAnimation.KeyFrames.Add(closeKeyFrame);
|
storyboard.Children.Add(showAnimation);
|
|
storyboard.Begin();
|
|
}
|
|
private void root_PreviewMouseDown(object sender, MouseButtonEventArgs e)
|
{
|
if (e.OriginalSource is Grid)
|
{
|
Grid grid = e.OriginalSource as Grid;
|
if (grid.Name == "root")
|
Button_Click(this, null);
|
}
|
}
|
|
private void Button_Click(object sender, RoutedEventArgs e)
|
{
|
if (EventResponseController.Instance.CanExecute() == false)
|
return;
|
|
Storyboard storyboard = new Storyboard();
|
|
DoubleAnimation doubleAnimation = new DoubleAnimation(500, 0, new Duration(TimeSpan.FromSeconds(0.25)));
|
Storyboard.SetTarget(doubleAnimation, border);//Target对象
|
Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("Width"));//Target属性
|
storyboard.Children.Add(doubleAnimation);
|
|
ObjectAnimationUsingKeyFrames showAnimation = new ObjectAnimationUsingKeyFrames();
|
showAnimation.BeginTime = TimeSpan.FromSeconds(0);
|
Storyboard.SetTarget(showAnimation, border);
|
Storyboard.SetTargetProperty(showAnimation, new PropertyPath("(UIElement.Visibility)"));
|
DiscreteObjectKeyFrame closeKeyFrame = new DiscreteObjectKeyFrame(Visibility.Collapsed, TimeSpan.FromSeconds(0.26));
|
showAnimation.KeyFrames.Add(closeKeyFrame);
|
storyboard.Children.Add(showAnimation);
|
storyboard.Completed += delegate { closeEvent?.Invoke(this, EventArgs.Empty); };
|
storyboard.Begin();
|
}
|
|
private void textboxNewPswd_PasswordChanged(object sender, EventArgs e)
|
{
|
textboxNewPswd.BorderBrush = Brushes.DarkGray;
|
pswdTips.Visibility = Visibility.Collapsed;
|
}
|
|
private void textboxConfirmPswd_PasswordChanged(object sender, EventArgs e)
|
{
|
textboxConfirmPswd.BorderBrush = Brushes.DarkGray;
|
pswdConfirmTips.Visibility = Visibility.Collapsed;
|
}
|
|
private void btnCancel_Click(object sender, RoutedEventArgs e)
|
{
|
Button_Click(this, null);
|
}
|
|
private void btnSave_Click(object sender, RoutedEventArgs e)
|
{
|
if (string.IsNullOrEmpty(textboxNewPswd.Password))
|
{
|
textboxNewPswd.BorderBrush = Brushes.Red;
|
pswdTips.Text = Properties.UserResource.strPswdLenght;
|
pswdTips.Visibility = Visibility.Visible;
|
return;
|
}
|
if (textboxNewPswd.Password.Length < 6)
|
{
|
textboxNewPswd.BorderBrush = Brushes.Red;
|
pswdTips.Text = Properties.UserResource.strPswdLenght;
|
pswdTips.Visibility = Visibility.Visible;
|
return;
|
}
|
textboxNewPswd.BorderBrush = Brushes.DarkGray;
|
pswdTips.Visibility = Visibility.Collapsed;
|
if (string.Compare(textboxNewPswd.Password, textboxConfirmPswd.Password) != 0)
|
{
|
textboxConfirmPswd.BorderBrush = Brushes.Red;
|
pswdConfirmTips.Text = Properties.UserResource.strPswdNotSame;
|
pswdConfirmTips.Visibility = Visibility.Visible;
|
return;
|
}
|
userInfoModel.userpwd = Utilities.GetMD5(textboxConfirmPswd.Password);
|
userInfoModel.modifyname = UserManagerment.currentUser.username;
|
userInfoModel.modifytime = DateTime.Now;
|
int user = UserDB.UpdateUserIntodb(userInfoModel);
|
if (user != 0)
|
{
|
PlsToolTipWin plsToolTipWin = new PlsToolTipWin(Properties.UserResource.strResetPswdSuccess);
|
plsToolTipWin.WindowStartupLocation = WindowStartupLocation.CenterScreen;
|
plsToolTipWin.Height = 450;
|
plsToolTipWin.Width = 600;
|
plsToolTipWin.btnCancel.Visibility = Visibility.Hidden;
|
SolidColorBrush mybtn1_Brush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(0, 0, 0, 0));
|
plsToolTipWin.Background = (System.Windows.Media.Brush)mybtn1_Brush;
|
plsToolTipWin.ShowDialog();
|
}
|
else
|
{
|
PlsToolTipWin plsToolTipWin = new PlsToolTipWin(Properties.UserResource.strResetPswdFailed);
|
plsToolTipWin.WindowStartupLocation = WindowStartupLocation.CenterScreen;
|
plsToolTipWin.Height = 450;
|
plsToolTipWin.Width = 600;
|
plsToolTipWin.btnCancel.Visibility = Visibility.Hidden;
|
SolidColorBrush mybtn1_Brush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(0, 0, 0, 0));
|
plsToolTipWin.Background = (System.Windows.Media.Brush)mybtn1_Brush;
|
plsToolTipWin.ShowDialog();
|
}
|
}
|
|
private void EyeButton_Click(object sender, RoutedEventArgs e)
|
{
|
ToggleButton button = sender as ToggleButton;
|
if (button != null)
|
{
|
button.IsChecked = !button.IsChecked;
|
}
|
}
|
|
private void textboxNewPswd_PasswordChanged(object sender, RoutedEventArgs e)
|
{
|
if (sender is System.Windows.Controls.PasswordBox pb)
|
{
|
PasswordBoxAttached.SetPassword(pb, pb.Password);
|
int strength = GetPasswordStrength(pb.Password);
|
SetStrengthText(strength);
|
}
|
}
|
|
private void textboxConfirmPswd_PasswordChanged(object sender, RoutedEventArgs e)
|
{
|
if (sender is System.Windows.Controls.PasswordBox pb)
|
{
|
PasswordBoxAttached.SetPassword(pb, pb.Password);
|
}
|
}
|
|
private int GetPasswordStrength(string password)
|
{
|
int score = 0;
|
if (password.Length > 8) score += 2;
|
if (password.Any(char.IsDigit)) score += 3;
|
if (password.Any(char.IsUpper)) score += 3;
|
if (password.Any(char.IsLower)) score += 2;
|
if (password.Any(c => !char.IsLetterOrDigit(c))) score += 2;
|
return score;
|
}
|
|
private void SetStrengthText(int strength)
|
{
|
string strengthText = "";
|
switch (strength)
|
{
|
case 0:
|
case 1:
|
strengthText = "Weak";
|
lessPwd.Background = Brushes.Red;
|
break;
|
case 2:
|
case 3:
|
strengthText = "Moderate";
|
midPwd.Background = Brushes.Orange;
|
break;
|
case 4:
|
case 5:
|
strengthText = "Strong";
|
strongPwd.Background = Brushes.Green;
|
break;
|
}
|
}
|
}
|
}
|