205 lines
6.8 KiB
C#
205 lines
6.8 KiB
C#
///////////////////////////////////////////////////////////
|
|
// 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
|
|
|
|
/// <summary>
|
|
/// AyaNova NotifyDeliveryLog used to insert new
|
|
/// notification delivery events in the database.
|
|
///
|
|
/// Also removes all delivery log entries more than 30 days old
|
|
/// </summary>
|
|
[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
|
|
/// <summary>
|
|
///
|
|
///
|
|
/// </summary>
|
|
|
|
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
|
|
/// <summary>
|
|
/// Called by DataPortal to delete/add/update data into the database
|
|
/// </summary>
|
|
///
|
|
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 |