/////////////////////////////////////////////////////////// // Bool.cs // Implementation of Class UnitLastServiceWorkorderInfoFetcher // CSLA type: Read-only object // Created on: 14-Dec-2007 // Object design: John // Coded: 14-Dec-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 317 /// ///Gets information about the last closed service workorder a unit was /// serviced on /// [Serializable, EditorBrowsable(EditorBrowsableState.Never)] internal class UnitLastServiceWorkorderInfoFetcher : ReadOnlyBase { #region Attributes private DateTime mLastServiceDate; public DateTime LastServiceDate { get { return mLastServiceDate; } } private int mLastServiceWorkorderNumber=-1;//default meaning info unavailable public int LastServiceWorkorderNumber { get { return mLastServiceWorkorderNumber; } } #endregion #region Constructor /// /// Private constructor to prevent direct instantiation /// private UnitLastServiceWorkorderInfoFetcher() { } #endregion #region Static methods internal static UnitLastServiceWorkorderInfoFetcher LastServiceInfo(Guid ID) { return (UnitLastServiceWorkorderInfoFetcher)DataPortal.Fetch(new Criteria(ID)); } #endregion #region DAL DATA ACCESS /// /// protected override void DataPortal_Fetch(object Criteria) { Criteria crit = (Criteria)Criteria; SafeDataReader dr = null; try { dr = DBUtil.GetReaderFromSQLString( "SELECT TOP 1 " + " AWORKORDERITEM.AUNITID, " + " AWORKORDERSERVICE.ASERVICENUMBER, " + " AWORKORDERSERVICE.ASERVICEDATE, " + " AWORKORDER.ASERVICECOMPLETED " + "FROM " + " AWORKORDERITEM " + " LEFT OUTER JOIN AWORKORDER ON (AWORKORDERITEM.AWORKORDERID = AWORKORDER.AID) " + " LEFT OUTER JOIN AWORKORDERSERVICE ON (AWORKORDER.AID = AWORKORDERSERVICE.AWORKORDERID) " + "WHERE ASERVICECOMPLETED=1 and aunitid=@ID " + "ORDER BY ASERVICEDATE DESC ", crit.ID); if (dr.Read()) { mLastServiceDate = DBUtil.ToLocal(dr.GetDateTime("ASERVICEDATE")); mLastServiceWorkorderNumber = dr.GetInt32("ASERVICENUMBER"); } } 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