Files
ayanova7/source/bizobjects/AyaLib/GZTW.AyaNova.BLL/PartExistanceChecker.cs
2018-06-29 19:47:36 +00:00

131 lines
3.5 KiB
C#

///////////////////////////////////////////////////////////
// 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
/// <summary>
///Confirms the presence of an Part
///in the AyaNova database
/// </summary>
[Serializable, EditorBrowsable(EditorBrowsableState.Never)]
internal class PartExistanceChecker : ReadOnlyBase
{
#region Attributes
private bool mExists;
#endregion
#region Constructor
/// <summary>
/// Private constructor to prevent direct instantiation
/// </summary>
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
///
/// <param Bool="Criteria"></param>
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
/// <summary>
/// Criteria for identifying existing object
/// </summary>
[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