/////////////////////////////////////////////////////////// // NotifyDeliveryLog.cs // Implementation of Class NotifyDeliveryLog // CSLA type: Editable Root // Created on: 17-Oct-2005 // Object design: John // Coded: John 17-Oct-2005 /////////////////////////////////////////////////////////// using System; using System.Data; using CSLA.Data; using GZTW.Data; using CSLA; using System.Threading; using CSLA.Security; namespace GZTW.AyaNova.BLL { #pragma warning disable 1591 /// /// AyaNova NotifyDeliveryLog used to insert new /// notification delivery events in the database. /// /// Also removes all delivery log entries more than 30 days old /// [Serializable] public class NotifyDeliveryLog /*Case 255 no need to derive bb : BusinessBase*/ { #region Attributes private Guid _RootObjectID; private RootObjectTypes _RootObjectType; private int _EventType; private Guid _ToUserID; private Guid _GuidValue; private bool _Delivered; private NotifyDeliveryMethods _DeliveryMethod; private string _ErrorMessage; private DateTime _DeliveryDate; //case 53 private Guid _ToClientID; #endregion #region Constructor //Case 255 changed to public /// /// /// /// public NotifyDeliveryLog(RootObjectTypes RootObjectType,Guid RootObjectID, int EventType,Guid ToUserID,bool Delivered,Guid GuidValue, NotifyDeliveryMethods DeliveryMethod, string ErrorMessage,DateTime DeliveryDate,Guid ToClientID ) { _RootObjectType=RootObjectType; _RootObjectID=RootObjectID; _EventType=EventType; _ToUserID=ToUserID; _Delivered=Delivered; _GuidValue=GuidValue; _DeliveryMethod=DeliveryMethod; _DeliveryDate=DeliveryDate; _ToClientID = ToClientID; if(ErrorMessage.Length>500) _ErrorMessage=ErrorMessage.Substring(0,500); else _ErrorMessage=ErrorMessage; } #endregion #region Static methods public static void LogDelivery(RootObjectTypes RootObjectType,Guid RootObjectID, int EventType,Guid ToUserID,bool Delivered,Guid GuidValue, NotifyDeliveryMethods DeliveryMethod, string ErrorMessage,DateTime DeliveryDate) { //case 1608 if (ErrorMessage.Length > 500) ErrorMessage = ErrorMessage.Substring(ErrorMessage.Length - 500); DataPortal.Update(new NotifyDeliveryLog( RootObjectType,RootObjectID, EventType, ToUserID, Delivered, GuidValue, DeliveryMethod, ErrorMessage,DeliveryDate,Guid.Empty )); } public static void LogClientDelivery(Guid ClientID, bool Delivered, string ErrorMessage) { //case 1608 if (ErrorMessage.Length > 500) ErrorMessage = ErrorMessage.Substring(ErrorMessage.Length - 500); DataPortal.Update(new NotifyDeliveryLog( RootObjectTypes.Client, ClientID, 0, User.CurrentThreadUserID, Delivered, Guid.Empty, NotifyDeliveryMethods.SMTP, ErrorMessage, DBUtil.CurrentWorkingDateTime, ClientID )); } public static void LogSMTPConnectFailure(string ErrorMessage) { //case 1608 if (ErrorMessage.Length > 500) ErrorMessage = ErrorMessage.Substring(ErrorMessage.Length - 500); DataPortal.Update(new NotifyDeliveryLog( RootObjectTypes.Nothing, Guid.NewGuid(), 0, User.AdministratorID, false, Guid.Empty, NotifyDeliveryMethods.SMTP, ErrorMessage, DBUtil.CurrentWorkingDateTime, Guid.Empty)); } //case 3808 public static void LogSMTPDeliveryMessage(string Message) { if (Message.Length > 500) Message = Message.Substring(Message.Length - 500); //not a delivery or not necessarily so setting delivered to true just so it //doesn't appear as an error DataPortal.Update(new NotifyDeliveryLog( RootObjectTypes.Nothing, Guid.NewGuid(), 0, User.AdministratorID, true, Guid.Empty, NotifyDeliveryMethods.SMTP, Message, DBUtil.CurrentWorkingDateTime, Guid.Empty)); } public static void LogClientSMTPConnectFailure(string ErrorMessage) { //case 1608 if (ErrorMessage.Length > 500) ErrorMessage = ErrorMessage.Substring(ErrorMessage.Length - 500); DataPortal.Update(new NotifyDeliveryLog( RootObjectTypes.Nothing, Guid.NewGuid(), 0, User.AdministratorID, false, Guid.Empty, NotifyDeliveryMethods.SMTP, ErrorMessage, DBUtil.CurrentWorkingDateTime, Guid.Empty )); } #endregion #region DAL DATA ACCESS //Case 255 change to public /// /// Called by DataPortal to delete/add/update data into the database /// /// public void DataPortal_Update() { //Update: 18-Nov-2006 was removing if older than 30 days //too excessive, changed to 7 days //Remove any entries older than 7 days DBCommandWrapper cmTrim = DBUtil.GetCommandFromSQL( "DELETE FROM aNotifyDeliveryLog " + "WHERE (aDeliveryDate < @SEVENDAYSAGO)" ); cmTrim.AddInParameter("@SEVENDAYSAGO", DbType.DateTime, DBUtil.ToUTC(DBUtil.CurrentWorkingDateTime.AddDays(-7))); DBUtil.DB.ExecuteNonQuery(cmTrim); //Insert log entry DBCommandWrapper cm = DBUtil.GetCommandFromSQL( "INSERT INTO aNotifyDeliveryLog (aRootObjectType, aRootObjectID, aEventType,aGuidValue, " + "aDeliveryDate, aToUserID, aDeliveryMethod, aDelivered, aErrorMessage, aToClientID ) " + "VALUES (@RootObjectType,@RootObjectID,@EventType,@GuidValue, " + "@DeliveryDate, @ToUserID, @DeliveryMethod, @Delivered, @ErrorMessage, @ToClientID )" ); cm.AddInParameter("@RootObjectID",DbType.Guid,this._RootObjectID); cm.AddInParameter("@GuidValue",DbType.Guid,this._GuidValue); cm.AddInParameter("@RootObjectType",DbType.Int16,(int)this._RootObjectType); cm.AddInParameter("@EventType",DbType.Int16,this._EventType); cm.AddInParameter("@ToUserID",DbType.Guid,this._ToUserID); cm.AddInParameter("@DeliveryDate",DbType.DateTime, DBUtil.ToUTC(this._DeliveryDate)); cm.AddInParameter("@Delivered",DbType.Boolean,this._Delivered); cm.AddInParameter("@DeliveryMethod",DbType.Int16,(int)this._DeliveryMethod); cm.AddInParameter("@ErrorMessage",DbType.String,this._ErrorMessage); cm.AddInParameter("@ToClientID", DbType.Guid, this._ToClientID); DBUtil.DB.ExecuteNonQuery(cm); } #endregion }//end NotifyDeliveryLog #pragma warning restore 1591 }//end Subjectspace GZTW.AyaNova.BLL