/// <summary> /// Set the <see cref="IDropInfo.Effects"/> when the payload is an <see cref="ElementDefinition"/> /// </summary> /// <param name="dropinfo">The <see cref="IDropInfo"/></param> /// <param name="elementDefinition">The <see cref="ElementDefinition"/> in the payload</param> private void DragOver(IDropInfo dropinfo, ElementDefinition elementDefinition) { if (!this.PermissionService.CanWrite(ClassKind.ElementUsage, this.Thing.Container)) { dropinfo.Effects = DragDropEffects.None; return; } if (elementDefinition.TopContainer == this.Thing.TopContainer) { // prevent circular model dropinfo.Effects = elementDefinition.HasUsageOf(this.Thing) ? DragDropEffects.None : DragDropEffects.Copy; return; } dropinfo.Effects = DragDropEffects.None; }
public void VerifyThatHasUsageOfWorks() { var def1 = new ElementDefinition(); var def11 = new ElementDefinition(); var def12 = new ElementDefinition(); var def111 = new ElementDefinition(); var def1111 = new ElementDefinition(); var def121 = new ElementDefinition(); def1.ContainedElement.Add(new ElementUsage { ElementDefinition = def11 }); def1.ContainedElement.Add(new ElementUsage { ElementDefinition = def12 }); def11.ContainedElement.Add(new ElementUsage { ElementDefinition = def111 }); def111.ContainedElement.Add(new ElementUsage { ElementDefinition = def1111 }); def12.ContainedElement.Add(new ElementUsage { ElementDefinition = def121 }); Assert.IsTrue(def1.HasUsageOf(def1)); Assert.IsTrue(def1.HasUsageOf(def11)); Assert.IsTrue(def1.HasUsageOf(def111)); Assert.IsTrue(def1.HasUsageOf(def1111)); Assert.IsTrue(def1.HasUsageOf(def12)); Assert.IsTrue(def1.HasUsageOf(def121)); Assert.IsTrue(def11.HasUsageOf(def11)); Assert.IsTrue(def11.HasUsageOf(def111)); Assert.IsTrue(def11.HasUsageOf(def1111)); Assert.IsFalse(def11.HasUsageOf(def1)); Assert.IsFalse(def11.HasUsageOf(def12)); Assert.IsFalse(def11.HasUsageOf(def121)); }
public void VerifyThatHasUsageOfThrowsException() { var def1 = new ElementDefinition(); Assert.Throws <ArgumentNullException>(() => def1.HasUsageOf(null)); }