//Start Application or Change User private void ProcessLogin(SYS_UserDetail pUserDetail) { GlobalFramework.LoggedUser = pUserDetail; GlobalFramework.LoggedUserPermissions = FrameworkUtils.GetUserPermissions(); FrameworkUtils.Audit("USER_LOGIN", string.Format(Resx.audit_message_user_login, pUserDetail.Name)); //SessionApp Add LoggedUser if (!GlobalFramework.SessionApp.LoggedUsers.ContainsKey(GlobalFramework.LoggedUser.Oid)) { GlobalFramework.SessionApp.LoggedUsers.Add(pUserDetail.Oid, FrameworkUtils.CurrentDateTimeAtomic()); } else { GlobalFramework.SessionApp.LoggedUsers[GlobalFramework.LoggedUser.Oid] = FrameworkUtils.CurrentDateTimeAtomic(); } GlobalFramework.SessionApp.Write(); //Returns to default mode _mode = NumberPadPinMode.Password; UpdateStatusLabels(); //Process Notifications After Login/Create First Time PosWindow //Disabled SystemNotification and ShowNotifications. Moved to Startup Window //FrameworkUtils.SystemNotification(); //Utils.ShowNotifications(_sourceWindow, pUserDetail.Oid); Utils.ShowFrontOffice(_sourceWindow); }
//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //Logic public bool ProcessPassword(Window pSourceWindow, sys_userdetail pUserDetail) { bool result = false; try { switch (_mode) { case NumberPadPinMode.Password: //Valid User if (ValidatePassword(pUserDetail)) { //Start Application ProcessLogin(pUserDetail); //Finish Job usefull to PosPinDialog send Respond(ResponseType.Ok) when Done result = true; } break; case NumberPadPinMode.PasswordOld: //Valid User if (ValidatePassword(pUserDetail)) { _mode = NumberPadPinMode.PasswordNew; UpdateStatusLabels(); } break; case NumberPadPinMode.PasswordNew: //Check If New Password is Equal to Old Password using ValidatePassword if (CryptographyUtils.SaltedString.ValidateSaltedString(pUserDetail.AccessPin, _entryPin.Text)) { //Show Error Message ResponseType responseType = Utils.ShowMessageTouch(pSourceWindow, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "window_title_dialog_change_password"), resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "pos_pinpad_message_password_equal_error")); ClearEntryPinStatusMessage(true); } else { _passwordNew = _entryPin.Text; _mode = NumberPadPinMode.PasswordNewConfirm; UpdateStatusLabels(); } break; case NumberPadPinMode.PasswordNewConfirm: if (_passwordNew == _entryPin.Text) { //Commit Changes pUserDetail.AccessPin = CryptographyUtils.SaltedString.GenerateSaltedString(_passwordNew); pUserDetail.PasswordReset = false; pUserDetail.PasswordResetDate = FrameworkUtils.CurrentDateTimeAtomic(); pUserDetail.Save(); FrameworkUtils.Audit("USER_CHANGE_PASSWORD", string.Format(resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "audit_message_user_change_password"), pUserDetail.Name)); ResponseType responseType = Utils.ShowMessageTouch(pSourceWindow, DialogFlags.Modal, MessageType.Info, ButtonsType.Ok, resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "window_title_dialog_change_password"), resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "pos_pinpad_message_password_changed")); //Start Application ProcessLogin(pUserDetail); //Finish Job usefull to PosPinDialog send Respond(ResponseType.Ok) when Done result = true; } else { //Show Error Message ResponseType responseType = Utils.ShowMessageTouch(pSourceWindow, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "window_title_dialog_change_password"), resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "pos_pinpad_message_password_confirmation_error")); ClearEntryPinStatusMessage(true); //Return to _mode = NumberPadPinMode.PasswordNew; UpdateStatusLabels(); //Reset passwordNew _passwordNew = string.Empty; } break; case NumberPadPinMode.PasswordReset: //Valid User if (ValidatePassword(pUserDetail)) { _mode = NumberPadPinMode.PasswordNew; UpdateStatusLabels(); } //Return to default request password mode else { _mode = NumberPadPinMode.Password; } break; default: break; } //Always focus Entry _entryPin.GrabFocus(); } catch (Exception ex) { _log.Error(ex.Message, ex); } return(result); }