// Copyright (c) Microsoft. All rights reserved.
using Microsoft.Extensions.Configuration;
using Shared.Workflows;
namespace Demo.Workflows.Declarative.ConfirmInput;
///
/// Demonstrate how to use the question action to request user input
/// and confirm it matches the original input.
///
///
/// See the README.md file in the parent folder (../README.md) for detailed
/// information about the configuration required to run this sample.
///
internal sealed class Program
{
public static async Task Main(string[] args)
{
// Initialize configuration
IConfiguration configuration = Application.InitializeConfig();
Uri foundryEndpoint = new(configuration.GetValue(Application.Settings.FoundryEndpoint));
// Get input from command line or console
string workflowInput = Application.GetInput(args);
// Create the workflow factory. This class demonstrates how to initialize a
// declarative workflow from a YAML file. Once the workflow is created, it
// can be executed just like any regular workflow.
WorkflowFactory workflowFactory = new("ConfirmInput.yaml", foundryEndpoint);
// Execute the workflow: The WorkflowRunner demonstrates how to execute
// a workflow, handle the workflow events, and providing external input.
// This also includes the ability to checkpoint workflow state and how to
// resume execution.
WorkflowRunner runner = new();
await runner.ExecuteAsync(workflowFactory.CreateWorkflow, workflowInput);
}
}