PH.Modeler
0.0.1
dotnet add package PH.Modeler --version 0.0.1
NuGet\Install-Package PH.Modeler -Version 0.0.1
<PackageReference Include="PH.Modeler" Version="0.0.1" />
<PackageVersion Include="PH.Modeler" Version="0.0.1" />
<PackageReference Include="PH.Modeler" />
paket add PH.Modeler --version 0.0.1
#r "nuget: PH.Modeler, 0.0.1"
#:package PH.Modeler@0.0.1
#addin nuget:?package=PH.Modeler&version=0.0.1
#tool nuget:?package=PH.Modeler&version=0.0.1
PH.Modeler
PH.Modeler is a library designed to document flows and steps in your C# code. It uses attributes to define flows and steps, making it easier to generate documentation automatically.
Installation
To install the package, use the following command:
dotnet add package PH.Modeler
How It Works
PH.Modeler uses two main attributes:
- FlowAttribute: Used to define a flow in your application.
- StepAttribute: Used to define a step within a flow.
FlowAttribute
The FlowAttribute
is applied to classes or interfaces to define a flow. It includes properties like:
Name
: The name of the flow.Order
: The order of the flow.Description
: A description of the flow.PreviousFlowsNeeded
: An array of flows that must be completed before this flow.
StepAttribute
The StepAttribute
is applied to methods to define a step within a flow. It includes properties like:
Flow
: The name of the flow this step belongs to.Name
: The name of the step.Order
: The order of the step within the flow.Description
: A description of the step.
Examples
Example 1: Documenting a Flow and Steps in IAutService
The IAutService
interface defines a flow named "Auth Flow" with a step for logging in.
using PH.Modeler;
[Flow("Auth Flow")]
public interface IAutService
{
[Step("Auth Flow", "do login", 1, "perform a new login")]
Task<Response1> Login(Request1 request, CancellationToken token);
}
Example 2: Documenting a Flow and Steps in IDoSomeService
The IDoSomeService
interface defines a flow named "Do Something Flow" with multiple steps.
using PH.Modeler;
[Flow("Do Something Flow", 2, "This Description is used to describe the flow.", PreviousFlowsNeeded = new[] { "Auth Flow" })]
public interface IDoSomeService
{
[Step("Do Something Flow", "do something", 1, "perform something")]
Task<DoSomeResponse> DoSomething(DoSomeRequest request, CancellationToken token);
[Step("Do Something Flow", "Terminate flow", 3, "perform something else")]
Task<(Response2 R, Response2 Second)> DoSomethingElse(DoSomeElseRequest request, CancellationToken token);
}
Example 3: Documenting a Flow and Steps in AnotherService
The AnotherService
class defines a flow named "Do Something Flow Last" with a step for additional processing.
using PH.Modeler;
[Flow("Do Something Flow Last", PreviousFlowsNeeded = new[] { "Auth Flow", "Do Something Flow" })]
public class AnotherService : IAnotherService
{
[Step("Do Something Flow Last", "Second Task", 2, "This is a description")]
public Task<Response1> DoSomethingMore(Request1 request, CancellationToken token)
{
return Task.FromResult(new Response1 { SomeElse = "Done" });
}
}
Generating Documentation
To generate documentation in Markdown format, use the DocumentationBuilder
class:
using PH.Modeler;
var markdown = DocumentationBuilder.GetMarkdown(typeof(IAutService).Assembly);
Console.WriteLine(markdown);
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
0.0.1 | 147 | 6/23/2025 |
First release