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
 | |
| 	}
 | |
| }
 |