/////////////////////////////////////////////////////////// // Bool.cs // Implementation of Class WorkorderDescriptionFetcher // CSLA type: Read-only object // Created on: 21-Oct-2005 // Object design: John // Coded: John 21-Oct-2005 /////////////////////////////////////////////////////////// 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 { /// /// Used to quickly fetch descriptive information /// for identifying a service workorder to user /// during notification Processing /// [Serializable] public class WorkorderDescriptionFetcher : ReadOnlyBase { #region Attributes private string mWorkorderNumber=""; private string mClientName=""; private SmartDate mCloseByDate=new SmartDate(); private string mTemplateDescription = ""; #endregion #region Constructor /// /// Private constructor to prevent direct instantiation /// private WorkorderDescriptionFetcher() { } #endregion #region Business properties /// /// /// public string WorkorderNumber { get { return mWorkorderNumber; } } /// /// /// public string ClientName { get { return mClientName; } } /// /// /// public SmartDate CloseByDate { get { return mCloseByDate; } } /// /// /// public string TemplateDescription { get { return mTemplateDescription; } } #endregion #region Static methods /// /// Get descriptive text fields for given workorder ID /// /// /// public static WorkorderDescriptionFetcher GetItem(Guid WorkorderID) { return (WorkorderDescriptionFetcher)DataPortal.Fetch(new Criteria(WorkorderID, Guid.Empty )); } /// /// Get descriptive text fields for given workorder's outside service record ID /// /// /// public static WorkorderDescriptionFetcher GetItemFromWorkorderItemOutsideServiceID(Guid WorkorderItemOutsideServiceID) { return (WorkorderDescriptionFetcher)DataPortal.Fetch(new Criteria(Guid.Empty, WorkorderItemOutsideServiceID )); } #endregion #region DAL DATA ACCESS /// /// protected override void DataPortal_Fetch(object Criteria) { Criteria crit = (Criteria)Criteria; SafeDataReader dr = null; if(crit.WorkorderID!=Guid.Empty) { dr=DBUtil.GetReaderFromSQLString( "SELECT aWorkorderService.aServiceNumber, aWorkorderService.aCloseByDate, aWorkorder.ATemplateDescription, " + "aClient.aName " + "AS CLIENTNAME FROM aWorkorder LEFT " + "OUTER JOIN aWorkorderService ON aWorkorder.aID " + "= aWorkorderService.aWorkorderID LEFT OUTER " + "JOIN aClient ON aWorkorder.aClientID = " + "aClient.aID WHERE aWorkorder.aID=@ID", crit.WorkorderID ); } else { //It's a workorder item outside service ID dr=DBUtil.GetReaderFromSQLString( "SELECT aClient.aName AS CLIENTNAME, aWorkorderService.aServiceNumber, aWorkorder.ATemplateDescription, " + " aWorkorderService.aCloseByDate " + "FROM aWorkorderItemOutsideService " + "INNER JOIN aWorkorderItem ON aWorkorderItemOutsideService.aWorkorderItemID " + "= aWorkorderItem.aID " + "INNER JOIN aWorkorder ON aWorkorderItem.aWorkorderID " + "= aWorkorder.aID LEFT OUTER " + "JOIN aWorkorderService ON aWorkorder.aID " + "= aWorkorderService.aWorkorderID LEFT OUTER JOIN " + "aClient ON aWorkorder.aClientID = aClient.aID " + "WHERE (aWorkorderItemOutsideService.aID " + "= @ID)", crit.WorkorderItemOutsideServiceID ); } if(dr.Read()) { this.mClientName=dr.GetString("CLIENTNAME"); this.mWorkorderNumber=dr.GetInt32("aServiceNumber").ToString(); this.mCloseByDate=DBUtil.ToLocal(dr.GetSmartDate("aCloseByDate")); this.mTemplateDescription = dr.GetString("atemplatedescription"); } //Changed: 09-June-2006 this was missing! if (dr != null) dr.Close(); } #endregion #region criteria /// /// Criteria for identifying existing object /// [Serializable] private class Criteria { public Guid WorkorderID; public Guid WorkorderItemOutsideServiceID; public Criteria(Guid _WorkorderID, Guid _WorkorderItemOutsideServiceID) { WorkorderID=_WorkorderID; WorkorderItemOutsideServiceID=_WorkorderItemOutsideServiceID; } } #endregion }//end Bool }//end Boolspace GZTW.AyaNova.BLL