protected string GetEventSummaryForSMS(General.ErrorLogging.Model.ErrorOtherLogTrigger Data)
        {
            //Max length is 160 chars, about 60 will be used up by the Prefix and EventViewLink
            string strMessage = Settings.EventNotificationSubjectPrefix;

            if (!String.IsNullOrWhiteSpace(strMessage))
            {
                strMessage += ": ";
            }
            if (Data.Event.EventType != Model.ErrorOtherTypes.Unknown)
            {
                strMessage += LimitStr(Data.Event.EventType.ToString(), 10) + "\n";
            }
            if (!String.IsNullOrWhiteSpace(Data.Event.EventName))
            {
                strMessage += LimitStr(Data.Event.EventName, 45) + "\n";
            }
            if (!String.IsNullOrWhiteSpace(Data.Event.AppName))
            {
                strMessage += LimitStr(Data.Event.AppName, 25) + "\n";
            }
            strMessage += "\n" + GetEventViewLink(Data.Event.IncidentCode);
            if (!String.IsNullOrWhiteSpace(Data.Filter.Name))
            {
                strMessage += "\n(" + LimitStr(Data.Filter.Name.Replace("filter", "fltr").Replace("Filter", "Fltr"), 20) + ")";
            }
            return(strMessage);
        }
        protected string GetEventSubjectForEmail(General.ErrorLogging.Model.ErrorOtherLogTrigger Data)
        {
            try
            {
                string strSubject = Settings.EventNotificationSubjectPrefix;
                if (!String.IsNullOrWhiteSpace(strSubject))
                {
                    if (strSubject.Contains("]"))
                    {
                        strSubject += " ";
                    }
                    else
                    {
                        strSubject += ": ";
                    }
                }

                if (Data.Event.EventType != Model.ErrorOtherTypes.Unknown)
                {
                    strSubject += General.Reflection.EnumSerializer.GetDisplayName <General.ErrorLogging.Model.ErrorOtherTypes>(Data.Event.EventType);
                }
                if (!String.IsNullOrWhiteSpace(Data.Event.AppName))
                {
                    strSubject += " " + Data.Event.AppName;
                }
                return(strSubject);
            }
            catch { return("Application Event Matched Your Filters"); }
        }
        protected string GetEventSummaryForEmail(General.ErrorLogging.Model.ErrorOtherLogTrigger Data)
        {
            string s = "";

            s += "App: " + Data.Event.AppName + "<br/>";
            try
            {
                string strEventName = General.Debugging.ErrorReporter.SanitizeString(Data.Event.EventName);
                if (!String.IsNullOrWhiteSpace(strEventName))
                {
                    s += "Msg: " + LimitStr(strEventName, 150) + "<br/>";
                }
            }
            catch { }
            if (!String.IsNullOrWhiteSpace(Data.Event.ClientID))
            {
                s += "ClientID: " + Data.Event.ClientID + "<br/>";
            }
            if (!String.IsNullOrWhiteSpace(Data.Event.UserType))
            {
                s += "UserType: " + Data.Event.UserType + "<br/>";
            }
            else if (!String.IsNullOrWhiteSpace(Data.Event.UserID))
            {
                s += "UserID: " + Data.Event.UserID + "<br/>";
            }
            s += "Environment: " + Data.Event.Environment.ToString() + "<br/>";
            if (String.IsNullOrWhiteSpace(Data.Filter.Name))
            {
                s += "Filter: " + Data.Filter.ID.ToString() + "<br/>";
            }
            else
            {
                s += "Filter: " + Data.Filter.Name + "<br/>";
            }
            s += "Detail: " + GetEventViewLink(Data.Event.IncidentCode) + "<br/>";
            return(s);
        }
        protected NotificationResult NotifyByTrigger(General.ErrorLogging.Model.ErrorOtherLogTrigger Data)
        {
            NotificationResult result = new NotificationResult();

            result.Success = true;

            //Send email?
            try
            {
                if (Data.Filter != null && Data.Filter.PageEmail != null && Data.Filter.PageEmail.Valid)
                {
                    var oneResult = SendEmail(General.Debugging.Report.ErrorEmailFrom, Data.Filter.PageEmail, GetEventSubjectForEmail(Data), GetEventSummaryForEmail(Data), true);
                    if (oneResult.Success)
                    {
                        result.EmailSent     = true;
                        result.MessageCount += oneResult.MessageCount;
                    }
                    else
                    {
                        result.Success = false;
                    }
                    if (!String.IsNullOrWhiteSpace(oneResult.Detail))
                    {
                        result.Detail += oneResult.Detail + "\r\n";
                    }
                }
            }
            catch (Exception ex)
            {
                result.Success = false;
                result.Detail  = General.Debugging.ErrorReporter.GetErrorReport(ex, "\r\n").ToString();

                if (Data.Event.AppID > 0) //Don't report errors on yourself, it could create a loop of errors.
                {
                    ErrorReporter.ReportError(ex);
                }
            }

            try
            {
                //Send SMS message?
                if (Data.Filter != null && Data.Filter.PageSMS != null && Data.Filter.PageSMS.Valid)
                {
                    var oneResult = SendSMS(Data.Filter.PageSMS, GetEventSummaryForSMS(Data));
                    if (oneResult.Success)
                    {
                        result.SMSSent       = true;
                        result.MessageCount += oneResult.MessageCount;
                    }
                    else
                    {
                        result.Success = false;
                    }
                    if (!String.IsNullOrWhiteSpace(oneResult.Detail))
                    {
                        result.Detail += oneResult.Detail + "\r\n";
                    }
                }
            }
            catch (Exception ex)
            {
                result.Success = false;
                result.Detail  = General.Debugging.ErrorReporter.GetErrorReport(ex, "\r\n").ToString();

                if (Data.Event.AppID > 0) //Don't report errors on yourself, it could create a loop of errors.
                {
                    ErrorReporter.ReportError(ex);
                }
            }
            return(result);
        }