|
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.
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!