/////////////////////////////////////////////////////////// // Bool.cs // Implementation of Class PartExistanceChecker // 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 498 /// ///Confirms the presence of an Part ///in the AyaNova database /// [Serializable, EditorBrowsable(EditorBrowsableState.Never)] internal class PartExistanceChecker : ReadOnlyBase { #region Attributes private bool mExists; #endregion #region Constructor /// /// Private constructor to prevent direct instantiation /// private PartExistanceChecker() { } #endregion #region Static methods internal static bool PartExists(Guid ID, string PartNumber) { return ((PartExistanceChecker)DataPortal.Fetch(new Criteria(ID, PartNumber))).mExists; } #endregion #region DAL DATA ACCESS /// /// protected override void DataPortal_Fetch(object Criteria) { Criteria crit = (Criteria)Criteria; if (!string.IsNullOrEmpty(crit.PartNumber)) { //case 1890 string CaseInsensitiveQueryString = string.Empty; if(DBUtil.DB.DBType == DataBaseType.FireBird) { CaseInsensitiveQueryString = "SELECT AID FROM APART WHERE (Upper(APARTNUMBER) = Upper(@APARTNUMBER))"; } else { //SQL server so for performance let SQL do the collating since it's easily set unlike firebird CaseInsensitiveQueryString = "SELECT AID FROM APART WHERE (APARTNUMBER = @APARTNUMBER)"; } DBCommandWrapper dbCommandWrapper = DBUtil.DB.GetSqlStringCommandWrapper(CaseInsensitiveQueryString); dbCommandWrapper.AddInParameter("@APARTNUMBER", DbType.String, crit.PartNumber); 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 aPart 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 PartNumber; public Criteria(Guid _ID, string _PartNumber) { ID = _ID; PartNumber = _PartNumber; } } #endregion }//end class }//end namespace GZTW.AyaNova.BLL