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); } } }
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); } } }