コード例 #1
0
        protected void StartImport()
        {
            var dataSyncItem = GetDataSyncItem();

            var dataSyncManager = new DataSyncManager();
            LevelLogger logger = Manager.CreateLogger(dataSyncItem);
            OutputHandlerBase exporter = Manager.CreateOutputHandler(dataSyncItem, logger);
            logger.AddKey(Utility.Constants.DataSyncItemId, dataSyncItem.ID.ToString());
            logger.AddData(Utility.Constants.DataSyncItem, dataSyncItem);
            var map = dataSyncManager.InstantiateDataMap(dataSyncItem, ref logger);
            if (map != null)
            {
                var options = new JobOptions("DataSyncWizard", "Job category name", Context.Site.Name,
                                             new DataSyncWizard(), "Run", new object[] {map, map.Logger, exporter});
                var job = JobManager.Start(options);
                job.Options.CustomData = map.Logger;
                JobHandle = job.Handle.ToString();
                SheerResponse.Timer("CheckStatus", 5);
            }
            else
            {
                Active = "LastPage";
                BackButton.Disabled = true;
                if (logger.HasErrorsOrInfos())
                {
                    if (exporter != null)
                    {
                        ResultText.Value = exporter.Export();
                    }
                    else
                    {
                        ResultText.Value = "The Exporter class was null. Therefor the log was not written out.";
                    }
                }
            }
        }
コード例 #2
0
 public void RunJob(Item[] itemArray, CommandItem commandItem, ScheduleItem scheduledItem)
 {
     try
     {
         if (scheduledItem != null)
         {
             var itemIds = scheduledItem[ItemsFieldName];
             if (!String.IsNullOrEmpty(itemIds))
             {
                 var dataSourceCache = new Dictionary<string, string>();
                 var idList = itemIds.Split('|');
                 if (idList.Any())
                 {
                     foreach (var id in idList)
                     {
                         if (ID.IsID(id))
                         {
                             var dataSyncItem = scheduledItem.Database.GetItem(new ID(id));
                             try
                             {
                                 if (dataSyncItem != null)
                                 {
                                     var startedAt = DateTime.Now;
                                     LevelLogger logger = Manager.CreateLogger(dataSyncItem);
                                     logger.AddKey(Utility.Constants.DataSyncItemId, dataSyncItem.ID.ToString());
                                     logger.AddData(Utility.Constants.DataSyncItem, dataSyncItem);
                                     logger.AddData(Logger.Log.Constants.Identifier, dataSyncItem.Name);
                                     var dataSyncManager = new DataSyncManager();
                                     var dataSyncObject = dataSyncManager.InstantiateDataMap(dataSyncItem, ref logger) as XmlDataMap;
                                     if (dataSyncObject != null)
                                     {
                                         dataSyncObject.DataSourceCache = dataSourceCache;
                                         dataSyncObject.Process();
                                     }
                                     var finishededAt = DateTime.Now;
                                     logger.AddData(Logger.Log.Constants.StartTime, startedAt);
                                     logger.AddData(Logger.Log.Constants.EndTime, finishededAt);
                                     var exporter = Manager.CreateOutputHandler(dataSyncItem, logger);
                                     var logText = exporter.Export();
                                     if (exporter != null)
                                     {
                                         if (logger != null)
                                         {
                                             try
                                             {
                                                 MailManager.SendLogReport(ref logger, exporter);
                                             }
                                             catch (Exception exception)
                                             {
                                                 Diagnostics.Log.Error(
                                                     "Failed in sending out the mail. Please see the exception message for more details. Exception:" +
                                                     exception.Message + "\r\n\r\n" + logText, typeof(DataSyncTask));
                                             }
                                             if (logger.HasErrors())
                                             {
                                                 Diagnostics.Log.Error(logText, typeof (DataSyncTask));
                                             }
                                             else
                                             {
                                                 Diagnostics.Log.Debug(logText, typeof(DataSyncTask));
                                             }
                                         }
                                         else
                                         {
                                             Diagnostics.Log.Error("The Log object was null. This should not happen." + "\r\n\r\n" + logText, typeof(DataSyncTask));
                                         }
                                     }
                                     else
                                     {
                                         Diagnostics.Log.Error("The Exporter class was null. Therefor the log was not written out.\r\n\r\n" + logText, typeof(DataSyncTask));
                                     }
                                 }
                                 else
                                 {
                                     Diagnostics.Log.Error("The Task item had Items defined in Items[] that was null. This should not happen.", typeof (DataSyncTask));
                                 }
                             }
                             catch (Exception exception)
                             {
                                 var itemId = dataSyncItem != null ? dataSyncItem.ID.ToString() : string.Empty;
                                 Diagnostics.Log.Error(
                                     Identifier +
                                     String.Format(
                                         " - An exception occured in the execution of the task in the foreach (Item dataSyncItem in itemArray) of the DataSync item: {0}. This datasync job wasn't completed. Exception: {1}",
                                         itemId, exception.Message), typeof (DataSyncTask));
                             }
                         }
                         else
                         {
                             Diagnostics.Log.Error(
                             Identifier +
                             " - The provided value wasn't a correct Sitecore id. Please add at least one id to 'Items' field of the ScheduledItem. You can also use | to seperate ids. Therefor nothing was done.",
                             typeof(DataSyncTask));
                         }
                     }
                 }
                 else
                 {
                     Diagnostics.Log.Error(
                         Identifier +
                         " - There wasn't defined any DataSync items to run. Please add at least one id to 'Items' field of the ScheduledItem. You can also use | to seperate ids. Therefor nothing was done.",
                         typeof (DataSyncTask));
                 }
             }
             else
             {
                 Diagnostics.Log.Error(
                     Identifier + " - There wasn't defined any DataSync items to run. Therefor nothing was done.",
                     typeof (DataSyncTask));
             }
         }
         else
         {
             Diagnostics.Log.Error(
                     Identifier + " - The ScheduledItem was null. Therefor nothing was done.",
                     typeof(DataSyncTask));
         }
     }
     catch (Exception exception)
     {
         Diagnostics.Log.Error(Identifier + " - An exception occured in the execution of the task.", exception);
     }
 }