139 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
// ========================================================================
 | 
						|
// Copyright 2007 - Volian Enterprises, Inc. All rights reserved.          
 | 
						|
// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
 | 
						|
// ------------------------------------------------------------------------
 | 
						|
// $Workfile: $     $Revision: $                                           
 | 
						|
// $Author: $   $Date: $                                                   
 | 
						|
//                                                                         
 | 
						|
// $History: $                                                             
 | 
						|
// ========================================================================
 | 
						|
 | 
						|
using System;
 | 
						|
using System.Data;
 | 
						|
using System.Data.SqlClient;
 | 
						|
using Csla;
 | 
						|
using Csla.Data;
 | 
						|
using System.Configuration;
 | 
						|
using System.IO;
 | 
						|
using System.ComponentModel;
 | 
						|
using System.Diagnostics;
 | 
						|
namespace VEPROMS.CSLA.Library
 | 
						|
{
 | 
						|
	/// <summary>
 | 
						|
	///	Database Generated by MyGeneration using the CSLA Object Mapping template
 | 
						|
	/// </summary>
 | 
						|
	[Serializable()]
 | 
						|
	public static partial class Database
 | 
						|
	{
 | 
						|
		#region Log4Net
 | 
						|
		private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
 | 
						|
		#endregion
 | 
						|
		public static void LogException(string s, Exception ex)
 | 
						|
		{
 | 
						|
			int i = 0;
 | 
						|
			Console.WriteLine("Error - {0}", s);
 | 
						|
			for (; ex != null; ex = ex.InnerException)
 | 
						|
			{
 | 
						|
				Console.WriteLine("{0}{1} - {2}", "".PadLeft(++i * 2), ex.GetType().ToString(), ex.Message);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		private static bool _LoggingInfo = false; // By default don't log info 
 | 
						|
		public static bool LoggingInfo
 | 
						|
		{
 | 
						|
			get { return _LoggingInfo; }
 | 
						|
			set { _LoggingInfo = value; }
 | 
						|
		}
 | 
						|
		static System.Diagnostics.Process _CurrentProcess = System.Diagnostics.Process.GetCurrentProcess();
 | 
						|
		public static void LogInfo(string s, int hashCode)
 | 
						|
		{
 | 
						|
			if (_LoggingInfo)
 | 
						|
				Console.WriteLine("{0} MB {1}", _CurrentProcess.WorkingSet64 / 1000000, string.Format(s, hashCode));
 | 
						|
		}
 | 
						|
		public static void LogDebug(string s, int hashCode)
 | 
						|
		{
 | 
						|
			if (_LoggingInfo)
 | 
						|
				Console.WriteLine("{0} MB {1}", _CurrentProcess.WorkingSet64 / 1000000, string.Format(s, hashCode));
 | 
						|
		}
 | 
						|
		public static string VEPROMS_Connection
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				DateTime.Today.ToLongDateString();
 | 
						|
				ConnectionStringSettings cs = ConfigurationManager.ConnectionStrings["VEPROMS"];
 | 
						|
				if (cs == null)
 | 
						|
				{
 | 
						|
					throw new ApplicationException("Database.cs Could not find connection VEPROMS");
 | 
						|
				}
 | 
						|
				return cs.ConnectionString;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public static SqlConnection VEPROMS_SqlConnection
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				string strConn = VEPROMS_Connection; // If failure - Fail (Don't try to catch)
 | 
						|
				// Attempt to make a connection 
 | 
						|
				try
 | 
						|
				{
 | 
						|
					SqlConnection cn = new SqlConnection(strConn);
 | 
						|
					cn.Open();
 | 
						|
					return cn;
 | 
						|
				}
 | 
						|
				catch (SqlException exsql)
 | 
						|
				{
 | 
						|
					const string strAttachError = "An attempt to attach an auto-named database for file ";
 | 
						|
					if (exsql.Message.StartsWith(strAttachError))
 | 
						|
					{// Check to see if the file is missing
 | 
						|
						string sFile = exsql.Message.Substring(strAttachError.Length);
 | 
						|
						sFile = sFile.Substring(0, sFile.IndexOf(" failed"));
 | 
						|
						//	"An attempt to attach an auto-named database for file <mdf file> failed"
 | 
						|
						if (strConn.ToLower().IndexOf("user instance=true") < 0)
 | 
						|
						{
 | 
						|
							throw new ApplicationException("Connection String missing attribute: User Instance=True");
 | 
						|
						}
 | 
						|
						if (System.IO.File.Exists(sFile))
 | 
						|
						{
 | 
						|
							throw new ApplicationException("Database file " + sFile + " Cannot be opened\r\n", exsql);
 | 
						|
						}
 | 
						|
						else
 | 
						|
						{
 | 
						|
							throw new FileNotFoundException("Database file " + sFile + " Not Found", exsql);
 | 
						|
						}
 | 
						|
					}
 | 
						|
					else
 | 
						|
					{
 | 
						|
						throw new ApplicationException("Failure on Connect", exsql);
 | 
						|
					}
 | 
						|
				}
 | 
						|
				catch (Exception ex)// Throw Application Exception on Failure
 | 
						|
				{
 | 
						|
					if (_MyLog.IsErrorEnabled) _MyLog.Error("Connection Error", ex);
 | 
						|
					throw new ApplicationException("Failure on Connect", ex);
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public static void PurgeData()
 | 
						|
		{
 | 
						|
			try
 | 
						|
			{
 | 
						|
				SqlConnection cn = VEPROMS_SqlConnection;
 | 
						|
				SqlCommand cmd = new SqlCommand("purgedata", cn);
 | 
						|
				cmd.CommandType = CommandType.StoredProcedure;
 | 
						|
				cmd.CommandTimeout = 0;
 | 
						|
				cmd.ExecuteNonQuery();
 | 
						|
			}
 | 
						|
			catch (Exception ex)
 | 
						|
			{
 | 
						|
				if (_MyLog.IsErrorEnabled) _MyLog.Error("Purge Error", ex);
 | 
						|
				throw new ApplicationException("Failure on Purge", ex);
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
	public class DbCslaException : Exception
 | 
						|
	{
 | 
						|
		internal DbCslaException(string message, Exception innerException) : base(message, innerException) { ;}
 | 
						|
		internal DbCslaException(string message) : base(message) { ;}
 | 
						|
		internal DbCslaException() : base() { ;}
 | 
						|
	} // Class
 | 
						|
} // Namespace
 |