public void CleanUpExistingJobs()
        {
            string   contextDbName = Settings.GetSetting(SitecronConstants.SettingsNames.SiteCronContextDB, "master");
            Database contextDb     = Factory.GetDatabase(contextDbName);

            var folder = contextDb?.GetItem(SitecronConstants.ItemIds.AutoFolderID);

            if (folder == null)
            {
                return;
            }

            var autoFolderItems = folder.Axes.GetDescendants().Where(i =>
                                                                     TemplateManager.IsFieldPartOfTemplate(SitecronConstants.SiteCronFieldIds.CronExpression, i));

            if (autoFolderItems == null || (autoFolderItems != null && !autoFolderItems.Any()))
            {
                return;
            }

            Archive archive = ArchiveManager.GetArchive("archive", contextDb);

            foreach (var jobItem in autoFolderItems)
            {
                using (new SecurityDisabler())
                {
                    using (new EditContext(jobItem))
                    {
                        jobItem[SitecronConstants.FieldNames.LastRunLog] += "Archived at startup.";
                    }
                    archive.ArchiveItem(jobItem);
                    Log.Info(string.Format("SiteCron - Item Archived during startup. (ItemID: {0} DB: {1} Name:{2})", jobItem.ID.ToString(), contextDbName, jobItem.Name), this);
                }
            }
        }
예제 #2
0
        private void ArchiveItem(Database db, string itemID)
        {
            Item jobItem = db.GetItem(new ID(itemID));

            if (jobItem != null)
            {
                using (new Sitecore.SecurityModel.SecurityDisabler())
                {
                    Archive archive = ArchiveManager.GetArchive("archive", jobItem.Database);
                    archive.ArchiveItem(jobItem);
                    Log.Info(string.Format("Sitecron - Item Archived. (ItemID: {0} Archive:{1} DB: {2})", itemID, db.Name), this);
                }
            }
        }