public override bool MoveItem([NotNull] ItemDefinition itemDefinition, [NotNull] ItemDefinition destination, [NotNull] CallContext context) { Assert.ArgumentNotNull(itemDefinition, nameof(itemDefinition)); Assert.ArgumentNotNull(destination, nameof(destination)); Assert.ArgumentNotNull(context, nameof(context)); #if DEBUG var timer = Stopwatch.StartNew(); #endif if (HeadProvider.GetItemDefinition(itemDefinition.ID, context) == null) { using (new SecurityDisabler()) { var item = context.DataManager.Database.GetItem(itemDefinition.ID); Assert.IsNotNull(item, nameof(item)); if (!MigrateDefaultItem(itemDefinition, item, context)) { #if DEBUG this.Trace(false, timer, itemDefinition.ID, destination.ID, context); #endif return(false); } } } var moved = HeadProvider.MoveItem(itemDefinition, destination, context); #if DEBUG this.Trace(moved, timer, itemDefinition.ID, destination.ID, context); #endif return(moved); }