// return true if really something is dropped, otherwise, false. bool DoAutoWrapDrop(InsertionPosition insertionPos, IEnumerable <object> droppedObjects) { List <Activity> activityList = ObjectList2ActivityList(droppedObjects); if (activityList.Count == 0) { return(false); } AutoWrapEventArgs args = new AutoWrapEventArgs() { InsertionPosition = insertionPos, ExistingActivity = this.MyActivity, ActivitiesToBeInserted = activityList }; using (ModelEditingScope scope = this.Context.Services.GetService <ModelService>().Root.BeginEdit(SR.WrapInSequenceDescription)) { ModelItem sequenceActivity = WorkflowItemPresenter.AutoWrapInSequenceHandler(this.Context, args); if (this.UpdateItem(sequenceActivity, true)) { scope.Complete(); return(true); } else { scope.Revert(); return(false); } } }
private static ModelItem AutoWrapInSequenceHandler(EditingContext editingContext, AutoWrapEventArgs e) { Fx.Assert(e.ExistingActivity != null || e.InsertionPosition == InsertionPosition.None, "Existing activity must not be null"); ModelItem sequence = editingContext.Services.GetService<ModelTreeManager>().CreateModelItem(null, new Sequence()); foreach (Activity activity in e.ActivitiesToBeInserted) { sequence.Properties["Activities"].Collection.Add(activity); } switch (e.InsertionPosition) { case InsertionPosition.Before: sequence.Properties["Activities"].Collection.Add(e.ExistingActivity); break; case InsertionPosition.After: sequence.Properties["Activities"].Collection.Insert(0, e.ExistingActivity); break; case InsertionPosition.None: break; default: Fx.Assert("Invalid insert position"); break; } return sequence; }
// return true if really something is dropped, otherwise, false. bool DoAutoWrapDrop(InsertionPosition insertionPos, IEnumerable<object> droppedObjects) { List<Activity> activityList = ObjectList2ActivityList(droppedObjects); if (activityList.Count == 0) { return false; } AutoWrapEventArgs args = new AutoWrapEventArgs() { InsertionPosition = insertionPos, ExistingActivity = this.MyActivity, ActivitiesToBeInserted = activityList }; using (ModelEditingScope scope = this.Context.Services.GetService<ModelService>().Root.BeginEdit(SR.WrapInSequenceDescription)) { ModelItem sequenceActivity = WorkflowItemPresenter.AutoWrapInSequenceHandler(this.Context, args); if (this.UpdateItem(sequenceActivity, true)) { scope.Complete(); return true; } else { scope.Revert(); return false; } } }
private static ModelItem AutoWrapInSequenceHandler(EditingContext editingContext, AutoWrapEventArgs e) { Fx.Assert(e.ExistingActivity != null || e.InsertionPosition == InsertionPosition.None, "Existing activity must not be null"); ModelItem sequence = editingContext.Services.GetService <ModelTreeManager>().CreateModelItem(null, new Sequence()); foreach (Activity activity in e.ActivitiesToBeInserted) { sequence.Properties["Activities"].Collection.Add(activity); } switch (e.InsertionPosition) { case InsertionPosition.Before: sequence.Properties["Activities"].Collection.Add(e.ExistingActivity); break; case InsertionPosition.After: sequence.Properties["Activities"].Collection.Insert(0, e.ExistingActivity); break; case InsertionPosition.None: break; default: Fx.Assert("Invalid insert position"); break; } return(sequence); }