120 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
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;
 | 
						|
		public bool UserSetting_MSWord_Summary_Prompt { 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, MSWordSummaryPrompt 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");
 | 
						|
								UserSetting_MSWord_Summary_Prompt = (bool) dr.GetValue("MSWordSummaryPrompt");
 | 
						|
							}
 | 
						|
						}
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
			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);
 | 
						|
			}
 | 
						|
 | 
						|
		}
 | 
						|
 | 
						|
		public void SetUserSetting_MSWord_Summary_Prompt(bool prompt)
 | 
						|
		{
 | 
						|
			try
 | 
						|
			{
 | 
						|
				using (SqlConnection cn = Database.VEPROMS_SqlConnection)
 | 
						|
				{
 | 
						|
					using (SqlCommand cm = cn.CreateCommand())
 | 
						|
					{
 | 
						|
						cm.CommandType = CommandType.StoredProcedure;
 | 
						|
						cm.CommandText = "vesp_UpdateUserSettingMSWordSummaryPrompt";
 | 
						|
						cm.Parameters.AddWithValue("@UID", _userid);
 | 
						|
						UserSetting_MSWord_Summary_Prompt = prompt;
 | 
						|
						cm.Parameters.AddWithValue("@Prompt", prompt);
 | 
						|
						cm.CommandTimeout = Database.DefaultTimeout;
 | 
						|
 | 
						|
						cm.ExecuteNonQuery();
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				Database.LogException("UserSettings_SetUserSettings", ex);
 | 
						|
				throw new DbCslaException("UserSettings_SetUserSettings", ex);
 | 
						|
			}
 | 
						|
 | 
						|
		}
 | 
						|
		#endregion
 | 
						|
	}
 | 
						|
}
 |