private void SavePreferences() { #region Logoff After Minutes if (textLogOffAfterMinutes.Text.IsNullOrEmpty() && !_logOffAfterMinutesInitialValue.IsNullOrEmpty()) { UserOdPrefs.Delete(_logOffAfterMinutes.UserOdPrefNum); } else if (textLogOffAfterMinutes.Text != _logOffAfterMinutesInitialValue) //Only do this if the value has changed { if (_logOffAfterMinutes == null) { _logOffAfterMinutes = new UserOdPref() { Fkey = 0, FkeyType = UserOdFkeyType.LogOffTimerOverride, UserNum = Security.CurUser.UserNum }; } _logOffAfterMinutes.ValueString = textLogOffAfterMinutes.Text; UserOdPrefs.Upsert(_logOffAfterMinutes); if (!PrefC.GetBool(PrefName.SecurityLogOffAllowUserOverride)) { MsgBox.Show(this, "User logoff overrides will not take effect until the Global Security setting \"Allow user override for automatic logoff\" is checked"); } } #endregion #region Suppress Logoff Message if (checkSuppressMessage.Checked && _suppressLogOffMessage == null) { UserOdPrefs.Insert(new UserOdPref() { UserNum = Security.CurUser.UserNum, FkeyType = UserOdFkeyType.SuppressLogOffMessage }); } else if (!checkSuppressMessage.Checked && _suppressLogOffMessage != null) { UserOdPrefs.Delete(_suppressLogOffMessage.UserOdPrefNum); } #endregion #region Theme Change if (_themePref == null) { _themePref = new UserOdPref() { UserNum = Security.CurUser.UserNum, FkeyType = UserOdFkeyType.UserTheme }; } _themePref.Fkey = comboTheme.SelectedIndex; UserOdPrefs.Upsert(_themePref); if (PrefC.GetBool(PrefName.ThemeSetByUser)) { UserOdPrefs.SetThemeForUserIfNeeded(); } else { //No need to return, just showing a warning so they know why the theme will not change. MsgBox.Show("Theme will not take effect until the miscellaneous preference has been set for users can set their own theme."); } #endregion }
private void butOK_Click(object sender, EventArgs e) { if (checkSuppressMessage.Checked && _suppressLogOffMessage == null) { //insert UserOdPrefs.Insert(new UserOdPref() { UserNum = Security.CurUser.UserNum, FkeyType = UserOdFkeyType.SuppressLogOffMessage }); } else if (!checkSuppressMessage.Checked && _suppressLogOffMessage != null) { //delete UserOdPrefs.Delete(_suppressLogOffMessage.UserOdPrefNum); } DialogResult = DialogResult.OK; }
///<summary>Updates or inserts (if necessary) the user's preference dictating which chart layout sheet def the user last viewed. ///Should only be called when a user selects a specific layout.</summary> private void UpdateChartLayoutUserPref() { UserOdPref userPref = UserOdPrefs.GetFirstOrNewByUserAndFkeyType(Security.CurUser.UserNum, UserOdFkeyType.DynamicChartLayout); userPref.Fkey = _sheetDefDynamicLayoutCur.SheetDefNum; if (!PrefC.HasClinicsEnabled || Clinics.ClinicNum == 0 || !ClinicPrefs.TryGetLong(PrefName.SheetsDefaultChartModule, Clinics.ClinicNum, out long defaultSheetDefNum)) { defaultSheetDefNum = PrefC.GetLong(PrefName.SheetsDefaultChartModule); } if (userPref.Fkey == defaultSheetDefNum) { if (!userPref.IsNew) { UserOdPrefs.Delete(userPref.UserOdPrefNum); //Delete old entry, this will cause user to view any newly selected practice or clinic defaults. } //User selected the practice or clinic default, flag so that this user continues to get the appropriate default. return; } UserOdPrefs.Upsert(userPref); }