private void ReportChildTreeDeletions(Data.Items.Item parentItem, List <XmlNode> manifestItems, Sitecore.Data.Database scDataBase, ManifestReportDataBase manifestReportDatabase) { var items = parentItem.GetChildren(); items.ForEach(item => { if (!manifestItems.Any(manifestItem => NormalizeGuid(manifestItem.Attributes["Id"].Value) == NormalizeGuid(item.ID.Guid))) { manifestReportDatabase.Items.Add(new ManifestReportItem() { FullPath = item.Paths.FullPath, Id = NormalizeGuid(item.ID.Guid), UpdateType = "DEL" }); logger.Info("[DELETE] " + item.Paths.FullPath + " " + NormalizeGuid(item.ID.Guid)); // report all decendants as deleted, as we know these are not kept. ReportChildTreeDeletionsAsDeleted(item, manifestItems, scDataBase, manifestReportDatabase); } else { // check any child nodes recursivly. ReportChildTreeDeletions(item, manifestItems, scDataBase, manifestReportDatabase); } }); }
private void ReportChildTreeDeletionsAsDeleted(Data.Items.Item parentItem, List <XmlNode> manifestItems, Sitecore.Data.Database scDataBase, ManifestReportDataBase manifestReportDatabase) { var items = parentItem.GetChildren(); items.ForEach(item => { manifestReportDatabase.Items.Add(new ManifestReportItem() { FullPath = item.Paths.FullPath, Id = NormalizeGuid(item.ID.Guid), UpdateType = "DEL" }); logger.Info("[DELETE] " + item.Name + " " + NormalizeGuid(item.ID.Guid)); ReportChildTreeDeletionsAsDeleted(item, manifestItems, scDataBase, manifestReportDatabase); }); }