Private/ConvertTo-WorkflowMarkdown.ps1
|
function ConvertTo-WorkflowMarkdown { param( $WorkflowRecord ) $lines = [System.Collections.Generic.List[string]]::new() $lines.Add("## $($WorkflowRecord.DisplayName)") $lines.Add('') $lines.Add('| Property | Value |') $lines.Add('| --- | --- |') $lines.Add("| ID | $(Format-NullableValue -Value $WorkflowRecord.Id) |") $lines.Add("| Description | $(Format-NullableValue -Value $WorkflowRecord.Description) |") $lines.Add("| Category | $(Format-NullableValue -Value $WorkflowRecord.Category) |") $lines.Add("| Enabled | $(Format-NullableValue -Value $WorkflowRecord.IsEnabled) |") $lines.Add("| Scheduling enabled | $(Format-NullableValue -Value $WorkflowRecord.IsSchedulingEnabled) |") $lines.Add("| Created | $(Format-NullableValue -Value $WorkflowRecord.CreatedDateTime) |") $lines.Add("| Last modified | $(Format-NullableValue -Value $WorkflowRecord.LastModifiedDateTime) |") $lines.Add("| Trigger | $(Format-NullableValue -Value $WorkflowRecord.TriggerSummary) |") $lines.Add("| Scope | $(Format-NullableValue -Value $WorkflowRecord.ScopeSummary) |") $lines.Add('') $lines.Add('### Tasks') $lines.Add('') if ($WorkflowRecord.Tasks.Count -eq 0) { $lines.Add('No tasks found.') } else { foreach ($task in $WorkflowRecord.Tasks) { $status = if ($task.IsEnabled) { 'enabled' } else { 'disabled' } $lines.Add("- [$($task.ExecutionSequence)] $(Format-NullableValue -Value $task.DisplayName) ($status)") $lines.Add(" Definition: $(Format-NullableValue -Value $task.DefinitionDisplayName)") if ($task.CustomExtension) { $lines.Add(" Custom extension: $(Format-NullableValue -Value $task.CustomExtension.DisplayName)") $lines.Add(" Logic App: $(Format-NullableValue -Value $task.CustomExtension.LogicAppName)") $lines.Add(" Resource group: $(Format-NullableValue -Value $task.CustomExtension.ResourceGroupName)") $lines.Add(" Subscription: $(Format-NullableValue -Value $task.CustomExtension.SubscriptionId)") } foreach ($argument in $task.Arguments.GetEnumerator()) { if ($argument.Key -eq 'customTaskExtensionID') { continue } $lines.Add(" Argument: $($argument.Key) = $(Format-NullableValue -Value $argument.Value)") } $lines.Add('') } } $lines.Add('### Mermaid') $lines.Add('') $lines.Add('```mermaid') $lines.Add((ConvertTo-WorkflowMermaid -WorkflowRecord $WorkflowRecord)) $lines.Add('```') $lines.Add('') return ($lines -join [Environment]::NewLine) } |