using System; using Csla.Data; using System.Data; using System.Data.SqlClient; //CSM - C2024-031 - Minimal Class for Saving / Getting User Settings //For Use with getting / saving if a User wishes to have tabs kept open namespace VEPROMS.CSLA.Library { public class UserSettings { #region Private Properties private readonly string _userid; #endregion #region Public Properties public bool UserSetting_OpenTabs_Remember { get; protected set; } = false; public bool UserSetting_OpenTabs_AutoOpen { get; protected set; } = true; #endregion #region Constructor public UserSettings(string UserID) { _userid = UserID; try { using (SqlConnection cn = Database.VEPROMS_SqlConnection) { using (SqlCommand cm = cn.CreateCommand()) { cm.CommandType = CommandType.Text; cm.CommandText = "Select RememberOpenTabs, AutoOpenTabs FROM Users where UserID = @UID"; cm.Parameters.AddWithValue("@UID", _userid); cm.CommandTimeout = Database.DefaultTimeout; using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) { if (dr.Read()) { UserSetting_OpenTabs_Remember = (bool) dr.GetValue("RememberOpenTabs"); UserSetting_OpenTabs_AutoOpen = (bool) dr.GetValue("AutoOpenTabs"); } } } } } catch (Exception ex) { Database.LogException("UserSettings_GetData", ex); } } #endregion #region Save Properties public void SetUserSettings(bool OpenTabs_Remember, bool? OpenTabs_AutoOpen = null) { try { using (SqlConnection cn = Database.VEPROMS_SqlConnection) { using (SqlCommand cm = cn.CreateCommand()) { cm.CommandType = CommandType.StoredProcedure; cm.CommandText = "vesp_UpdateUserSettings"; cm.Parameters.AddWithValue("@UID", _userid); UserSetting_OpenTabs_Remember = OpenTabs_Remember; cm.Parameters.AddWithValue("@Remember", OpenTabs_Remember); if (OpenTabs_AutoOpen != null) { UserSetting_OpenTabs_AutoOpen = (bool) OpenTabs_AutoOpen; cm.Parameters.AddWithValue("@AutoOpen", OpenTabs_AutoOpen); } cm.CommandTimeout = Database.DefaultTimeout; cm.ExecuteNonQuery(); } } } catch (Exception ex) { Database.LogException("UserSettings_SetUserSettings", ex); throw new DbCslaException("UserSettings_SetUserSettings", ex); } } #endregion } }