// ========================================================================
// Copyright 2006 - 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;
namespace Volian.Object.Library
{
	/// 
	///	ConnectionInfoList Generated by MyGeneration using the CSLA Object Mapping template
	/// 
	[Serializable()]
	public partial class ConnectionInfoList : ReadOnlyListBase
	{
	#region Factory Methods
    /// 
    /// Return a list of all projects.
    /// 
    public static ConnectionInfoList Get()
    {
      return DataPortal.Fetch(new Criteria());
    }
    // TODO: Add alternative gets - 
    //public static ConnectionInfoList Get()
    //{
    //  return DataPortal.Fetch(new FilteredCriteria());
    //}
    private ConnectionInfoList()
    { /* require use of factory methods */ }
	
	#endregion
	#region Data Access Portal
    [Serializable()]
    private class Criteria
    { /* no criteria - retrieve all rows */ }
    private void DataPortal_Fetch(Criteria criteria)
    {
      this.RaiseListChangedEvents = false;
	  try{
     using (SqlConnection cn = Database.VEPROMS_SqlConnection)
      {
        using (SqlCommand cm = cn.CreateCommand())
        {
          cm.CommandType = CommandType.StoredProcedure;
          cm.CommandText = "getConnections";
          using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
          {
            IsReadOnly = false;
            while (dr.Read())this.Add(new ConnectionInfo(dr));
            IsReadOnly = true;
          }
        }
      }
		}
		catch(Exception ex)
		{
			Database.LogException("ConnectionInfoList",ex);
		}
      this.RaiseListChangedEvents = true;
    }
	#endregion
	} // Class
} // Namespace