/// <summary> /// Adds reply to the annotation, edits reply, creates child reply /// </summary> public static void AddAnnotationReply() { try { //ExStart:AddAnnotationReply IRepositoryPathFinder pathFinder = new RepositoryPathFinder(); var documentRepository = new DocumentRepository(pathFinder); // Create instance of annotator IAnnotator annotator = new Annotator( new UserRepository(pathFinder), documentRepository, new AnnotationRepository(pathFinder), new AnnotationReplyRepository(pathFinder), new AnnotationCollaboratorRepository(pathFinder)); // Create document data object in storage var document = documentRepository.GetDocument("Document.pdf"); long documentId = document != null ? document.Id : annotator.CreateDocument("Document.pdf"); // Create annotation object AnnotationInfo pointAnnotation = new AnnotationInfo { AnnotationPosition = new Point(852.0, 81.0), Box = new Rectangle(212f, 81f, 142f, 0.0f), Type = AnnotationType.Point, PageNumber = 0, CreatorName = "Anonym", DocumentGuid = documentId }; // Add annotation to storage var createPointAnnotationResult = annotator.CreateAnnotation(pointAnnotation); // Add simple reply to created annotation var addSimpleReplyResult = annotator.CreateAnnotationReply(createPointAnnotationResult.Id, "first question"); // Edit created reply var editReplyResult = annotator.EditAnnotationReply(addSimpleReplyResult.ReplyGuid, "changed question"); // Create child reply. This reply will be linked to previously created reply. var addChildReplyResult = annotator.CreateAnnotationReply(createPointAnnotationResult.Id, "answer", addSimpleReplyResult.ReplyGuid); // Delete annotation reply by guid var deleteReplyResult = annotator.DeleteAnnotationReply(addChildReplyResult.ReplyGuid); // Delete all replies from annotation annotator.DeleteAnnotationReplies(createPointAnnotationResult.Id); // List of replies after deleting all replies var listRepliesResultAfterDeleteAll = annotator.ListAnnotationReplies(createPointAnnotationResult.Id); //ExEnd:AddAnnotationReply } catch (Exception exp) { Console.WriteLine(exp.Message); } }