public virtual void InsertActivities(System.Workflow.ComponentModel.Design.HitTestInfo insertLocation, ReadOnlyCollection<Activity> activitiesToInsert)
 {
     WalkerEventHandler handler = null;
     if (insertLocation == null)
     {
         throw new ArgumentNullException("insertLocation");
     }
     if (activitiesToInsert == null)
     {
         throw new ArgumentNullException("activitiesToInsert");
     }
     CompositeActivity parentActivity = base.Activity as CompositeActivity;
     if (parentActivity == null)
     {
         throw new Exception(SR.GetString("Error_DragDropInvalid"));
     }
     int num = insertLocation.MapToIndex();
     IIdentifierCreationService service = base.GetService(typeof(IIdentifierCreationService)) as IIdentifierCreationService;
     if (service == null)
     {
         throw new InvalidOperationException(SR.GetString("General_MissingService", new object[] { typeof(IIdentifierCreationService).FullName }));
     }
     service.EnsureUniqueIdentifiers(parentActivity, activitiesToInsert);
     foreach (Activity activity2 in activitiesToInsert)
     {
         if (activity2 == null)
         {
             throw new ArgumentException("activitiesToInsert", SR.GetString("Error_CollectionHasNullEntry"));
         }
         if (activity2.Parent == null)
         {
             parentActivity.Activities.Insert(num++, activity2);
             WorkflowDesignerLoader.AddActivityToDesigner(base.Activity.Site, activity2);
         }
     }
     foreach (Activity activity3 in activitiesToInsert)
     {
         Walker walker = new Walker();
         if (handler == null)
         {
             handler = (w, walkerEventArgs) => ExtenderHelpers.FilterDependencyProperties(base.Activity.Site, walkerEventArgs.CurrentActivity);
         }
         walker.FoundActivity += handler;
         walker.Walk(activity3);
     }
 }
 public virtual void MoveActivities(System.Workflow.ComponentModel.Design.HitTestInfo moveLocation, ReadOnlyCollection<Activity> activitiesToMove)
 {
     WalkerEventHandler handler = null;
     if (moveLocation == null)
     {
         throw new ArgumentNullException("moveLocation");
     }
     if (activitiesToMove == null)
     {
         throw new ArgumentNullException("activitiesToMove");
     }
     CompositeActivity parentActivity = base.Activity as CompositeActivity;
     if (parentActivity == null)
     {
         throw new Exception(SR.GetString("Error_DragDropInvalid"));
     }
     IIdentifierCreationService service = base.GetService(typeof(IIdentifierCreationService)) as IIdentifierCreationService;
     if (service == null)
     {
         throw new InvalidOperationException(SR.GetString("General_MissingService", new object[] { typeof(IIdentifierCreationService).FullName }));
     }
     if (!(base.GetService(typeof(IDesignerHost)) is IDesignerHost))
     {
         throw new InvalidOperationException(SR.GetString("General_MissingService", new object[] { typeof(IDesignerHost).FullName }));
     }
     int num = moveLocation.MapToIndex();
     foreach (Activity activity2 in activitiesToMove)
     {
         ActivityDesigner designer = ActivityDesigner.GetDesigner(activity2);
         if ((designer != null) && (designer.ParentDesigner == this))
         {
             int num2 = parentActivity.Activities.IndexOf(activity2);
             if (num > num2)
             {
                 num--;
             }
         }
         CompositeActivity parent = activity2.Parent;
         int index = parent.Activities.IndexOf(activity2);
         activity2.Parent.Activities.Remove(activity2);
         service.EnsureUniqueIdentifiers(parentActivity, new Activity[] { activity2 });
         DesignerHelpers.UpdateSiteName(activity2, "_activityonthemove_");
         CompositeActivity compositeActivity = activity2 as CompositeActivity;
         if (compositeActivity != null)
         {
             int num4 = 1;
             foreach (Activity activity5 in Helpers.GetNestedActivities(compositeActivity))
             {
                 DesignerHelpers.UpdateSiteName(activity5, "_activityonthemove_" + num4.ToString(CultureInfo.InvariantCulture));
                 num4++;
             }
         }
         try
         {
             parentActivity.Activities.Insert(num++, activity2);
         }
         catch (Exception exception)
         {
             parent.Activities.Insert(index, activity2);
             throw exception;
         }
         DesignerHelpers.UpdateSiteName(activity2, activity2.Name);
         if (compositeActivity != null)
         {
             foreach (Activity activity6 in Helpers.GetNestedActivities(compositeActivity))
             {
                 DesignerHelpers.UpdateSiteName(activity6, activity6.Name);
             }
         }
     }
     foreach (Activity activity7 in activitiesToMove)
     {
         Walker walker = new Walker();
         if (handler == null)
         {
             handler = delegate (Walker w, WalkerEventArgs walkerEventArgs) {
                 ExtenderHelpers.FilterDependencyProperties(base.Activity.Site, walkerEventArgs.CurrentActivity);
                 TypeDescriptor.Refresh(walkerEventArgs.CurrentActivity);
             };
         }
         walker.FoundActivity += handler;
         walker.Walk(activity7);
     }
 }
 private System.Workflow.ComponentModel.Design.HitTestInfo GetUpdatedLocation(System.Workflow.ComponentModel.Design.HitTestInfo location)
 {
     int num = 0;
     foreach (DesignerView view in this.Views)
     {
         if (((view.AssociatedDesigner != null) && (this != view.AssociatedDesigner)) && Helpers.IsActivityLocked(view.AssociatedDesigner.Activity))
         {
             num++;
         }
     }
     return new ConnectorHitTestInfo(this, location.HitLocation, num + location.MapToIndex());
 }