public void GetAvailableRelationsForIdTest() { var tagInstance5 = new AnnotationTagInstance(new AnnotationTag() { Id = 5 }) { Id = 5 }; var relation35 = new AnnotationTagInstanceRelation(_tester.TagInstance3, tagInstance5) { Id = 5 }; var expected = new List <RelationResult>() { new RelationResult(_tester.Relation34), new RelationResult(relation35) }; _tester.TestController() .WithDbContext(dbContext => dbContext .WithSet <AnnotationTag>(db => db.AddRange(_tester.Tag1, _tester.Tag2, _tester.Tag3, _tester.Tag4)) .WithSet <AnnotationTagInstance>(db => db.AddRange(_tester.TagInstance1, _tester.TagInstance2, _tester.TagInstance3, _tester.TagInstance4, tagInstance5)) .WithSet <AnnotationTagRelationRule>(db => db.AddRange(_tester.RelationRule12, _tester.RelationRule32, _tester.RelationRule34)) .WithSet <AnnotationTagInstanceRelation>(db => db.AddRange(_tester.Relation12, _tester.Relation34, relation35)) ) .Calling(c => c.GetAllowedRelationsForInstance(_tester.TagInstance3.Id)) .ShouldReturn() .Ok() .WithModelOfType <List <RelationResult> >() .Passing(RelationsEqualPredicate(expected)); }
internal bool AddTagRelation(RelationFormModel model) { var tag1 = DbContext.AnnotationTagInstances.Single(tag => tag.Id == model.SourceId); var tag2 = DbContext.AnnotationTagInstances.Single(tag => tag.Id == model.TargetId); if (tag1 != null && tag2 != null) { var forwardRelation = new AnnotationTagInstanceRelation(tag1, tag2, model.Title, model.ArrowStyle, model.Color); DbContext.AnnotationTagRelations.Add(forwardRelation); DbContext.SaveChanges(); return(true); } else { return(false); } }
public RelationResult(AnnotationTagInstanceRelation rel) : base(rel.SourceTagId, rel.TargetTagId, rel) { SourceName = rel.SourceTag.TagModel.Name; TargetName = rel.TargetTag.TagModel.Name; }
private RelationFormModel RelationFormModelFromRelation(AnnotationTagInstanceRelation rel) { return(new RelationFormModel(rel.SourceTagId, rel.TargetTagId, rel)); }
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 }; }