///<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); }