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); } }
private void ConfirmOrCompletePasscode() { if (PasscodeBox.IsFocused) { if (PasscodeBox.Length > 0) { ConfirmPasscodeBox.Focus(); } } else if (ConfirmPasscodeBox.IsFocused) { ViewModel.ChangePassword(); } }
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(); } } } }