public static string GetMessageBody(string maName, string triggerType, string triggerDetails, DateTime errorTime, bool hasTerminated, Exception ex) { StringBuilder builder = new StringBuilder(); builder.AppendFormat(MessageBuilder.GetTemplate("TriggerErrorFragment"), maName, triggerType, triggerDetails, errorTime, hasTerminated ? "Yes" : "No", ex); InlineResult result = PreMailer.Net.PreMailer.MoveCssInline(MessageBuilder.GetTemplate("EmailTemplate").Replace("%BODY%", builder.ToString())); return(result.Html); }
private static string BuildExportErrorDetails(StepDetails d) { if (d.SynchronizationErrors.ExportErrors.Count == 0) { return(null); } IEnumerable <ExportError> errors; int remainingErrors = 0; if (Program.ActiveConfig.Settings.MailMaxErrors <= 0 || d.SynchronizationErrors.ExportErrors.Count <= Program.ActiveConfig.Settings.MailMaxErrors) { errors = d.SynchronizationErrors.ExportErrors; } else { errors = d.SynchronizationErrors.ExportErrors.Take(Program.ActiveConfig.Settings.MailMaxErrors); remainingErrors = d.SynchronizationErrors.ExportErrors.Count - Program.ActiveConfig.Settings.MailMaxErrors; } StringBuilder errorsBuilder = new StringBuilder(); errorsBuilder.AppendLine("<h3>Export errors</h3>"); foreach (ExportError error in errors) { StringBuilder errorBuilder = new StringBuilder(); errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "DN", error.DN); errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "Error type", error.ErrorType); errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "Date occurred", error.DateOccurred); errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "First occurred", error.FirstOccurred); errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "Retry count", error.RetryCount); if (error.CDError != null) { errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "Error code", error.CDError.ErrorCode); errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "Error literal", error.CDError.ErrorLiteral); errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "Server error detail", error.CDError.ServerErrorDetail); } errorsBuilder.AppendLine(string.Format(MessageBuilder.GetTemplate("ErrorTableFragment"), errorBuilder)); errorsBuilder.AppendLine("<br/>"); } if (remainingErrors > 0) { errorsBuilder.Append($"There are {remainingErrors} more errors that are not shown in this report<br/>"); } return(errorsBuilder.ToString()); }
public static string GetMessageBody(RunDetails r, string thresholdMessage) { StringBuilder builder = new StringBuilder(); if (thresholdMessage != null) { builder.AppendFormat(MessageBuilder.GetTemplate("ThresholdExceededFragment"), r.RunProfileName, r.MAName, r.StartTime, r.EndTime, r.SecurityID, r.LastStepStatus, r.RunNumber, thresholdMessage); } else { builder.AppendFormat(MessageBuilder.GetTemplate("RunSummaryFragment"), r.RunProfileName, r.MAName, r.StartTime, r.EndTime, r.SecurityID, r.LastStepStatus, r.RunNumber); } builder.AppendFormat(MessageBuilder.GetTemplate("StepTableFragment"), MessageBuilder.BuildStepDetails(r.StepDetails)); string stagingErrors = MessageBuilder.BuildStagingErrorDetails(r.StepDetails); if (stagingErrors != null) { builder.AppendLine(stagingErrors); } string importErrors = MessageBuilder.BuildImportErrorDetails(r.StepDetails); if (importErrors != null) { builder.AppendLine(importErrors); } string exportErrors = MessageBuilder.BuildExportErrorDetails(r.StepDetails); if (exportErrors != null) { builder.AppendLine(exportErrors); } string syncErrors = MessageBuilder.BuildSyncErrorDetails(r.StepDetails); if (syncErrors != null) { builder.AppendLine(syncErrors); } InlineResult result = PreMailer.Net.PreMailer.MoveCssInline(MessageBuilder.GetTemplate("EmailTemplate").Replace("%BODY%", builder.ToString())); return(result.Html); }
private static string BuildSyncErrorDetails(StepDetails d) { if (d.MVRetryErrors == null || d.MVRetryErrors.Count == 0) { return(null); } IEnumerable <MVRetryError> errors; int remainingErrors = 0; if (Program.ActiveConfig.Settings.MailMaxErrors <= 0 || d.MVRetryErrors.Count <= Program.ActiveConfig.Settings.MailMaxErrors) { errors = d.MVRetryErrors; } else { errors = d.MVRetryErrors.Take(Program.ActiveConfig.Settings.MailMaxErrors); remainingErrors = d.MVRetryErrors.Count - Program.ActiveConfig.Settings.MailMaxErrors; } StringBuilder errorsBuilder = new StringBuilder(); errorsBuilder.AppendLine("<h3>Outbound synchronization errors</h3>"); foreach (MVRetryError error in errors) { StringBuilder errorBuilder = new StringBuilder(); errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "Object", error.DisplayName ?? error.MVID); errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "Step", error.AlgorithmStep?.Value); errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "Error type", error.ErrorType); errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "Date occurred", error.DateOccurred); MessageBuilder.BuildErrorExtensionInfo(error.ExtensionErrorInfo, errorBuilder); MessageBuilder.BuildRulesErrorInfo(error.RulesErrorInfo, errorBuilder); errorsBuilder.AppendLine(string.Format(MessageBuilder.GetTemplate("ErrorTableFragment"), errorBuilder)); errorsBuilder.AppendLine("<br/>"); } if (remainingErrors > 0) { errorsBuilder.Append($"There are {remainingErrors} more errors that are not shown in this report<br/>"); } return(errorsBuilder.ToString()); }
private static string BuildStagingErrorDetails(StepDetails d) { if (d.MADiscoveryErrors.Count == 0) { return(null); } IEnumerable <MAObjectError> errors; int remainingErrors = 0; if (Program.ActiveConfig.Settings.MailMaxErrors <= 0 || d.MADiscoveryErrors.Count <= Program.ActiveConfig.Settings.MailMaxErrors) { errors = d.MADiscoveryErrors; } else { errors = d.MADiscoveryErrors.Take(Program.ActiveConfig.Settings.MailMaxErrors); remainingErrors = d.MADiscoveryErrors.Count - Program.ActiveConfig.Settings.MailMaxErrors; } StringBuilder errorsBuilder = new StringBuilder(); errorsBuilder.AppendLine("<h3>Staging errors</h3>"); foreach (MAObjectError error in errors) { StringBuilder errorBuilder = new StringBuilder(); errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "DN", error.DN); errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "Error type", error.ErrorType); if (error.CDError != null) { errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "Error code", error.CDError.ErrorCode); errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "Error literal", error.CDError.ErrorLiteral); errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "Server error detail", error.CDError.ServerErrorDetail); if (error.CDError.Value != null) { errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "Value", string.Join(", ", error.CDError.Value)); } } if (error.LineNumber > 0) { errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "Line number", error.LineNumber); } if (error.ColumnNumber > 0) { errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "Column number", error.ColumnNumber); } if (error.AttributeName != null) { errorBuilder.AppendFormat(MessageBuilder.SimpleRow, "Attribute name", error.AttributeName); } errorsBuilder.AppendLine(string.Format(MessageBuilder.GetTemplate("ErrorTableFragment"), errorBuilder)); errorsBuilder.AppendLine("<br/>"); } if (remainingErrors > 0) { errorsBuilder.Append($"There are {remainingErrors} more errors that are not shown in this report<br/>"); } return(errorsBuilder.ToString()); }