// Copyright (c) Microsoft. All rights reserved.
using System;
using Microsoft.Agents.AI.Workflows;
namespace WorkflowVisualizationSample;
///
/// Sample demonstrating workflow visualization using Mermaid and DOT (Graphviz) formats.
///
///
/// This sample shows how to use the ToMermaidString() and ToDotString() extension methods
/// to generate visual representations of workflow graphs. The visualizations can be used
/// for documentation, debugging, and understanding complex workflow structures.
///
internal static class Program
{
///
/// Entry point that generates and displays workflow visualizations in Mermaid and DOT formats.
///
/// Command line arguments (not used).
private static void Main(string[] args)
{
// Step 1: Build the workflow you want to visualize
Workflow workflow = WorkflowMapReduceSample.Program.BuildWorkflow();
// Step 2: Generate and display workflow visualization
Console.WriteLine("Generating workflow visualization...");
// Mermaid
Console.WriteLine("Mermaid string: \n=======");
var mermaid = workflow.ToMermaidString();
Console.WriteLine(mermaid);
Console.WriteLine("=======");
// DOT
Console.WriteLine("DiGraph string: *** Tip: To export DOT as an image, install Graphviz and pipe the DOT output to 'dot -Tsvg', 'dot -Tpng', etc. *** \n=======");
var dotString = workflow.ToDotString();
Console.WriteLine(dotString);
Console.WriteLine("=======");
}
}