protected void Run(BaseDataMap map, LevelLogger logger, OutputHandlerBase exporter)
 {
     Context.Job.Status.State = JobState.Running;
     logger.AddKey(Utility.Constants.DataSyncItemId, map.ImportItem.ID.ToString());
     logger.AddData(Utility.Constants.DataSyncItem, map.ImportItem);
     logger.AddData(Logger.Log.Constants.Identifier, map.ImportItem.Name);
     var startedAt = DateTime.Now;
     logger = map.Process();
     var finishededAt = DateTime.Now;
     logger.AddData(Logger.Log.Constants.StartTime, startedAt);
     logger.AddData(Logger.Log.Constants.EndTime, finishededAt);
     try
     {
         MailManager.SendLogReport(ref logger, exporter);
     }
     catch (Exception exception)
     {
         Diagnostics.Log.Error(exporter.GetIdentifier() + " failed in sending out the mail. Please see the exception message for more details. Exception:" + exception.Message + ". Status:\r\n" +
             exporter.Export(), typeof(DataSyncWizard));
     }
     if (logger.HasErrors())
     {
         Context.Job.Status.Failed = true;
     }
     else
     {
         Context.Job.Status.State = JobState.Finished;
     }
 }