예제 #1
0
        public void GetLayerRelationRulesTest()
        {
            var myRelation = new LayerRelationRule()
            {
                SourceLayer   = _tester.Layer1,
                SourceLayerId = _tester.Layer1.Id,
                TargetLayer   = _tester.Layer2,
                TargetLayerId = _tester.Layer2.Id,
                Color         = "my-color",
                ArrowStyle    = "my-style",
                Title         = "my-title",
                Description   = "my-description"
            };
            var expected = new List <LayerRelationRule>()
            {
                myRelation
            };

            _tester.TestController()
            .WithDbContext(dbContext => dbContext
                           .WithSet <Layer>(db => db.AddRange(_tester.Layer1, _tester.Layer2))
                           .WithSet <LayerRelationRule>(db => db.Add(myRelation))
                           )
            .Calling(c => c.GetAllLayerRelationRules())
            .ShouldReturn()
            .Ok()
            .WithModelOfType <List <LayerRelationRule> >()
            .Passing(actual => expected.SequenceEqual(actual));
        }
예제 #2
0
        internal bool AddLayerRelationRule(LayerRelationRuleFormModel model)
        {
            if (!(DbContext.Layers.Any(l => l.Id == model.SourceLayerId) || DbContext.Layers.Any(l => l.Id == model.TargetLayerId)))
            {
                return(false);
            }
            var rule = new LayerRelationRule()
            {
                SourceLayerId = model.SourceLayerId,
                TargetLayerId = model.TargetLayerId,
                Color         = model.Color,
                ArrowStyle    = model.ArrowStyle
            };

            DbContext.LayerRelationRules.Add(rule);
            DbContext.SaveChanges();
            Console.Write("added relation:" + model.SourceLayerId + model.TargetLayerId);
            return(true);
        }
예제 #3
0
 public RelationResult(LayerRelationRule rule)
     : base(rule.SourceLayerId, rule.TargetLayerId, rule)
 {
     SourceName = rule.SourceLayer.Name;
     TargetName = rule.TargetLayer.Name;
 }
        public ControllerTester()
        {
            Admin = new User
            {
                Id    = 1,
                UId   = AdminUId,
                Email = "*****@*****.**",
                Role  = "Administrator"
            };
            Student = new User
            {
                Id    = 2,
                UId   = StudentUId,
                Email = "*****@*****.**",
                Role  = "Student"
            };
            Supervisor = new User
            {
                Id    = 3,
                UId   = SupervisorUId,
                Email = "*****@*****.**",
                Role  = "Supervisor"
            };
            Reviewer = new User
            {
                Id    = 6,
                UId   = ReviewerUId,
                Email = "*****@*****.**",
                Role  = "Reviewer"
            };

            /*
             * Layer1   Layer2
             * |-tag1   |-tag2
             * |-tag3   |-tag4
             *
             * Layer Relation Rules:
             * Layer1 -> Layer2
             *
             * Annotation AnnotationTag Relations:
             * tag1 -> tag2
             * tag3 -> tag2
             * tag3 -> tag4
             */
            Layer1 = new Layer()
            {
                Id = 1, Name = "Time"
            };
            Layer2 = new Layer()
            {
                Id = 2, Name = "Perspective"
            };
            Tag1 = new AnnotationTag()
            {
                Id = 1, Layer = Layer1.Name
            };
            Tag2 = new AnnotationTag()
            {
                Id = 2, Layer = Layer2.Name
            };
            Tag3 = new AnnotationTag()
            {
                Id = 3, Layer = Layer1.Name
            };
            Tag4 = new AnnotationTag()
            {
                Id = 4, Layer = Layer2.Name
            };
            Tag1.ChildTags = new List <AnnotationTag>()
            {
                Tag3
            };
            Tag2.ChildTags = new List <AnnotationTag>()
            {
                Tag4
            };
            RelationRule12 = new AnnotationTagRelationRule()
            {
                Id = 3, SourceTagId = Tag1.Id, TargetTagId = Tag2.Id, Title = "Tag Relation Rule 1->2"
            };
            RelationRule32 = new AnnotationTagRelationRule()
            {
                Id = 5, SourceTagId = Tag3.Id, TargetTagId = Tag2.Id, Title = "Tag Relation Rule 3->2"
            };
            RelationRule34 = new AnnotationTagRelationRule()
            {
                Id = 7, SourceTagId = Tag3.Id, TargetTagId = Tag4.Id, Title = "Tag Relation Rule 3->4"
            };
            TagInstance1 = new AnnotationTagInstance(Tag1)
            {
                Id = 1
            };
            TagInstance2 = new AnnotationTagInstance(Tag2)
            {
                Id = 2
            };
            TagInstance3 = new AnnotationTagInstance(Tag3)
            {
                Id = 3
            };
            TagInstance4 = new AnnotationTagInstance(Tag4)
            {
                Id = 4
            };
            Relation12 = new AnnotationTagInstanceRelation(TagInstance1, TagInstance2)
            {
                Id = 3
            };
            Relation32 = new AnnotationTagInstanceRelation(TagInstance3, TagInstance2)
            {
                Id = 5
            };
            Relation34 = new AnnotationTagInstanceRelation(TagInstance3, TagInstance4)
            {
                Id = 7
            };
            LayerRelationRule = new LayerRelationRule()
            {
                Id            = 3,
                SourceLayer   = Layer1,
                SourceLayerId = Layer1.Id,
                TargetLayer   = Layer2,
                TargetLayerId = Layer2.Id,
                Color         = "test-color",
                ArrowStyle    = "test-style"
            };
            TopicOne = new Topic
            {
                Id          = 1,
                Title       = "Paderborner Dom",
                Status      = "InReview",
                Deadline    = new DateTime(2017, 5, 04),
                CreatedById = Supervisor.Id,
                Description = "Church"
            };
            TopicTwo = new Topic
            {
                Id          = 2,
                Title       = "Westerntor",
                Status      = "InProgress",
                Deadline    = new DateTime(2017, 4, 18),
                CreatedById = Supervisor.Id,
                Description = "Shopping"
            };
            UnreadNotification = new Notification
            {
                NotificationId = 1,
                UserId         = Student.Id,
                UpdaterId      = Supervisor.Id,
                Type           = NotificationType.TOPIC_ASSIGNED_TO,
                TopicId        = TopicOne.Id,
                IsRead         = false
            };
            ReadNotification = new Notification
            {
                NotificationId = 2,
                UserId         = Student.Id,
                UpdaterId      = Supervisor.Id,
                Type           = NotificationType.TOPIC_ASSIGNED_TO,
                TopicId        = TopicTwo.Id,
                IsRead         = true
            };
            Subscription = new Subscription // Adding a new subscription
            {
                SubscriptionId = 1,
                SubscriberId   = Student.Id,
                Subscriber     = Student,
                Type           = NotificationType.TOPIC_ASSIGNED_TO
            };
            SupervisorUser = new TopicUser
            {
                TopicId = TopicOne.Id,
                UserId  = Supervisor.Id,
                Role    = Supervisor.Role
            };
            StudentUser = new TopicUser
            {
                TopicId = TopicOne.Id,
                UserId  = Student.Id,
                Role    = Student.Role
            };
            ReviewerUser = new TopicUser
            {
                TopicId = TopicOne.Id,
                UserId  = Reviewer.Id,
                Role    = Reviewer.Role
            };
            FirstDocument = new Document
            {
                TopicId   = TopicOne.Id,
                UpdaterId = Admin.Id,
                Content   = "Hello"
            };
            TagInstanceForDocument = new AnnotationTagInstance
            {
                Id         = 5,
                TagModelId = Tag1.Id,
                Document   = FirstDocument
            };
        }
        public void BeforeTest()
        {
            // create some User, Tag and TagRelation objects for mocking the database
            _admin = new User
            {
                Id    = 1,
                Email = "*****@*****.**",
                Role  = "Administrator"
            };
            _student = new User
            {
                Id    = 2,
                Email = "*****@*****.**",
                Role  = "Student"
            };
            _supervisor = new User
            {
                Id    = 3,
                Email = "*****@*****.**",
                Role  = "Supervisor"
            };

            /*
             * Layer1   Layer2
             * |-tag1   |-tag2
             * |-tag3   |-tag4
             *
             * Layer Relation Rules:
             * Layer1 -> Layer2
             *
             * Annotation Tag Relations:
             * tag1 -> tag2
             * tag3 -> tag2
             * tag3 -> tag4
             */
            _layer1 = new Layer()
            {
                Id = 1, Name = "Time"
            };
            _layer2 = new Layer()
            {
                Id = 2, Name = "Perspective"
            };
            _tag1 = new AnnotationTag()
            {
                Id = 1, Layer = _layer1.Name
            };
            _tag2 = new AnnotationTag()
            {
                Id = 2, Layer = _layer2.Name
            };
            _tag3 = new AnnotationTag()
            {
                Id = 3, Layer = _layer1.Name
            };
            _tag4 = new AnnotationTag()
            {
                Id = 4, Layer = _layer2.Name
            };
            _tag1.ChildTags = new List <AnnotationTag>()
            {
                _tag3
            };
            _tag2.ChildTags = new List <AnnotationTag>()
            {
                _tag4
            };
            _relation12        = new AnnotationTagRelation(_tag1, _tag2);
            _relation34        = new AnnotationTagRelation(_tag3, _tag4);
            _layerRelationRule = new LayerRelationRule()
            {
                SourceLayer   = _layer1,
                SourceLayerId = _layer1.Id,
                TargetLayer   = _layer2,
                TargetLayerId = _layer2.Id,
                Color         = "test-color",
                ArrowStyle    = "test-style"
            };
        }