Beispiel #1
0
        public LoginViewModel()
        {
            using (var db = new MyContext())
            {
                LstNation = db.Nations.ToList();
            }
            LoginCommand = new RelayCommand <UserControl>(p => { return(true); }, p =>
            {
                if (p is SignInView si)
                {
                    PasswordSecurityProvider psp = new PasswordSecurityProvider();
                    if (psp.Validate(si.txtUserName.Text, si.pwSignIn.Password))
                    {
                        User toGet;
                        using (var db = new MyContext())
                        {
                            toGet = db.Users.Find(si.txtUserName.Text);
                        }
                        FrameworkElement fe          = GetWindow(p);
                        (fe as LoginView).Visibility = Visibility.Hidden;
                        MainWD = new MainWindow(toGet, fe as LoginView);
                        MainWD.ShowDialog();
                    }
                    else
                    {
                        MessageBox.Show("Sai tài khoản hoặc mật khẩu");
                    }
                }
            });
            SignUpCommand = new RelayCommand <UserControl>(p => { return(true); }, p =>
            {
                if (p is SignUpView su)
                {
                    User result = PasswordSecurityProvider.Find(su.txtUserName.Text);
                    if (result == null)
                    {
                        PasswordSecurityProvider psp = new PasswordSecurityProvider();
                        string hashedpassword        = psp.GetHashPassword(su.pwSignUp.Password);

                        if (su.dpSignUp.SelectedDate == null)
                        {
                            MessageBox.Show("Bạn phải nhập ngày tháng");
                        }
                        else
                        {
                            var ToAdd = new User
                            {
                                UserID        = su.txtUserName.Text,
                                Password      = hashedpassword,
                                BirthDate     = (DateTime)su.dpSignUp.SelectedDate,
                                NationID      = su.cbNation.SelectedIndex + 1,
                                PrivateAnswer = su.txtAns.Text
                            };
                            using (var db = new MyContext())
                            {
                                try
                                {
                                    db.Users.Add(ToAdd);
                                    db.SaveChanges();
                                }
                                catch (Exception)
                                {
                                    MessageBox.Show("Đăng ký thất bại");
                                }
                            }
                            MessageBox.Show("Đăng ký Thành công");
                        }
                    }
                    else
                    {
                        MessageBox.Show("Đã tồn tại UserID này");
                    }
                }
            });

            ToSignUpViewCommand = new RelayCommand <UserControl>(p => { return(true); }, p =>
            {
                try
                {
                    FrameworkElement fe = GetWindow(p);
                    (fe as LoginView).uCSignIn.Visibility = Visibility.Hidden;
                    (fe as LoginView).uCSignUp.Visibility = Visibility.Visible;
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.StackTrace.ToString());
                    return;
                }
            });
            ToSignInViewCommand = new RelayCommand <UserControl>(p => { return(true); }, p =>
            {
                try
                {
                    FrameworkElement fe = GetWindow(p);
                    (fe as LoginView).uCSignUp.Visibility = Visibility.Hidden;
                    (fe as LoginView).uCSignIn.Visibility = Visibility.Visible;
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.StackTrace.ToString());
                    return;
                }
            });
            ToForgetPasswordViewCommand = new RelayCommand <UserControl>(p => { return(true); }, p =>
            {
                try
                {
                    FrameworkElement fe = GetWindow(p);
                    //(fe as LoginView).uCSignUp.Visibility = Visibility.Hidden;
                    (fe as LoginView).uCSignIn.Visibility   = Visibility.Hidden;
                    (fe as LoginView).ucForgetpw.Visibility = Visibility.Visible;
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.StackTrace.ToString());
                    return;
                }
            });
            ToSignInFromForgetpwCommand = new RelayCommand <UserControl>(p => { return(true); }, p =>
            {
                try
                {
                    FrameworkElement fe = GetWindow(p);
                    (fe as LoginView).uCSignIn.Visibility   = Visibility.Visible;
                    (fe as LoginView).ucForgetpw.Visibility = Visibility.Hidden;
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.StackTrace.ToString());
                    return;
                }
            });

            ChangePasswordCommand = new RelayCommand <UserControl>(p => { return(true); }, p =>
            {
                if (p is ForgetPasswordView view)
                {
                    using (var db = new MyContext())
                    {
                        var tmp = db.Users.Find(view.txtAccount.Text);
                        if (tmp == null)
                        {
                            MessageBox.Show("Tài khoản không tồn tại");
                            RemoveField(view);
                        }
                        else
                        {
                            if (tmp.PrivateAnswer.CompareTo(view.txtAns.Text) != 0)
                            {
                                MessageBox.Show("Sai câu trả lời bảo mật");
                                RemoveField(view);
                            }
                            else
                            {
                                if (view.txtNewPass.Password.CompareTo(view.txtConfirmPass.Password) != 0)
                                {
                                    MessageBox.Show("Mật khẩu mới không khớp");
                                }
                                else
                                {
                                    string hashpass = new PasswordSecurityProvider().GetHashPassword(view.txtConfirmPass.Password);
                                    tmp.Password    = hashpass;
                                    db.SaveChanges();

                                    MessageBox.Show("Đổi mật khẩu thành công");
                                    RemoveField(view);
                                }
                            }
                        }
                    }
                }
            });
        }
Beispiel #2
0
        public LoginViewModel()
        {
            using (var db = new MyContext())
            {
                LstNation = db.Nations.ToList();
            }
            LoginCommand = new RelayCommand <UserControl>(p => { return(true); }, p =>
            {
                if (p is SignInView si)
                {
                    PasswordSecurityProvider psp = new PasswordSecurityProvider();
                    if (psp.Validate(si.txtUserName.Text, si.pwSignIn.Password))
                    {
                        User toGet;
                        using (var db = new MyContext())
                        {
                            toGet = db.Users.Find(si.txtUserName.Text);
                        }
                        FrameworkElement fe          = GetWindow(p);
                        (fe as LoginView).Visibility = Visibility.Hidden;
                        MainWD = new MainWindow(toGet, fe as LoginView);
                        MainWD.ShowDialog();
                    }
                    else
                    {
                        MessageBox.Show("Sai tài khoản hoặc mật khẩu");
                    }
                }
            });
            SignUpCommand = new RelayCommand <UserControl>(p => { return(true); }, p =>
            {
                if (p is SignUpView su)
                {
                    User result = PasswordSecurityProvider.Find(su.txtUserName.Text);
                    if (result == null)
                    {
                        PasswordSecurityProvider psp = new PasswordSecurityProvider();
                        string hashedpassword        = psp.GetHashPassword(su.pwSignUp.Password);
                        var ToAdd = new User
                        {
                            UserID        = su.txtUserName.Text,
                            Password      = hashedpassword,
                            BirthDate     = (DateTime)su.dpSignUp.SelectedDate,
                            NationID      = su.cbNation.SelectedIndex + 1,
                            PrivateAnswer = su.txtAns.Text
                        };
                        using (var db = new MyContext())
                        {
                            try
                            {
                                db.Users.Add(ToAdd);
                                db.SaveChanges();
                            }
                            catch (Exception)
                            {
                                MessageBox.Show("Đăng ký thất bại");
                            }
                        }
                        MessageBox.Show("Đăng ký Thành công");
                    }
                    else
                    {
                        MessageBox.Show("Đã tồn tại UserID này");
                    }
                }
            });

            ToSignUpViewCommand = new RelayCommand <UserControl>(p => { return(true); }, p =>
            {
                try
                {
                    FrameworkElement fe = GetWindow(p);
                    (fe as LoginView).uCSignIn.Visibility = Visibility.Hidden;
                    (fe as LoginView).uCSignUp.Visibility = Visibility.Visible;
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.StackTrace.ToString());
                    return;
                }
            });
            ToSignInViewCommand = new RelayCommand <UserControl>(p => { return(true); }, p =>
            {
                try
                {
                    FrameworkElement fe = GetWindow(p);
                    (fe as LoginView).uCSignUp.Visibility = Visibility.Hidden;
                    (fe as LoginView).uCSignIn.Visibility = Visibility.Visible;
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.StackTrace.ToString());
                    return;
                }
            });
        }