Guest User

Untitled

a guest
Jan 21st, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. private int FixBrokenLinksInDatabase(Database database, bool serializeItem)
  2.     {
  3.       Globals.LinkDatabase.Rebuild(database);
  4.       ItemLink[] brokenLinks = Globals.LinkDatabase.GetBrokenLinks(database);
  5.       ItemLink[] itemLinkArray = new BrokenLinksFilter().ExcludeSystemItemLinks(database, (IReadOnlyCollection<ItemLink>) brokenLinks);
  6.       foreach (ItemLink itemLink in itemLinkArray)
  7.       {
  8.         Item sourceItem = itemLink.GetSourceItem();
  9.         if (sourceItem != null)
  10.         {
  11.           CustomField field = FieldTypeManager.GetField(sourceItem.Fields[itemLink.SourceFieldID]);
  12.           Assert.IsNotNull((object) field, "customField");
  13.           using (new SecurityDisabler())
  14.           {
  15.             using (new EditContext(sourceItem))
  16.             {
  17.               this.LogLinkRemove(itemLink);
  18.               field.RemoveLink(itemLink);
  19.               if (serializeItem)
  20.               {
  21.                 if (sourceItem.Language == Language.Invariant)
  22.                   sourceItem.RecycleVersion();
  23.                 Manager.DumpItem(sourceItem);
  24.               }
  25.               Log.Info("Done", (object) this);
  26.             }
  27.           }
  28.         }
  29.       }
  30.       return itemLinkArray.Length;
  31.     }
Add Comment
Please, Sign In to add comment