Click here to Skip to main content
Click here to Skip to main content
Add your own
alternative version

Neural Dot Net Pt 11 A Conclusion Of Sorts

, 9 Dec 2003
A neural network library in C#.
neural_dot_net_2002.zip
Neural Dot Net 2002
App.ico
bin
Debug
AdalineWordFile.dat
adalinewordWorkingFile.wrk
adword.trn
App.ico
BackpropagationWorkingFile.wrk
Lin2Var.trn
Neural Dot Net 2002.exe
Neural Net Library.dll
SelfOrganizingNetworkOne.trn
SelfOrganizingNetworkOne.wrk
SelfOrganizingNetworkOneTest.tst
SharpUtils.dll
equations.Bak
Neural Dot Net 2002.csproj.user
Neural Net Library
bin
Debug
Neural Net Library.csproj.user
obj
Debug
temp
TempPE
SharpUtils
bin
Debug
obj
Debug
temp
TempPE
SharpUtils.csproj.user

using System;
using System.Diagnostics;
using System.ComponentModel;


/// SharpUtils is nothing more than a namespace to store 
/// useful classes
namespace SharpUtils
{
	/// <summary>
	/// Summary description for SimpleEventLog.
	/// </summary>
	public class SimpleEventLog : EventLog
	{
		/// as can't tell if there is an error or how to return it 
		/// set up a simple error reporting system
	  
		private string strError;
		private bool bError = false;

		/// <summary>
		/// get or set the error string
		/// </summary>
		public string Error
		{
			get
			{
				return strError;
			}
			set
			{
				strError = value;
			}
		}

		/// <summary>
		/// check if there has been an error
		/// </summary>
		public bool IsError
		{
			get
			{
				return bError;
			}
			set
			{
				bError = value;
			}
		}

		/// <summary>
		/// One argument constructor
		/// Creates the eventlog specified if necassary
		/// </summary>
		/// <param name="eventLogName"></param>
		public SimpleEventLog( string eventLogName )
		{
			if( EventLog.SourceExists( eventLogName ) == false )
			{
				/// create the event log on the current computer
				try
				{
					EventLog.CreateEventSource( eventLogName, eventLogName );
				}
				catch( ArgumentException )
				{
					IsError = true;
					Error = "The string passed to CreateEventSource is null";
				}
				catch( Exception )
				{
					IsError = true;
					Error = "The system could not open the registry key for " + eventLogName;
				}
			}
			else
			{
				Source = eventLogName;
			}
		}


		/// <summary>
		/// Second constructor takes two parameters 
		/// Note the use of the contrustor intialiser that calls the one argument
		/// constructor first
		/// The second parameter gives the option to clear the event log on start up
		/// </summary>
		/// <param name="eventLogName"></param>
		/// <param name="clear"></param>
		public SimpleEventLog( string eventLogName, bool clear ) : this( eventLogName )
		{
			if( clear == true )
			{
				ClearSimpleEventLog();
			}
		}


		/// <summary>
		/// Write an entry into the log
		/// </summary>
		/// <param name="entry">Text to be written to the log</param>
		/// <returns>false on error</returns>
		private bool WriteSimpleEntry( string entry, EventLogEntryType eventType )
		{
			IsError = false;
			try
			{
				WriteEntry( entry, eventType );
			}
			catch( ArgumentException argExp )
			{
				IsError = true;
				Error = "Argument exception is " + argExp.Message;
			}
			catch( InvalidOperationException )
			{
				IsError = true;
				Error = "You do not have write permission for the event log";
			}
			catch( Win32Exception winExp )
			{
				IsError = true;
				Error = "Win32Exception is " + winExp.Message;
			}
			catch( SystemException )
			{
				IsError = true;
				Error = "The event log could not be notified to start recieing events";
			}
			catch( Exception )
			{
				IsError = true;
				Error = "The registry entry for the log could not be opened on the remote computer";
			}


			if( IsError == true )
				return false;
			else
				return true;
		}



		/// <summary>
		/// Write an information entry into the event log
		/// </summary>
		/// <param name="information">Information to be written to the event log</param>
		/// <returns>true if written to the event log</returns>
		public bool WriteInformation( string information )
		{
			return WriteSimpleEntry( information, EventLogEntryType.Information );
		}

		/// <summary>
		/// Write a warning to the current event log
		/// </summary>
		/// <param name="warning">warning to be written to the event log</param>
		/// <returns>true on success</returns>
		public bool WriteWarning( string warning )
		{
			return WriteSimpleEntry( warning, EventLogEntryType.Warning );
		}

		/// <summary>
		/// Write an error to the current event log
		/// </summary>
		/// <param name="error">error to be written to the event log</param>
		/// <returns>true on success</returns>
		public bool WriteError( string error )
		{
			return WriteSimpleEntry( error, EventLogEntryType.Error );
		}


		/// <summary>
		/// clear all the data out of the current event log
		/// </summary>
		/// <returns>false on error </returns>
		public bool ClearSimpleEventLog()
		{
			IsError = false;
			try
			{
				Clear();
			}
			catch( Win32Exception winExp )
			{
				IsError = true;
				Error = "Win 32 Exception " + winExp.Message;
			}
			catch( ArgumentException )
			{
				IsError = true;
				Error = "The log name is empty";
			}
			catch( Exception )
			{
				IsError = true;
				Error = "The log could not be opened";
			}

			if( IsError == true )
				return false;
			else
				return true;
		}


		/// <summary>
		/// Remove the current event log and source from the system
		/// </summary>
		/// <param name="eventLogName">Name of the event log to be deleted</param>
		/// <returns>false if error</returns>
		public bool DeleteSimpleEventLog()
		{
			IsError = false;

			try
			{
				EventLog.Delete( Source );
			}
			catch( ArgumentException )
			{
				IsError = true;
				Error = "Event Log Name is null";
			}
			catch( SystemException sysExp )
			{
				IsError = true;
				Error = "System Exception " + sysExp;
			}

			if( IsError == true )
				return false;
			else
				return true;
		}
	}
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Share

About the Author

pseudonym67

United Kingdom United Kingdom
No Biography provided

| Advertise | Privacy | Mobile
Web03 | 2.8.140827.1 | Last Updated 10 Dec 2003
Article Copyright 2003 by pseudonym67
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid