2006-11-14 14:33:33 +00:00

169 lines
4.7 KiB
C#

// ========================================================================
// 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;
using System.Configuration;
using System.IO;
namespace Volian.CSLA.Library
{
/// <summary>
/// MembershipInfoList Generated by MyGeneration using the CSLA Object Mapping template
/// </summary>
[Serializable()]
public partial class MembershipInfoList : ReadOnlyListBase<MembershipInfoList, MembershipInfo>
{
#region Factory Methods
/// <summary>
/// Return a list of all projects.
/// </summary>
public static MembershipInfoList Get()
{
return DataPortal.Fetch<MembershipInfoList>(new Criteria());
}
// TODO: Add alternative gets -
//public static MembershipInfoList Get(<criteria>)
//{
// return DataPortal.Fetch<MembershipInfoList>(new FilteredCriteria(<criteria>));
//}
public static MembershipInfoList GetByGroup(int gid)
{
return DataPortal.Fetch<MembershipInfoList>(new GroupCriteria(gid));
}
public static MembershipInfoList GetByUser(int uid)
{
return DataPortal.Fetch<MembershipInfoList>(new UserCriteria(uid));
}
private MembershipInfoList()
{ /* 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 = "getMemberships";
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
{
IsReadOnly = false;
while (dr.Read()) this.Add(new MembershipInfo(dr));
IsReadOnly = true;
}
}
}
}
catch (Exception ex)
{
Database.LogException("MembershipInfoList.DataPortal_Fetch", ex);
throw new DbCslaException("MembershipInfoList.DataPortal_Fetch", ex);
}
this.RaiseListChangedEvents = true;
}
[Serializable()]
private class GroupCriteria
{
public GroupCriteria(int gid)
{
_GID = gid;
}
private int _GID;
public int GID
{
get { return _GID; }
set { _GID = value; }
}
}
private void DataPortal_Fetch(GroupCriteria criteria)
{
this.RaiseListChangedEvents = false;
try
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
using (SqlCommand cm = cn.CreateCommand())
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "getMembershipsByGroup";
cm.Parameters.AddWithValue("@GID", criteria.GID);
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
{
IsReadOnly = false;
while (dr.Read()) this.Add(new MembershipInfo(dr));
IsReadOnly = true;
}
}
}
}
catch (Exception ex)
{
Database.LogException("MembershipInfoList.DataPortal_Fetch", ex);
throw new DbCslaException("MembershipInfoList.DataPortal_Fetch", ex);
}
this.RaiseListChangedEvents = true;
}
[Serializable()]
private class UserCriteria
{
public UserCriteria(int uid)
{
_UID = uid;
}
private int _UID;
public int UID
{
get { return _UID; }
set { _UID = value; }
}
}
private void DataPortal_Fetch(UserCriteria criteria)
{
this.RaiseListChangedEvents = false;
try
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
using (SqlCommand cm = cn.CreateCommand())
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "getMembershipsByUser";
cm.Parameters.AddWithValue("@UID", criteria.UID);
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
{
IsReadOnly = false;
while (dr.Read()) this.Add(new MembershipInfo(dr));
IsReadOnly = true;
}
}
}
}
catch (Exception ex)
{
Database.LogException("MembershipInfoList.DataPortal_Fetch", ex);
throw new DbCslaException("MembershipInfoList.DataPortal_Fetch", ex);
}
this.RaiseListChangedEvents = true;
}
#endregion
} // Class
} // Namespace