/////////////////////////////////////////////////////////// // Bool.cs // Implementation of Class ClientExistanceChecker // CSLA type: Read-only object // Created on: 24-Sept-2007 // Object design: John // Coded: 24-Sept-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 /// ///Confirms the presence of an Client ///in the AyaNova database /// [Serializable, EditorBrowsable(EditorBrowsableState.Never)] internal class ClientExistanceChecker : ReadOnlyBase { #region Attributes private bool mExists; //case 1404 added for usefulness internal Guid mClientID; #endregion #region Constructor /// /// Private constructor to prevent direct instantiation /// private ClientExistanceChecker() { } #endregion #region Static methods internal static ClientExistanceChecker ClientExists(string Name) { return (ClientExistanceChecker)DataPortal.Fetch(new Criteria(Guid.Empty, Name)); } internal static bool ClientExists(Guid ID, string Name) { return ((ClientExistanceChecker)DataPortal.Fetch(new Criteria(ID, Name))).mExists; } #endregion #region DAL DATA ACCESS /// /// protected override void DataPortal_Fetch(object Criteria) { Criteria crit = (Criteria)Criteria; if (!string.IsNullOrEmpty(crit.Name)) { //case 1890 string CaseInsensitiveQueryString = string.Empty; if(DBUtil.DB.DBType == DataBaseType.FireBird) { CaseInsensitiveQueryString = "SELECT AID FROM ACLIENT WHERE (Upper(ANAME) = Upper(@ANAME))"; } else { //SQL server so for performance let SQL do the collating since it's easily set unlike firebird CaseInsensitiveQueryString = "SELECT AID FROM ACLIENT WHERE (ANAME = @ANAME)"; } DBCommandWrapper dbCommandWrapper = DBUtil.DB.GetSqlStringCommandWrapper(CaseInsensitiveQueryString); dbCommandWrapper.AddInParameter("@ANAME", DbType.String, crit.Name); //case 1404 mClientID=DBUtil.ToGuid(DBUtil.DB.ExecuteScalar(dbCommandWrapper)); if (mClientID == Guid.Empty) this.mExists = false; else this.mExists = true; } else { if (DBUtil.ToGuid(DBUtil.GetScalarFromSQLString( "SELECT aID FROM aClient WHERE " + "(aID = @ID)", crit.ID )) == Guid.Empty) this.mExists = false; else this.mExists = true; } } #endregion #region criteria /// /// Criteria for identifying existing object /// [Serializable] private class Criteria { public Guid ID; public string Name; public Criteria(Guid _ID, string _Name) { ID = _ID; Name = _Name; } } #endregion }//end class }//end namespace GZTW.AyaNova.BLL