public static void AddCollaborativeReviewComments()
{
Console.WriteLine( "\tAddCollaborativeReviewComments()" );
using( var document = DocX.Create( @"ProjectProposal.docx" ) )
{
// Participants:
// - Emma Roberts (Project Manager)
// - Daniel Lee (Senior Developer)
// - Sarah Thompson (UI/UX Designer)
// - Michael Chen (QA Lead)
// - Olivia Martin (Product Owner)
// Title
document.InsertParagraph( "Project Proposal – Collaborative Review" ).FontSize( 16 ).Bold().UnderlineStyle( UnderlineStyle.singleLine ).Alignment = Alignment.center;
// Inserts Paragraph to attach Comments
Paragraph intro = document.InsertParagraph( "This proposal outlines the architecture and delivery plan for the new Analytics Dashboard." );
// Product Owner gives initial comment
Comment mainComment = document.AddComment( commentText: "Great start! Please verify that all timeline estimates reflect the latest sprint capacity planning.",
author: "Olivia Martin",
date: new DateTime( 2025, 11, 1, 9, 15, 0 ) );
intro.InsertComment( mainComment );
// Project Manager replies
Comment pmReply = document.AddComment(
"Thanks Olivia. I will update the schedule section and adjust the dates accordingly.",
"Emma Roberts",
new DateTime( 2025, 11, 1, 10, 5, 0 ) );
mainComment.AddReply( pmReply );
// Developer joins the thread
Comment devReply = document.AddComment(
"While updating the schedule, please also add a note that backend API stabilization is expected to require an additional sprint.",
"Daniel Lee",
new DateTime( 2025, 11, 1, 11, 30, 0 ) );
mainComment.AddReply( devReply );
// Designer provides UI/UX perspective
Comment uxReply = document.AddComment(
"Agreed. Also note that the new dashboard wireframes will be ready this Friday, so the design review can be added to the schedule.",
"Sarah Thompson",
new DateTime( 2025, 11, 1, 13, 10, 0 ) );
mainComment.AddReply( uxReply );
// QA Lead adds risk considerations
Comment qaReply = document.AddComment(
"Please include a QA verification cycle after API stabilization. We’ve seen regressions during similar migrations.",
"Michael Chen",
new DateTime( 2025, 11, 1, 14, 40, 0 ) );
mainComment.AddReply( qaReply );
// Adds a second review thread on a technical paragraph
Paragraph techSection = document.InsertParagraph( "\nThe system will rely on microservices communicating via an event-driven architecture." );
Comment archComment = document.AddComment(
"We should validate whether event replay support is required for auditability.",
"Daniel Lee",
new DateTime( 2025, 11, 2, 8, 45, 0 ) );
techSection.InsertComment( archComment );
// Product Owner replies
var poReply = document.AddComment(
"Yes, auditability is a core requirement—please confirm with the compliance team.",
"Olivia Martin",
new DateTime( 2025, 11, 2, 9, 20, 0 ) );
archComment.AddReply( poReply );
// Project Manager confirms next steps
var pmConfirmReply = document.AddComment(
"Noted. I will schedule a short meeting with Compliance to clarify the retention and logging policies.",
"Emma Roberts",
new DateTime( 2025, 11, 2, 10, 0, 0 ) );
archComment.AddReply( pmConfirmReply );
// Adds a third collaborative thread on UI/UX
Paragraph uiSection = document.InsertParagraph( "\nThe dashboard interface will feature customizable widgets and responsive layout." );
Comment uiRoot = document.AddComment(
"I propose we add a note that accessibility compliance (WCAG 2.1 AA) will be a mandatory deliverable.",
"Sarah Thompson",
new DateTime( 2025, 11, 3, 11, 5, 0 ) );
uiSection.InsertComment( uiRoot );
// Developer responds
uiRoot.AddReply( document.AddComment(
"Good point. I'll review the library support for keyboard navigation and ARIA roles.",
"Daniel Lee",
new DateTime( 2025, 11, 3, 12, 10, 0 ) ) );
// QA Lead confirms test coverage
uiRoot.AddReply( document.AddComment(
"We’ll include full accessibility tests in the automation pipeline.",
"Michael Chen",
new DateTime( 2025, 11, 3, 13, 45, 0 ) ) );
// Saves output
document.Save();
}
}