public static void SendLogReport(ref LevelLogger logger, OutputHandlerBase exporter) { var dataSyncItem = logger.GetData(Utility.Constants.DataSyncItem) as Item; if (dataSyncItem == null) { logger.AddError("Error", "The DataSyncItem was null. Therefor we couldn't retrieve any mail recipients."); return; } if (exporter == null) { logger.AddError("Error", "The ExporterBase was null. This class is used to output the logger."); return; } var recipient = dataSyncItem[FieldNameMailRecipients]; if (String.IsNullOrEmpty(recipient)) { logger.AddInfo("Add Mail Recipients to receive email reports", "If you want to receive email, then fill out the field 'Mail Recipients'."); } else { var replyTo = dataSyncItem[FieldNameMailReplyTo]; if (String.IsNullOrEmpty(replyTo)) { replyTo = DefaultReplyTo; logger.AddError("Error", "The 'Mail Reply To' field must be defined. Please provide a replyTo address for the mail."); } var subject = dataSyncItem[FieldNameMailSubject]; if (String.IsNullOrEmpty(subject)) { subject = DefaultSubject; } var result = !logger.HasFatalsOrErrors() ? Success : Failure; try { subject = String.Format(subject, exporter.GetIdentifier(), result); } catch (Exception exception) { logger.AddError("Error", "SendLogReport had an exception trying to format the subject of the mail." + exception.Message); } var doNotSendMailOnSuccess = dataSyncItem[FieldNameDoNotSendMailOnSuccess] == SitecoreBooleanTrue; if ((doNotSendMailOnSuccess && result == Failure) || !doNotSendMailOnSuccess) { try{ if (SendMail.SendMailWithoutAttachment(recipient, replyTo, subject, exporter.Export()) == Failure) { logger.AddError("Error", "The SendMailWithoutAttachment failed."); } } catch (Exception ex) { logger.AddError("Error", "The SendMailWithoutAttachment failed with an exception: " + ex.Message); } } } }
public void CheckStatus() { var job = JobManager.GetJob(Handle.Parse(JobHandle)); if (job != null) { var status = job.Status; var state = status.State; LevelLogger logger = (LevelLogger)job.Options.CustomData; var dataSyncItem = logger.GetData(Utility.Constants.DataSyncItem) as Item; if (status == null) { throw new Exception("The sync process was unexpectedly interrupted."); } if (state == JobState.Running) { NextButton.Disabled = true; BackButton.Disabled = false; CancelButton.Disabled = false; if (logger.GetCounter(IncrementConstants.TotalNumberOfItems) > 0) { ImportStatusText.Text = logger.GetCounter(IncrementConstants.ProcessedItems) + " of " + logger.GetCounter(IncrementConstants.TotalNumberOfItems) + " items processed."; } else { ImportStatusText.Text = "Retrieving import data..."; } if (logger.GetCounter(IncrementConstants.ProcessedItems) == logger.GetCounter(IncrementConstants.TotalNumberOfItems) && logger.GetCounter(IncrementConstants.ProcessedItems) != 0) { NotPresentStatusText.Text = "Processing items not present in import..."; //if (logger.TotalNumberOfNotPresentInImportItems > 0) //{ // NotPresentStatusText.Text = logger.GetCounter(IncrementConstants.DisabledItems) + " of " + // logger.TotalNumberOfNotPresentInImportItems + // " items not present in import processed."; //} } FailedText.Visible = logger.GetCounter(IncrementConstants.FailureItems) > 0; FailedStatusText.Text = logger.GetCounter(IncrementConstants.FailureItems) + " items failed."; } else if (state == JobState.Finished) { Status.Text = String.Format("Items processed: {0}.", logger.GetCounter(IncrementConstants.ProcessedItems).ToString(CultureInfo.CurrentCulture)); Active = "LastPage"; BackButton.Disabled = true; var exporter = Manager.CreateOutputHandler(dataSyncItem, logger); string str2 = exporter.Export(); if (!string.IsNullOrEmpty(str2)) { ResultText.Value = str2; } return; } SheerResponse.Timer("CheckStatus", 5); } }