/////////////////////////////////////////////////////////// // Bool.cs // Implementation of Class ServiceBankResolver // CSLA type: Read-only object // Created on: 1-Nov-2007 // Object design: John // Coded: 1-Nov-2007 /////////////////////////////////////////////////////////// using System; using System.Data; using CSLA.Data; using GZTW.Data; using CSLA; using System.Threading; using CSLA.Security; using System.ComponentModel; namespace GZTW.AyaNova.BLL { //case 496 /// ///Returns service bankable object most responsible /// for banking based on client /// [Serializable, EditorBrowsable(EditorBrowsableState.Never)] internal class ServiceBankResolver : ReadOnlyBase { #region Attributes private TypeAndID mBankableObject; #endregion #region Constructor /// /// Private constructor to prevent direct instantiation /// private ServiceBankResolver() { mBankableObject = null; } #endregion #region Static methods /// /// Resolve the object service bank reponsible for client id specified /// if no service bank then resolves to null /// /// /// internal static TypeAndID BankableObject(Guid ID) { return ((ServiceBankResolver)DataPortal.Fetch(new Criteria(ID))).mBankableObject; } #endregion #region DAL DATA ACCESS /// /// protected override void DataPortal_Fetch(object Criteria) { Criteria crit = (Criteria)Criteria; SafeDataReader dr = null; try { dr = DBUtil.GetReaderFromSQLString( " SELECT ACLIENT.AUSESBANKING AS CLIENTUSESBANKING, AHEADOFFICE.AUSESBANKING AS HEADOFFICEUSESBANKING, " + "AHEADOFFICE.AID AS HEADOFFICEID " + "FROM ACLIENT " + "LEFT OUTER JOIN AHEADOFFICE ON (ACLIENT.AHEADOFFICEID=AHEADOFFICE.AID) " + "WHERE ACLIENT.AID= @ID", crit.ID); if (dr.Read()) { if (dr.GetBoolean("CLIENTUSESBANKING")) { mBankableObject = new TypeAndID(RootObjectTypes.Client, crit.ID); } else if (dr.GetBoolean("HEADOFFICEUSESBANKING")) { mBankableObject = new TypeAndID(RootObjectTypes.HeadOffice, dr.GetGuid("HEADOFFICEID")); } } } finally { if (dr != null) dr.Close(); } } #endregion #region criteria /// /// Criteria for identifying existing object /// [Serializable] private class Criteria { public Guid ID; public Criteria(Guid _ID) { ID = _ID; } } #endregion }//end class }//end namespace GZTW.AyaNova.BLL