Exemple #1
0
        public void TestCascadeDeleteWithRelationships2( )
        {
            var f1 = Entity.Create <NavContainer>( );

            f1.Name = "f1";
            f1.Save( );
            var f2 = Entity.Create <NavContainer>( );

            f2.Name = "f2";
            f2.ResourceInFolder.Add(f1);
            var f3 = Entity.Create <NavContainer>( );

            f3.Name = "f3";
            f3.ResourceInFolder.Add(f2);
            f3.ShortcutInFolder.Add(f1);
            f3.Save( );

            long id1 = f1.Id;

            Assert.IsTrue(Entity.Exists(f1), "a f1");
            Assert.IsTrue(Entity.Exists(f2), "a f2");
            Assert.IsTrue(Entity.Exists(f3), "a f3");

            f2.Delete( );

            Assert.AreEqual(0, f3.Shortcuts.Count);

            IEntity e       = Entity.Get(id1);
            var     relDefn = new EntityRef("console", "shortcutInFolder");
            IEntityRelationshipCollection <IEntity> oRelated = e.GetRelationships(relDefn, Direction.Reverse);

            Assert.IsFalse(oRelated.Any(ri => ri.Entity == null));
            Assert.AreEqual(0, oRelated.Count);

            f1.Delete( );
        }
        public void SetChoiceMultiple( )
        {
            var sch = new ScheduleDailyRepeat
            {
                Name = "Test sch" + DateTime.Now
            };


            sch.Save( );

            // _toDelete.Add(sch.Id);


            var setAction = new SetChoiceActivity( );

            setAction.Save( );
            ToDelete.Add(setAction.Id);

            var setChoiceAs = setAction.As <WfActivity>( );

            ActivityImplementationBase nextActivity = setChoiceAs.CreateWindowsActivity( );

            var dayOfWeekRef = ( EntityRef )"core:sdrDayOfWeek";

            var args = new Dictionary <string, object>
            {
                {
                    "Resource to Update", sch
                },
                {
                    "Field to Update", dayOfWeekRef.Entity
                },
                {
                    "New Value", new EntityRef("core:dowSunday").Entity
                },
            };

            RunActivity(nextActivity, args);

            sch = Entity.Get <ScheduleDailyRepeat>(sch.Id);

            IEntityRelationshipCollection <IEntity> dowRefs = sch.GetRelationships(dayOfWeekRef);

            Assert.AreEqual(1, dowRefs.Count( ), "has been set");
            Assert.IsTrue(dowRefs.Any(w => w.Entity.Alias == "dowSunday"));

            args = new Dictionary <string, object>
            {
                {
                    "Resource to Update", sch
                },
                {
                    "Field to Update", dayOfWeekRef.Entity
                },
                {
                    "New Value", new EntityRef("core:dowMonday").Entity
                },
                {
                    "Replace Existing Values", false
                }
            };

            RunActivity(nextActivity, args);

            sch     = Entity.Get <ScheduleDailyRepeat>(sch.Id);
            dowRefs = sch.GetRelationships(dayOfWeekRef);
            Assert.AreEqual(2, dowRefs.Count( ), "has been added");
            Assert.IsTrue(dowRefs.Any(w => w.Entity.Alias == "dowMonday"));

            args = new Dictionary <string, object>
            {
                {
                    "Resource to Update", sch
                },
                {
                    "Field to Update", dayOfWeekRef.Entity
                },
                {
                    "New Value", new EntityRef("core:dowTuesday").Entity
                },
                {
                    "Replace Existing Values", true
                }
            };

            RunActivity(nextActivity, args);

            sch     = Entity.Get <ScheduleDailyRepeat>(sch.Id);
            dowRefs = sch.GetRelationships(dayOfWeekRef);
            Assert.AreEqual(1, dowRefs.Count( ), "has been reset");
            Assert.IsTrue(dowRefs.Any(w => w.Entity.Alias == "dowTuesday"));
        }