/////////////////////////////////////////////////////////// // SecurityGroupList.cs // Implementation of Class SecurityGroupList // CSLA type: Read only collection // Created on: 12-Sept-2005 // Object design: John // Coded: 12-Sept-2005 /////////////////////////////////////////////////////////// using System; using System.Data; using GZTW.Data; using CSLA.Data; using CSLA; namespace GZTW.AyaNova.BLL { #pragma warning disable 1591 /// /// Read only list of objects representing objects. /// Used for reporting and UI Grid display. /// [Serializable] public class SecurityGroupList : ReadOnlyCollectionBase { #region Data structure /// /// Properties /// [Serializable] public struct SecurityGroupListInfo { internal GridNameValueCellItem mName; //and ID [SqlColumnNameAttribute("aSecurityGroup.aName", "aSecurityGroup.aID")] public GridNameValueCellItem LT_O_SecurityGroup { get { return mName; } } /// /// /// /// public bool Equals(SecurityGroupListInfo obj) { return this.mName.Value.Equals(obj.mName.Value); } }//end SecurityGroupListInfo #endregion #region Constructor protected SecurityGroupList() { // AllowSort=false; // AllowFind=true; // AllowEdit=false; // AllowNew=false; // AllowRemove=false; } #endregion #region Business properties and methods /// /// Get item by index /// /// public SecurityGroupListInfo this[int Item] { get { return (SecurityGroupListInfo) List[Item]; } } /// /// Returns display text that matches passed in itemid value /// /// public string this[Guid ItemID] { get { foreach (SecurityGroupListInfo child in List) { if(child.mName.Value==ItemID) return child.ToString(); } return "Missing: "+ItemID.ToString(); } } /// /// Returns display text that matches passed in group name value /// /// Name of security group public string this[string Name] { get { foreach (SecurityGroupListInfo child in List) { if(child.mName.Display==Name) return child.mName.Value.ToString(); } return "Missing: "+Name; } } #endregion #region contains /// /// Check if item in collection /// /// public bool Contains(SecurityGroupListInfo obj) { foreach (SecurityGroupListInfo child in List) { if(child.Equals(obj)) return true; } return false; } #endregion #region Static methods /// /// Get list by criteria /// /// Use AyaNova UI to easily build xmlCriteria and Ctrl-Alt-g keyboard command to display it for use in your code /// list of objects public static SecurityGroupList GetList(string xmlCriteria) { return (SecurityGroupList) DataPortal.Fetch(new Criteria(xmlCriteria)); } /// /// Return an empty list /// used for initializing grid /// /// public static SecurityGroupList GetEmptyList() { return new SecurityGroupList(); } #endregion #region DAL DATA ACCESS /// /// protected override void DataPortal_Fetch(object Criteria) { Criteria crit = (Criteria)Criteria; SafeDataReader dr = null; try { dr=DBUtil.GetReaderFromSQLString( //************************************************************ "SELECT aSecurityGroup.aID, aSecurityGroup.aName " + "FROM aSecurityGroup " + AyaBizUtils.GetGridColumnCriteria(crit.CriteriaXML,true) + " " + AyaBizUtils.GetGridSortOrderColumns(crit.CriteriaXML) //************************************************************ ); while(dr.Read()) { //******************************************* SecurityGroupListInfo info=new SecurityGroupListInfo(); info.mName=new GridNameValueCellItem( dr.GetGuid("aID"), dr.GetString("aName"), RootObjectTypes.SecurityGroup); InnerList.Add(info); //******************************************* } } finally { if(dr!=null) dr.Close(); } } #endregion #region criteria /// /// Criteria for identifying existing object /// [Serializable] private class Criteria { public string CriteriaXML; public Criteria( string _CriteriaXML) { CriteriaXML=_CriteriaXML; } } #endregion }//end SecurityGroupList #pragma warning restore 1591 }//end namespace GZTW.AyaNova.BLL