Click here to Skip to main content
Click here to Skip to main content
Articles » Web Development » ASP.NET » Samples » Downloads
 
Add your own
alternative version

BooProd.Core - Context sensitive URL

, 22 Dec 2004
Helps you create context sensitive dynamic URLs: dynamically computed URLs, depending on which server the page is generated on.
BooProdDynURL_2004-12-07.zip
BooProd.Core.TestDynURL
BooProd.Core
bin
Release
BooProd.Core.csproj.user
ConfigFiles
Inetpub
wwwroot
BooProd.Core.TestDynURL
bin
BooProd.Core.dll
BooProd.Core.TestDynURL.dll
_vti_cnf
BooProd.Core.dll
BooProd.Core.TestDynURL.dll
BooProd.Core.TestDynURL.csproj.webinfo
Global.asax
using System;
using System.Xml;
using System.Xml.Schema;
using System.Collections;

namespace BooProd.Core
{

	/// <summary>
	/// v1.2	/ 2004-12-06 / CB => Enable empty ExeDB element.
	/// v1.1	/ 2004-11-19 / CB => Modification due to difficulties for people using special ConnectionString.
	///															Now, use a full connection string.
	/// v1.0	/ 2004-11-15 / CB => Creation
	/// </summary>

	public class ExeDB {

		#region ACCESS
		/// <summary>
		/// Alias:
		/// DB Alias. Alias is a key.
		/// Alias is not a DB alias as defined in the SQL client tool.
		/// </summary>
		private string _Alias;
		public string Alias {
			get { return _Alias; }
		}

		/// <summary>
		/// ConnectionString:
		/// The ConnectionString.
		/// </summary>
		public string ConnectionString {
			get { if (ExeContext.IsLocal) return _LocalConnectionString; else return _ProdConnectionString;}
		}

		/// <summary>
		/// LocalConnectionString:
		/// The ConnectionString used for connection on local network.
		/// </summary>
		private string _LocalConnectionString;
		public string LocalConnectionString {
			get { return _LocalConnectionString;}
		}
		/// <summary>
		/// ProdConnectionString:
		/// The ConnectionString used for connection on prod network.
		/// </summary>
		private string _ProdConnectionString;
		public string ProdConnectionString {
			get { return _ProdConnectionString;}
		}

		#endregion

		#region CREATION

		/// <summary>
		/// Create a new instance from the XML node.
		/// </summary>
		/// <param name="reader"></param>
		/// <returns></returns>
		public static ExeDB newFromXML(XmlNodeReader reader) {
			// If wrong elem, or none, get out of here.
			if (reader.IsStartElement("ExeDB")==false)
				return null;
			if (reader.IsEmptyElement)
				return null;

			ExeDB vElem= new ExeDB();
			reader.ReadStartElement("ExeDB");
			vElem._Alias= reader.ReadElementString("alias");
			// Local
			reader.ReadStartElement("local");
			vElem._LocalConnectionString= reader.ReadElementString("ConnectionString");
			reader.ReadEndElement();
			// Prod
			reader.ReadStartElement("prod");
			vElem._ProdConnectionString= reader.ReadElementString("ConnectionString");
			reader.ReadEndElement();

			reader.ReadEndElement();
			return vElem;
		}
		/// <summary>
		/// 
		/// </summary>
		/// <param name="reader"></param>
		/// <returns></returns>
		public static Hashtable newAllFromXML(XmlNodeReader reader) {
			Hashtable		vHashtable= new Hashtable();
			ExeDB				vElem=			null;
			try {
				if (reader.IsStartElement("ExeDBList")==false)
					return vHashtable;

				// ExeDBList
				reader.ReadStartElement("ExeDBList");
				vElem= ExeDB.newFromXML(reader);
				while (vElem!=null) {
					vHashtable.Add(vElem.Alias, vElem);
					vElem= ExeDB.newFromXML(reader);
				}
				reader.ReadEndElement();
				// ExeDBList END
			} catch {
			}
			return vHashtable;
		}
		#endregion

		#region INIT

		/// <summary>
		/// Constructor
		/// </summary>
		public ExeDB() {}

		#endregion

	}
}

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

Boo!
Web Developer
France France
I work on a leading European telecom provider regarding on-line real time account management for B2B and B2C customers. Before this position, I worked in one of the leading European council providers of economic forecasts analyses.
 
I jump into software development in 1985 and never stop! I work with a lot of systems like Apple, NeXT, Unix, Windows. I develop with a lot of languages like Assembler, Pascal, C, C++, Java and C#. I play with databases like Oracle and SQL Server. I love networks and like to make systems working and cooperate themselves.
 
I'm very interested in MAS: Multi Agent System and really hope that computer will be human in the future. I work on BDI architecture extensions on this purpose, but this is the project of my life!

| Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.141216.1 | Last Updated 22 Dec 2004
Article Copyright 2004 by Boo!
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid