Esempio n. 1
0
        /// <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;
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        public void VerifyThatHasUsageOfThrowsException()
        {
            var def1 = new ElementDefinition();

            Assert.Throws <ArgumentNullException>(() => def1.HasUsageOf(null));
        }