Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private int FixBrokenLinksInDatabase(Database database, bool serializeItem)
- {
- Globals.LinkDatabase.Rebuild(database);
- ItemLink[] brokenLinks = Globals.LinkDatabase.GetBrokenLinks(database);
- ItemLink[] itemLinkArray = new BrokenLinksFilter().ExcludeSystemItemLinks(database, (IReadOnlyCollection<ItemLink>) brokenLinks);
- foreach (ItemLink itemLink in itemLinkArray)
- {
- Item sourceItem = itemLink.GetSourceItem();
- if (sourceItem != null)
- {
- CustomField field = FieldTypeManager.GetField(sourceItem.Fields[itemLink.SourceFieldID]);
- Assert.IsNotNull((object) field, "customField");
- using (new SecurityDisabler())
- {
- using (new EditContext(sourceItem))
- {
- this.LogLinkRemove(itemLink);
- field.RemoveLink(itemLink);
- if (serializeItem)
- {
- if (sourceItem.Language == Language.Invariant)
- sourceItem.RecycleVersion();
- Manager.DumpItem(sourceItem);
- }
- Log.Info("Done", (object) this);
- }
- }
- }
- }
- return itemLinkArray.Length;
- }
Add Comment
Please, Sign In to add comment