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