コード例 #1
0
        private void Change_Passcode_ButtonClick(object sender, RoutedEventArgs e)
        {
            if (String.IsNullOrWhiteSpace(CurrentPasscodeBox.Password) ||
                String.IsNullOrWhiteSpace(NewPasscodeBox.Password) ||
                String.IsNullOrWhiteSpace(ConfirmPasscodeBox.Password))
            {
                MessageBox.Show("Please fill in all the columns!", "FlamyPOS", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                return;
            }

            if (!Helpers.IsNumericString(CurrentPasscodeBox.Password) ||
                !Helpers.IsNumericString(NewPasscodeBox.Password) ||
                !Helpers.IsNumericString(ConfirmPasscodeBox.Password))
            {
                MessageBox.Show("Must contain numeric passcodes only!", "FlamyPOS", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                return;
            }

            Staff  user = Mains.UserProfileVM.CurrentUser;
            string hashedPasscodeInput = Security.GetHash(CurrentPasscodeBox.Password);
            /*Mains.LoginVM.StaffDictionary*/ //Passcode ... StaffID
            string currentHashedPasscode = Mains.LoginVM.StaffDictionary
                                           .FirstOrDefault(x => x.Value == user.Id)
                                           .Key;

            if (hashedPasscodeInput != currentHashedPasscode)
            {
                MessageBox.Show("Please enter the correct passcode!");
                return;
            }

            if (NewPasscodeBox.Password != ConfirmPasscodeBox.Password)
            {
                MessageBox.Show("New passcode and Confirm passcode must match!", "FlamyPOS", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                return;
            }

            string hashedNewPasscode = Security.GetHash(NewPasscodeBox.Password);
            bool   status            = Database.UpdatePasscode(user.Name, hashedNewPasscode);

            if (status)
            {
                Mains.LoginVM.StaffDictionary.Remove(Security.GetHash(CurrentPasscodeBox.Password));
                Mains.LoginVM.StaffDictionary.Add(hashedNewPasscode, user.Id);
                MessageBox.Show("Password changed successfully!", "FlamyPOS", MessageBoxButton.OK, MessageBoxImage.Information);
                CurrentPasscodeBox.Clear();
                NewPasscodeBox.Clear();
                ConfirmPasscodeBox.Clear();
            }
            else
            {
                MessageBox.Show("Duplicate passcode!", "FlamyPOS", MessageBoxButton.OK, MessageBoxImage.Asterisk);
            }
        }
コード例 #2
0
 private void ConfirmOrCompletePasscode()
 {
     if (PasscodeBox.IsFocused)
     {
         if (PasscodeBox.Length > 0)
         {
             ConfirmPasscodeBox.Focus();
         }
     }
     else if (ConfirmPasscodeBox.IsFocused)
     {
         ViewModel.ChangePassword();
     }
 }
コード例 #3
0
        private void Passcode_OnKeyDown(object sender, KeyEventArgs e)
        {
            if (ViewModel.SelectedPasscodeType != null)
            {
                if (ViewModel.SelectedPasscodeType.Type == PasscodeType.Pin)
                {
                    if (e.Key >= Key.D0 && e.Key <= Key.D9 || e.Key == Key.Back || e.Key == Key.Enter)
                    {
                        if (e.Key >= Key.D0 && e.Key <= Key.D9)
                        {
                            if (PasscodeBox.IsFocused &&
                                PasscodeBox.Length == 4 &&
                                ConfirmPasscodeBox.Length < 4)
                            {
                                ConfirmPasscodeBox.Focus();
                            }
                        }
                    }
                    else
                    {
                        e.Handled = true;
                        return;
                    }
                }

                if (e.Key == Key.Enter)
                {
                    ConfirmOrCompletePasscode();
                }
                else if (e.Key == Key.Back)
                {
                    if (ConfirmPasscodeBox.IsFocused &&
                        ConfirmPasscodeBox.Length == 0)
                    {
                        PasscodeBox.Focus();
                    }
                }
            }
        }