/////////////////////////////////////////////////////////// // ScheduleableUserGroupUsersList.cs // Implementation of Class ScheduleableUserGroupUsersList // CSLA type: Read only collection // Created on: 09-Sept-2005 // Object design: John // Coded: 09-Sept-2005 /////////////////////////////////////////////////////////// using System; using System.Data; using GZTW.Data; using CSLA.Data; using CSLA; namespace GZTW.AyaNova.BLL { /// /// Lightweight read only list of objects /// [Serializable] public class ScheduleableUserGroupUsersList : ReadOnlyCollectionBase { #region Data structure /// /// /// [Serializable] public struct ScheduleableUserGroupUsersListInfo { internal Guid mID; /// /// ID /// public Guid ID { get { return mID; } } /// /// /// /// public bool Equals(ScheduleableUserGroupUsersListInfo obj) { return this.mID.Equals(obj.mID); } }//end ScheduleableUserGroupUsersListInfo #endregion #region Constructor /// /// /// protected ScheduleableUserGroupUsersList() { // AllowSort=false; // AllowFind=true; // AllowEdit=false; // AllowNew=false; // AllowRemove=false; } #endregion #region Business properties and methods /// /// Get item by index /// /// public ScheduleableUserGroupUsersListInfo this[int Item] { get { return (ScheduleableUserGroupUsersListInfo) List[Item]; } } /// /// Returns ScheduleableUserGroupUsersListInfo item that matches passed in itemid value /// /// public ScheduleableUserGroupUsersListInfo this[Guid ItemID] { get { foreach (ScheduleableUserGroupUsersListInfo child in List) { if(child.mID==ItemID) return child; } throw new ArgumentException("ScheduleableUserGroupUsersList: UserID not found:\r\n"+ItemID.ToString()); } } #endregion #region contains /// /// Check if item in collection /// /// public bool Contains(ScheduleableUserGroupUsersListInfo obj) { foreach (ScheduleableUserGroupUsersListInfo child in List) { if(child.Equals(obj)) return true; } return false; } /// /// Check if item in collection /// /// public bool Contains(Guid UserID) { foreach (ScheduleableUserGroupUsersListInfo child in List) { if(child.ID.Equals(UserID)) return true; } return false; } /// /// Check if item in collection /// /// public bool Contains(string sUserID) { foreach (ScheduleableUserGroupUsersListInfo child in List) { if(child.ID.ToString().Equals(sUserID)) return true; } return false; } #endregion #region Static methods /// /// Get all Parts /// /// list of objects public static ScheduleableUserGroupUsersList GetList(Guid ScheduleableUserGroupID) { return (ScheduleableUserGroupUsersList) DataPortal.Fetch(new Criteria(ScheduleableUserGroupID)); } #endregion #region DAL DATA ACCESS /// /// protected override void DataPortal_Fetch(object Criteria) { Criteria crit = (Criteria)Criteria; SafeDataReader dr = null; try { dr=DBUtil.GetReaderFromSQLString( //************************************************************ "SELECT aScheduleableUserID FROM aScheduleableUserGroupUser " + "WHERE (aScheduleableUserGroupID = @ID)",crit.ScheduleableUserGroupID //************************************************************ ); while(dr.Read()) { //******************************************* ScheduleableUserGroupUsersListInfo info=new ScheduleableUserGroupUsersListInfo(); info.mID=dr.GetGuid("aScheduleableUserID"); InnerList.Add(info); //******************************************* } } finally { if(dr!=null) dr.Close(); } } #endregion #region criteria /// /// Criteria for identifying existing object /// [Serializable] private class Criteria { public Guid ScheduleableUserGroupID; public Criteria( Guid _ScheduleableUserGroupID) { ScheduleableUserGroupID=_ScheduleableUserGroupID; } public Criteria() { ScheduleableUserGroupID=Guid.Empty; } } #endregion }//end ScheduleableUserGroupUsersList }//end namespace GZTW.AyaNova.BLL