diff --git a/DecisionTree.Tests/TestData/DecisionTreeTestData.cs b/DecisionTree.Tests/TestData/DecisionTreeTestData.cs
index 61cb4b5..1319339 100644
--- a/DecisionTree.Tests/TestData/DecisionTreeTestData.cs
+++ b/DecisionTree.Tests/TestData/DecisionTreeTestData.cs
@@ -84,7 +84,28 @@ public class DecisionTreeTestData
GraphTestData("TitleOnlyDefault", false, false, true ),
GraphTestData("TitleOnlyHorizontal", true, false, true ),
GraphTestData("TitleOnlyUniquePaths", false, true, true ),
- GraphTestData("TitleOnlyHorizontalUniquePaths", true, true, true )
+ GraphTestData("TitleOnlyHorizontalUniquePaths", true, true, true ),
+ GraphTestData("CustomColorsDefault",
+ graphStyle: new GraphStyle
+ {
+ DecisionColor = "white",
+ DecisionActionColor = "#FFFF00",
+ ResultColor = "#FF00FF",
+ ResultActionColor = "#00FFFF",
+ ActionColor = "black"
+ }),
+ GraphTestData("PartialCustomColorsDefault",
+ graphStyle: new GraphStyle
+ {
+ DecisionColor = "#FFFFFF",
+ ResultColor = "#FF00FF",
+ ActionColor = "#000000"
+ }),
+ GraphTestData("FontDefault",
+ graphStyle: new GraphStyle
+ {
+ FontColor = "red"
+ })
};
public static string ExpectedExceptionMessageWithPath =>
@@ -99,12 +120,18 @@ public class DecisionTreeTestData
$"^-- 'False FinishedDecision - SendNotificationAction'{Environment.NewLine}" +
"^-- 'FinishedDecision'";
- private static object[] GraphTestData(string title, bool isHorizontal = false, bool hasUniquePaths = false, bool titleOnly = false) =>
+ private static object[] GraphTestData(
+ string title,
+ bool isHorizontal = false,
+ bool hasUniquePaths = false,
+ bool titleOnly = false,
+ GraphStyle graphStyle = null) =>
new object[] { title, new GraphOptions
{
IsHorizontal = isHorizontal,
UseUniquePaths = hasUniquePaths,
- TitleOnly = titleOnly
+ TitleOnly = titleOnly,
+ GraphStyle = graphStyle
}
};
diff --git a/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.CustomColorsDefault.approved.html b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.CustomColorsDefault.approved.html
new file mode 100644
index 0000000..7b0c646
--- /dev/null
+++ b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.CustomColorsDefault.approved.html
@@ -0,0 +1,47 @@
+digraph G {
+"FinishedDecision" -> "FinishResult" [label = "True"]
+"FinishResult" [style = "filled" penwidth = 1 fillcolor = "#00FFFF" fontname = "Courier New" shape = "Mrecord" label = <
FinishResult |
|
dto => dto |
.SetResult("Project is finished.") |
>]
+"FinishedDecision" -> "False FinishedDecision - SendNotificationAction" [label = "False"]
+"False FinishedDecision - SendNotificationAction" -> "IsOnHoldDecision" [label = "False"]
+"IsOnHoldDecision" -> "DoNothingResult" [label = "True"]
+"DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#FF00FF" fontname = "Courier New" shape = "Mrecord" label = <>]
+"IsOnHoldDecision" -> "ProjectTypeDecision" [label = "False"]
+"ProjectTypeDecision" -> "Internal ProjectTypeDecision - SendNotificationAction" [label = "Internal"]
+"Internal ProjectTypeDecision - SendNotificationAction" -> "ResetProjectAction" [label = "Internal"]
+"ResetProjectAction" -> "DoNothingResult" [label = "Internal"]
+"ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "black" fontname = "Courier New" shape = "Mrecord" label = <ResetProjectAction |
|
dto => dto |
.SetItemsToDo(0) |
.SetBudgetRemaining(0) |
>]
+"Internal ProjectTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "black" fontname = "Courier New" shape = "Mrecord" label = <Internal ProjectTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"ProjectTypeDecision" -> "ProjectSubTypeDecision" [label = "#null_path"]
+"ProjectSubTypeDecision" -> "ToDoDecision" [label = "WordWide"]
+"ToDoDecision" -> "DeadlineDecision" [label = "True"]
+"DeadlineDecision" -> "True DeadlineDecision - SendNotificationAction" [label = "True"]
+"True DeadlineDecision - SendNotificationAction" -> "MoveDeadlineResult" [label = "True"]
+"MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#00FFFF" fontname = "Courier New" shape = "Mrecord" label = <MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
+"True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "black" fontname = "Courier New" shape = "Mrecord" label = <True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"DeadlineDecision" -> "BudgetDecision" [label = "False"]
+"BudgetDecision" -> "RequestBudgetResult" [label = "True"]
+"RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#00FFFF" fontname = "Courier New" shape = "Mrecord" label = <RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"BudgetDecision" -> "DoNothingResult" [label = "False"]
+"BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#FFFF00" fontname = "Courier New" shape = "Mrecord" label = <BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "white" fontname = "Courier New" shape = "Mrecord" label = <DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
+"ToDoDecision" -> "BudgetDecision" [label = "False"]
+"ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "white" fontname = "Courier New" shape = "Mrecord" label = <ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
+"ProjectSubTypeDecision" -> "ToDoDecision" [label = "Foreign"]
+"ProjectSubTypeDecision" -> "#null ProjectSubTypeDecision - SendNotificationAction" [label = "#null_path"]
+"#null ProjectSubTypeDecision - SendNotificationAction" -> "ResetProjectAction" [label = "#null_path"]
+"ResetProjectAction" -> "DoNothingResult" [label = "#null_path"]
+"#null ProjectSubTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "black" fontname = "Courier New" shape = "Mrecord" label = <#null ProjectSubTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"ProjectSubTypeDecision" -> "ProjectAreaDecision" [label = "#default_path"]
+"ProjectAreaDecision" -> "Hr ProjectAreaDecision - SendNotificationAction" [label = "Hr"]
+"Hr ProjectAreaDecision - SendNotificationAction" -> "ResetProjectAction" [label = "Hr"]
+"ResetProjectAction" -> "DoNothingResult" [label = "Hr"]
+"Hr ProjectAreaDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "black" fontname = "Courier New" shape = "Mrecord" label = <Hr ProjectAreaDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"ProjectAreaDecision" -> "ToDoDecision" [label = "#default_path"]
+"ProjectAreaDecision" [style = "filled" penwidth = 1 fillcolor = "white" fontname = "Courier New" shape = "Mrecord" label = <ProjectAreaDecision |
|
dto => dto.Project.Area |
>]
+"ProjectSubTypeDecision" [style = "filled" penwidth = 1 fillcolor = "white" fontname = "Courier New" shape = "Mrecord" label = <ProjectSubTypeDecision |
|
dto => dto.Project.SubType |
>]
+"ProjectTypeDecision" -> "ToDoDecision" [label = "#default_path"]
+"ProjectTypeDecision" [style = "filled" penwidth = 1 fillcolor = "white" fontname = "Courier New" shape = "Mrecord" label = <ProjectTypeDecision |
|
dto => dto.Project.Type |
>]
+"IsOnHoldDecision" [style = "filled" penwidth = 1 fillcolor = "white" fontname = "Courier New" shape = "Mrecord" label = <IsOnHoldDecision |
|
dto => dto.Project.IsOnHold |
>]
+"False FinishedDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "black" fontname = "Courier New" shape = "Mrecord" label = <False FinishedDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"FinishedDecision" [style = "filled" penwidth = 1 fillcolor = "white" fontname = "Courier New" shape = "Mrecord" label = <FinishedDecision |
|
dto => (dto.Project.ItemsToDo == 0) |
>]
+}
\ No newline at end of file
diff --git a/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.Default.approved.html b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.Default.approved.html
index a231db7..c935aee 100644
--- a/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.Default.approved.html
+++ b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.Default.approved.html
@@ -1,47 +1,47 @@
digraph G {
"FinishedDecision" -> "FinishResult" [label = "True"]
-"FinishResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <FinishResult |
|
dto => dto |
.SetResult("Project is finished.") |
>]
+"FinishResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <FinishResult |
|
dto => dto |
.SetResult("Project is finished.") |
>]
"FinishedDecision" -> "False FinishedDecision - SendNotificationAction" [label = "False"]
"False FinishedDecision - SendNotificationAction" -> "IsOnHoldDecision" [label = "False"]
"IsOnHoldDecision" -> "DoNothingResult" [label = "True"]
-"DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
"IsOnHoldDecision" -> "ProjectTypeDecision" [label = "False"]
"ProjectTypeDecision" -> "Internal ProjectTypeDecision - SendNotificationAction" [label = "Internal"]
"Internal ProjectTypeDecision - SendNotificationAction" -> "ResetProjectAction" [label = "Internal"]
"ResetProjectAction" -> "DoNothingResult" [label = "Internal"]
-"ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <ResetProjectAction |
|
dto => dto |
.SetItemsToDo(0) |
.SetBudgetRemaining(0) |
>]
-"Internal ProjectTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <Internal ProjectTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <ResetProjectAction |
|
dto => dto |
.SetItemsToDo(0) |
.SetBudgetRemaining(0) |
>]
+"Internal ProjectTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <Internal ProjectTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"ProjectTypeDecision" -> "ProjectSubTypeDecision" [label = "#null_path"]
"ProjectSubTypeDecision" -> "ToDoDecision" [label = "WordWide"]
"ToDoDecision" -> "DeadlineDecision" [label = "True"]
"DeadlineDecision" -> "True DeadlineDecision - SendNotificationAction" [label = "True"]
"True DeadlineDecision - SendNotificationAction" -> "MoveDeadlineResult" [label = "True"]
-"MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
-"True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
+"True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"DeadlineDecision" -> "BudgetDecision" [label = "False"]
"BudgetDecision" -> "RequestBudgetResult" [label = "True"]
-"RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
"BudgetDecision" -> "DoNothingResult" [label = "False"]
-"BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
-"DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
+"BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
"ToDoDecision" -> "BudgetDecision" [label = "False"]
-"ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
+"ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
"ProjectSubTypeDecision" -> "ToDoDecision" [label = "Foreign"]
"ProjectSubTypeDecision" -> "#null ProjectSubTypeDecision - SendNotificationAction" [label = "#null_path"]
"#null ProjectSubTypeDecision - SendNotificationAction" -> "ResetProjectAction" [label = "#null_path"]
"ResetProjectAction" -> "DoNothingResult" [label = "#null_path"]
-"#null ProjectSubTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <#null ProjectSubTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"#null ProjectSubTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <#null ProjectSubTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"ProjectSubTypeDecision" -> "ProjectAreaDecision" [label = "#default_path"]
"ProjectAreaDecision" -> "Hr ProjectAreaDecision - SendNotificationAction" [label = "Hr"]
"Hr ProjectAreaDecision - SendNotificationAction" -> "ResetProjectAction" [label = "Hr"]
"ResetProjectAction" -> "DoNothingResult" [label = "Hr"]
-"Hr ProjectAreaDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <Hr ProjectAreaDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"Hr ProjectAreaDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <Hr ProjectAreaDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"ProjectAreaDecision" -> "ToDoDecision" [label = "#default_path"]
-"ProjectAreaDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <ProjectAreaDecision |
|
dto => dto.Project.Area |
>]
-"ProjectSubTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <ProjectSubTypeDecision |
|
dto => dto.Project.SubType |
>]
+"ProjectAreaDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <ProjectAreaDecision |
|
dto => dto.Project.Area |
>]
+"ProjectSubTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <ProjectSubTypeDecision |
|
dto => dto.Project.SubType |
>]
"ProjectTypeDecision" -> "ToDoDecision" [label = "#default_path"]
-"ProjectTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <ProjectTypeDecision |
|
dto => dto.Project.Type |
>]
-"IsOnHoldDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <IsOnHoldDecision |
|
dto => dto.Project.IsOnHold |
>]
-"False FinishedDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <False FinishedDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
-"FinishedDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <FinishedDecision |
|
dto => (dto.Project.ItemsToDo == 0) |
>]
+"ProjectTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <ProjectTypeDecision |
|
dto => dto.Project.Type |
>]
+"IsOnHoldDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <IsOnHoldDecision |
|
dto => dto.Project.IsOnHold |
>]
+"False FinishedDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <False FinishedDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"FinishedDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <FinishedDecision |
|
dto => (dto.Project.ItemsToDo == 0) |
>]
}
\ No newline at end of file
diff --git a/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.FontDefault.approved.html b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.FontDefault.approved.html
new file mode 100644
index 0000000..7696712
--- /dev/null
+++ b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.FontDefault.approved.html
@@ -0,0 +1,47 @@
+digraph G {
+"FinishedDecision" -> "FinishResult" [label = "True"]
+"FinishResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <FinishResult |
|
dto => dto |
.SetResult("Project is finished.") |
>]
+"FinishedDecision" -> "False FinishedDecision - SendNotificationAction" [label = "False"]
+"False FinishedDecision - SendNotificationAction" -> "IsOnHoldDecision" [label = "False"]
+"IsOnHoldDecision" -> "DoNothingResult" [label = "True"]
+"DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"IsOnHoldDecision" -> "ProjectTypeDecision" [label = "False"]
+"ProjectTypeDecision" -> "Internal ProjectTypeDecision - SendNotificationAction" [label = "Internal"]
+"Internal ProjectTypeDecision - SendNotificationAction" -> "ResetProjectAction" [label = "Internal"]
+"ResetProjectAction" -> "DoNothingResult" [label = "Internal"]
+"ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <ResetProjectAction |
|
dto => dto |
.SetItemsToDo(0) |
.SetBudgetRemaining(0) |
>]
+"Internal ProjectTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <Internal ProjectTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"ProjectTypeDecision" -> "ProjectSubTypeDecision" [label = "#null_path"]
+"ProjectSubTypeDecision" -> "ToDoDecision" [label = "WordWide"]
+"ToDoDecision" -> "DeadlineDecision" [label = "True"]
+"DeadlineDecision" -> "True DeadlineDecision - SendNotificationAction" [label = "True"]
+"True DeadlineDecision - SendNotificationAction" -> "MoveDeadlineResult" [label = "True"]
+"MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
+"True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"DeadlineDecision" -> "BudgetDecision" [label = "False"]
+"BudgetDecision" -> "RequestBudgetResult" [label = "True"]
+"RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"BudgetDecision" -> "DoNothingResult" [label = "False"]
+"BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
+"ToDoDecision" -> "BudgetDecision" [label = "False"]
+"ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
+"ProjectSubTypeDecision" -> "ToDoDecision" [label = "Foreign"]
+"ProjectSubTypeDecision" -> "#null ProjectSubTypeDecision - SendNotificationAction" [label = "#null_path"]
+"#null ProjectSubTypeDecision - SendNotificationAction" -> "ResetProjectAction" [label = "#null_path"]
+"ResetProjectAction" -> "DoNothingResult" [label = "#null_path"]
+"#null ProjectSubTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <#null ProjectSubTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"ProjectSubTypeDecision" -> "ProjectAreaDecision" [label = "#default_path"]
+"ProjectAreaDecision" -> "Hr ProjectAreaDecision - SendNotificationAction" [label = "Hr"]
+"Hr ProjectAreaDecision - SendNotificationAction" -> "ResetProjectAction" [label = "Hr"]
+"ResetProjectAction" -> "DoNothingResult" [label = "Hr"]
+"Hr ProjectAreaDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <Hr ProjectAreaDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"ProjectAreaDecision" -> "ToDoDecision" [label = "#default_path"]
+"ProjectAreaDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <ProjectAreaDecision |
|
dto => dto.Project.Area |
>]
+"ProjectSubTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <ProjectSubTypeDecision |
|
dto => dto.Project.SubType |
>]
+"ProjectTypeDecision" -> "ToDoDecision" [label = "#default_path"]
+"ProjectTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <ProjectTypeDecision |
|
dto => dto.Project.Type |
>]
+"IsOnHoldDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <IsOnHoldDecision |
|
dto => dto.Project.IsOnHold |
>]
+"False FinishedDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <False FinishedDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"FinishedDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <FinishedDecision |
|
dto => (dto.Project.ItemsToDo == 0) |
>]
+}
\ No newline at end of file
diff --git a/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.Horizontal.approved.html b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.Horizontal.approved.html
index f70b7a7..4f565f6 100644
--- a/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.Horizontal.approved.html
+++ b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.Horizontal.approved.html
@@ -1,48 +1,48 @@
digraph G {
rankdir = LR;
"FinishedDecision" -> "FinishResult" [label = "True"]
-"FinishResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <FinishResult |
|
dto => dto |
.SetResult("Project is finished.") |
>]
+"FinishResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <FinishResult |
|
dto => dto |
.SetResult("Project is finished.") |
>]
"FinishedDecision" -> "False FinishedDecision - SendNotificationAction" [label = "False"]
"False FinishedDecision - SendNotificationAction" -> "IsOnHoldDecision" [label = "False"]
"IsOnHoldDecision" -> "DoNothingResult" [label = "True"]
-"DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
"IsOnHoldDecision" -> "ProjectTypeDecision" [label = "False"]
"ProjectTypeDecision" -> "Internal ProjectTypeDecision - SendNotificationAction" [label = "Internal"]
"Internal ProjectTypeDecision - SendNotificationAction" -> "ResetProjectAction" [label = "Internal"]
"ResetProjectAction" -> "DoNothingResult" [label = "Internal"]
-"ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <ResetProjectAction |
|
dto => dto |
.SetItemsToDo(0) |
.SetBudgetRemaining(0) |
>]
-"Internal ProjectTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <Internal ProjectTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <ResetProjectAction |
|
dto => dto |
.SetItemsToDo(0) |
.SetBudgetRemaining(0) |
>]
+"Internal ProjectTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <Internal ProjectTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"ProjectTypeDecision" -> "ProjectSubTypeDecision" [label = "#null_path"]
"ProjectSubTypeDecision" -> "ToDoDecision" [label = "WordWide"]
"ToDoDecision" -> "DeadlineDecision" [label = "True"]
"DeadlineDecision" -> "True DeadlineDecision - SendNotificationAction" [label = "True"]
"True DeadlineDecision - SendNotificationAction" -> "MoveDeadlineResult" [label = "True"]
-"MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
-"True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
+"True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"DeadlineDecision" -> "BudgetDecision" [label = "False"]
"BudgetDecision" -> "RequestBudgetResult" [label = "True"]
-"RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
"BudgetDecision" -> "DoNothingResult" [label = "False"]
-"BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
-"DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
+"BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
"ToDoDecision" -> "BudgetDecision" [label = "False"]
-"ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
+"ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
"ProjectSubTypeDecision" -> "ToDoDecision" [label = "Foreign"]
"ProjectSubTypeDecision" -> "#null ProjectSubTypeDecision - SendNotificationAction" [label = "#null_path"]
"#null ProjectSubTypeDecision - SendNotificationAction" -> "ResetProjectAction" [label = "#null_path"]
"ResetProjectAction" -> "DoNothingResult" [label = "#null_path"]
-"#null ProjectSubTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <#null ProjectSubTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"#null ProjectSubTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <#null ProjectSubTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"ProjectSubTypeDecision" -> "ProjectAreaDecision" [label = "#default_path"]
"ProjectAreaDecision" -> "Hr ProjectAreaDecision - SendNotificationAction" [label = "Hr"]
"Hr ProjectAreaDecision - SendNotificationAction" -> "ResetProjectAction" [label = "Hr"]
"ResetProjectAction" -> "DoNothingResult" [label = "Hr"]
-"Hr ProjectAreaDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <Hr ProjectAreaDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"Hr ProjectAreaDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <Hr ProjectAreaDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"ProjectAreaDecision" -> "ToDoDecision" [label = "#default_path"]
-"ProjectAreaDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <ProjectAreaDecision |
|
dto => dto.Project.Area |
>]
-"ProjectSubTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <ProjectSubTypeDecision |
|
dto => dto.Project.SubType |
>]
+"ProjectAreaDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <ProjectAreaDecision |
|
dto => dto.Project.Area |
>]
+"ProjectSubTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <ProjectSubTypeDecision |
|
dto => dto.Project.SubType |
>]
"ProjectTypeDecision" -> "ToDoDecision" [label = "#default_path"]
-"ProjectTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <ProjectTypeDecision |
|
dto => dto.Project.Type |
>]
-"IsOnHoldDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <IsOnHoldDecision |
|
dto => dto.Project.IsOnHold |
>]
-"False FinishedDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <False FinishedDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
-"FinishedDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <FinishedDecision |
|
dto => (dto.Project.ItemsToDo == 0) |
>]
+"ProjectTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <ProjectTypeDecision |
|
dto => dto.Project.Type |
>]
+"IsOnHoldDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <IsOnHoldDecision |
|
dto => dto.Project.IsOnHold |
>]
+"False FinishedDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <False FinishedDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"FinishedDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <FinishedDecision |
|
dto => (dto.Project.ItemsToDo == 0) |
>]
}
\ No newline at end of file
diff --git a/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.HorizontalUniquePaths.approved.html b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.HorizontalUniquePaths.approved.html
index 7706550..ea34ddd 100644
--- a/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.HorizontalUniquePaths.approved.html
+++ b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.HorizontalUniquePaths.approved.html
@@ -1,116 +1,116 @@
digraph G {
rankdir = LR;
"[1] FinishedDecision" -> "[2] FinishResult" [label = "True"]
-"[2] FinishResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[2] FinishResult |
|
dto => dto |
.SetResult("Project is finished.") |
>]
+"[2] FinishResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[2] FinishResult |
|
dto => dto |
.SetResult("Project is finished.") |
>]
"[1] FinishedDecision" -> "[3] False FinishedDecision - SendNotificationAction" [label = "False"]
"[3] False FinishedDecision - SendNotificationAction" -> "[4] IsOnHoldDecision" [label = "False"]
"[4] IsOnHoldDecision" -> "[5] DoNothingResult" [label = "True"]
-"[5] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[5] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
"[4] IsOnHoldDecision" -> "[6] ProjectTypeDecision" [label = "False"]
"[6] ProjectTypeDecision" -> "[7] Internal ProjectTypeDecision - SendNotificationAction" [label = "Internal"]
"[7] Internal ProjectTypeDecision - SendNotificationAction" -> "[8] ResetProjectAction" [label = "Internal"]
"[8] ResetProjectAction" -> "[9] DoNothingResult" [label = "Internal"]
-"[9] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[8] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[8] ResetProjectAction |
|
dto => dto |
.SetItemsToDo(0) |
.SetBudgetRemaining(0) |
>]
-"[7] Internal ProjectTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[7] Internal ProjectTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"[9] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[8] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[8] ResetProjectAction |
|
dto => dto |
.SetItemsToDo(0) |
.SetBudgetRemaining(0) |
>]
+"[7] Internal ProjectTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[7] Internal ProjectTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"[6] ProjectTypeDecision" -> "[10] ProjectSubTypeDecision" [label = "#null_path"]
"[10] ProjectSubTypeDecision" -> "[11] ToDoDecision" [label = "WordWide"]
"[11] ToDoDecision" -> "[12] DeadlineDecision" [label = "True"]
"[12] DeadlineDecision" -> "[13] True DeadlineDecision - SendNotificationAction" [label = "True"]
"[13] True DeadlineDecision - SendNotificationAction" -> "[14] MoveDeadlineResult" [label = "True"]
-"[14] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[14] MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
-"[13] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[13] True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"[14] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[14] MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
+"[13] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[13] True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"[12] DeadlineDecision" -> "[15] BudgetDecision" [label = "False"]
"[15] BudgetDecision" -> "[16] RequestBudgetResult" [label = "True"]
-"[16] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[16] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"[16] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[16] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
"[15] BudgetDecision" -> "[17] DoNothingResult" [label = "False"]
-"[17] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[15] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[15] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
-"[12] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[12] DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
+"[17] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[15] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[15] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"[12] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[12] DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
"[11] ToDoDecision" -> "[18] BudgetDecision" [label = "False"]
"[18] BudgetDecision" -> "[19] RequestBudgetResult" [label = "True"]
-"[19] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[19] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"[19] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[19] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
"[18] BudgetDecision" -> "[20] DoNothingResult" [label = "False"]
-"[20] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[18] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[18] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
-"[11] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[11] ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
+"[20] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[18] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[18] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"[11] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[11] ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
"[10] ProjectSubTypeDecision" -> "[21] ToDoDecision" [label = "Foreign"]
"[21] ToDoDecision" -> "[22] DeadlineDecision" [label = "True"]
"[22] DeadlineDecision" -> "[23] True DeadlineDecision - SendNotificationAction" [label = "True"]
"[23] True DeadlineDecision - SendNotificationAction" -> "[24] MoveDeadlineResult" [label = "True"]
-"[24] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[24] MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
-"[23] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[23] True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"[24] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[24] MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
+"[23] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[23] True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"[22] DeadlineDecision" -> "[25] BudgetDecision" [label = "False"]
"[25] BudgetDecision" -> "[26] RequestBudgetResult" [label = "True"]
-"[26] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[26] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"[26] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[26] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
"[25] BudgetDecision" -> "[27] DoNothingResult" [label = "False"]
-"[27] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[25] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[25] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
-"[22] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[22] DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
+"[27] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[25] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[25] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"[22] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[22] DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
"[21] ToDoDecision" -> "[28] BudgetDecision" [label = "False"]
"[28] BudgetDecision" -> "[29] RequestBudgetResult" [label = "True"]
-"[29] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[29] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"[29] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[29] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
"[28] BudgetDecision" -> "[30] DoNothingResult" [label = "False"]
-"[30] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[28] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[28] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
-"[21] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[21] ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
+"[30] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[28] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[28] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"[21] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[21] ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
"[10] ProjectSubTypeDecision" -> "[31] #null ProjectSubTypeDecision - SendNotificationAction" [label = "#null_path"]
"[31] #null ProjectSubTypeDecision - SendNotificationAction" -> "[32] ResetProjectAction" [label = "#null_path"]
"[32] ResetProjectAction" -> "[33] DoNothingResult" [label = "#null_path"]
-"[33] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[32] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[32] ResetProjectAction |
|
dto => dto |
.SetItemsToDo(0) |
.SetBudgetRemaining(0) |
>]
-"[31] #null ProjectSubTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[31] #null ProjectSubTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"[33] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[32] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[32] ResetProjectAction |
|
dto => dto |
.SetItemsToDo(0) |
.SetBudgetRemaining(0) |
>]
+"[31] #null ProjectSubTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[31] #null ProjectSubTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"[10] ProjectSubTypeDecision" -> "[34] ProjectAreaDecision" [label = "#default_path"]
"[34] ProjectAreaDecision" -> "[35] Hr ProjectAreaDecision - SendNotificationAction" [label = "Hr"]
"[35] Hr ProjectAreaDecision - SendNotificationAction" -> "[36] ResetProjectAction" [label = "Hr"]
"[36] ResetProjectAction" -> "[37] DoNothingResult" [label = "Hr"]
-"[37] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[36] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[36] ResetProjectAction |
|
dto => dto |
.SetItemsToDo(0) |
.SetBudgetRemaining(0) |
>]
-"[35] Hr ProjectAreaDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[35] Hr ProjectAreaDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"[37] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[36] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[36] ResetProjectAction |
|
dto => dto |
.SetItemsToDo(0) |
.SetBudgetRemaining(0) |
>]
+"[35] Hr ProjectAreaDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[35] Hr ProjectAreaDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"[34] ProjectAreaDecision" -> "[38] ToDoDecision" [label = "#default_path"]
"[38] ToDoDecision" -> "[39] DeadlineDecision" [label = "True"]
"[39] DeadlineDecision" -> "[40] True DeadlineDecision - SendNotificationAction" [label = "True"]
"[40] True DeadlineDecision - SendNotificationAction" -> "[41] MoveDeadlineResult" [label = "True"]
-"[41] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[41] MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
-"[40] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[40] True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"[41] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[41] MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
+"[40] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[40] True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"[39] DeadlineDecision" -> "[42] BudgetDecision" [label = "False"]
"[42] BudgetDecision" -> "[43] RequestBudgetResult" [label = "True"]
-"[43] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[43] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"[43] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[43] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
"[42] BudgetDecision" -> "[44] DoNothingResult" [label = "False"]
-"[44] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[42] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[42] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
-"[39] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[39] DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
+"[44] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[42] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[42] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"[39] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[39] DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
"[38] ToDoDecision" -> "[45] BudgetDecision" [label = "False"]
"[45] BudgetDecision" -> "[46] RequestBudgetResult" [label = "True"]
-"[46] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[46] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"[46] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[46] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
"[45] BudgetDecision" -> "[47] DoNothingResult" [label = "False"]
-"[47] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[45] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[45] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
-"[38] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[38] ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
-"[34] ProjectAreaDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[34] ProjectAreaDecision |
|
dto => dto.Project.Area |
>]
-"[10] ProjectSubTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[10] ProjectSubTypeDecision |
|
dto => dto.Project.SubType |
>]
+"[47] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[45] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[45] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"[38] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[38] ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
+"[34] ProjectAreaDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[34] ProjectAreaDecision |
|
dto => dto.Project.Area |
>]
+"[10] ProjectSubTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[10] ProjectSubTypeDecision |
|
dto => dto.Project.SubType |
>]
"[6] ProjectTypeDecision" -> "[48] ToDoDecision" [label = "#default_path"]
"[48] ToDoDecision" -> "[49] DeadlineDecision" [label = "True"]
"[49] DeadlineDecision" -> "[50] True DeadlineDecision - SendNotificationAction" [label = "True"]
"[50] True DeadlineDecision - SendNotificationAction" -> "[51] MoveDeadlineResult" [label = "True"]
-"[51] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[51] MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
-"[50] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[50] True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"[51] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[51] MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
+"[50] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[50] True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"[49] DeadlineDecision" -> "[52] BudgetDecision" [label = "False"]
"[52] BudgetDecision" -> "[53] RequestBudgetResult" [label = "True"]
-"[53] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[53] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"[53] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[53] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
"[52] BudgetDecision" -> "[54] DoNothingResult" [label = "False"]
-"[54] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[52] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[52] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
-"[49] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[49] DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
+"[54] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[52] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[52] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"[49] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[49] DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
"[48] ToDoDecision" -> "[55] BudgetDecision" [label = "False"]
"[55] BudgetDecision" -> "[56] RequestBudgetResult" [label = "True"]
-"[56] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[56] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"[56] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[56] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
"[55] BudgetDecision" -> "[57] DoNothingResult" [label = "False"]
-"[57] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[55] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[55] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
-"[48] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[48] ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
-"[6] ProjectTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[6] ProjectTypeDecision |
|
dto => dto.Project.Type |
>]
-"[4] IsOnHoldDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[4] IsOnHoldDecision |
|
dto => dto.Project.IsOnHold |
>]
-"[3] False FinishedDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[3] False FinishedDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
-"[1] FinishedDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[1] FinishedDecision |
|
dto => (dto.Project.ItemsToDo == 0) |
>]
+"[57] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[55] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[55] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"[48] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[48] ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
+"[6] ProjectTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[6] ProjectTypeDecision |
|
dto => dto.Project.Type |
>]
+"[4] IsOnHoldDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[4] IsOnHoldDecision |
|
dto => dto.Project.IsOnHold |
>]
+"[3] False FinishedDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[3] False FinishedDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"[1] FinishedDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[1] FinishedDecision |
|
dto => (dto.Project.ItemsToDo == 0) |
>]
}
\ No newline at end of file
diff --git a/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.PartialCustomColorsDefault.approved.html b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.PartialCustomColorsDefault.approved.html
new file mode 100644
index 0000000..e7a3d75
--- /dev/null
+++ b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.PartialCustomColorsDefault.approved.html
@@ -0,0 +1,47 @@
+digraph G {
+"FinishedDecision" -> "FinishResult" [label = "True"]
+"FinishResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <FinishResult |
|
dto => dto |
.SetResult("Project is finished.") |
>]
+"FinishedDecision" -> "False FinishedDecision - SendNotificationAction" [label = "False"]
+"False FinishedDecision - SendNotificationAction" -> "IsOnHoldDecision" [label = "False"]
+"IsOnHoldDecision" -> "DoNothingResult" [label = "True"]
+"DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#FF00FF" fontname = "Courier New" shape = "Mrecord" label = <>]
+"IsOnHoldDecision" -> "ProjectTypeDecision" [label = "False"]
+"ProjectTypeDecision" -> "Internal ProjectTypeDecision - SendNotificationAction" [label = "Internal"]
+"Internal ProjectTypeDecision - SendNotificationAction" -> "ResetProjectAction" [label = "Internal"]
+"ResetProjectAction" -> "DoNothingResult" [label = "Internal"]
+"ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#000000" fontname = "Courier New" shape = "Mrecord" label = <ResetProjectAction |
|
dto => dto |
.SetItemsToDo(0) |
.SetBudgetRemaining(0) |
>]
+"Internal ProjectTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#000000" fontname = "Courier New" shape = "Mrecord" label = <Internal ProjectTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"ProjectTypeDecision" -> "ProjectSubTypeDecision" [label = "#null_path"]
+"ProjectSubTypeDecision" -> "ToDoDecision" [label = "WordWide"]
+"ToDoDecision" -> "DeadlineDecision" [label = "True"]
+"DeadlineDecision" -> "True DeadlineDecision - SendNotificationAction" [label = "True"]
+"True DeadlineDecision - SendNotificationAction" -> "MoveDeadlineResult" [label = "True"]
+"MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
+"True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#000000" fontname = "Courier New" shape = "Mrecord" label = <True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"DeadlineDecision" -> "BudgetDecision" [label = "False"]
+"BudgetDecision" -> "RequestBudgetResult" [label = "True"]
+"RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"BudgetDecision" -> "DoNothingResult" [label = "False"]
+"BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#FFFFFF" fontname = "Courier New" shape = "Mrecord" label = <DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
+"ToDoDecision" -> "BudgetDecision" [label = "False"]
+"ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#FFFFFF" fontname = "Courier New" shape = "Mrecord" label = <ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
+"ProjectSubTypeDecision" -> "ToDoDecision" [label = "Foreign"]
+"ProjectSubTypeDecision" -> "#null ProjectSubTypeDecision - SendNotificationAction" [label = "#null_path"]
+"#null ProjectSubTypeDecision - SendNotificationAction" -> "ResetProjectAction" [label = "#null_path"]
+"ResetProjectAction" -> "DoNothingResult" [label = "#null_path"]
+"#null ProjectSubTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#000000" fontname = "Courier New" shape = "Mrecord" label = <#null ProjectSubTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"ProjectSubTypeDecision" -> "ProjectAreaDecision" [label = "#default_path"]
+"ProjectAreaDecision" -> "Hr ProjectAreaDecision - SendNotificationAction" [label = "Hr"]
+"Hr ProjectAreaDecision - SendNotificationAction" -> "ResetProjectAction" [label = "Hr"]
+"ResetProjectAction" -> "DoNothingResult" [label = "Hr"]
+"Hr ProjectAreaDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#000000" fontname = "Courier New" shape = "Mrecord" label = <Hr ProjectAreaDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"ProjectAreaDecision" -> "ToDoDecision" [label = "#default_path"]
+"ProjectAreaDecision" [style = "filled" penwidth = 1 fillcolor = "#FFFFFF" fontname = "Courier New" shape = "Mrecord" label = <ProjectAreaDecision |
|
dto => dto.Project.Area |
>]
+"ProjectSubTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#FFFFFF" fontname = "Courier New" shape = "Mrecord" label = <ProjectSubTypeDecision |
|
dto => dto.Project.SubType |
>]
+"ProjectTypeDecision" -> "ToDoDecision" [label = "#default_path"]
+"ProjectTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#FFFFFF" fontname = "Courier New" shape = "Mrecord" label = <ProjectTypeDecision |
|
dto => dto.Project.Type |
>]
+"IsOnHoldDecision" [style = "filled" penwidth = 1 fillcolor = "#FFFFFF" fontname = "Courier New" shape = "Mrecord" label = <IsOnHoldDecision |
|
dto => dto.Project.IsOnHold |
>]
+"False FinishedDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#000000" fontname = "Courier New" shape = "Mrecord" label = <False FinishedDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"FinishedDecision" [style = "filled" penwidth = 1 fillcolor = "#FFFFFF" fontname = "Courier New" shape = "Mrecord" label = <FinishedDecision |
|
dto => (dto.Project.ItemsToDo == 0) |
>]
+}
\ No newline at end of file
diff --git a/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.TitleOnlyDefault.approved.html b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.TitleOnlyDefault.approved.html
index 6be2144..d9d234c 100644
--- a/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.TitleOnlyDefault.approved.html
+++ b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.TitleOnlyDefault.approved.html
@@ -1,47 +1,47 @@
-digraph G {
+digraph G {
"FinishedDecision" -> "FinishResult" [label = "True"]
-"FinishResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"FinishResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"FinishedDecision" -> "False FinishedDecision - SendNotificationAction" [label = "False"]
"False FinishedDecision - SendNotificationAction" -> "IsOnHoldDecision" [label = "False"]
"IsOnHoldDecision" -> "DoNothingResult" [label = "True"]
-"DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
"IsOnHoldDecision" -> "ProjectTypeDecision" [label = "False"]
"ProjectTypeDecision" -> "Internal ProjectTypeDecision - SendNotificationAction" [label = "Internal"]
"Internal ProjectTypeDecision - SendNotificationAction" -> "ResetProjectAction" [label = "Internal"]
"ResetProjectAction" -> "DoNothingResult" [label = "Internal"]
-"ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <>]
-"Internal ProjectTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <Internal ProjectTypeDecision - SendNotificationAction |
>]
+"ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <>]
+"Internal ProjectTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <Internal ProjectTypeDecision - SendNotificationAction |
>]
"ProjectTypeDecision" -> "ProjectSubTypeDecision" [label = "#null_path"]
"ProjectSubTypeDecision" -> "ToDoDecision" [label = "WordWide"]
"ToDoDecision" -> "DeadlineDecision" [label = "True"]
"DeadlineDecision" -> "True DeadlineDecision - SendNotificationAction" [label = "True"]
"True DeadlineDecision - SendNotificationAction" -> "MoveDeadlineResult" [label = "True"]
-"MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
-"True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <True DeadlineDecision - SendNotificationAction |
>]
+"MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <True DeadlineDecision - SendNotificationAction |
>]
"DeadlineDecision" -> "BudgetDecision" [label = "False"]
"BudgetDecision" -> "RequestBudgetResult" [label = "True"]
-"RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"BudgetDecision" -> "DoNothingResult" [label = "False"]
-"BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
-"DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
+"DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
"ToDoDecision" -> "BudgetDecision" [label = "False"]
-"ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
"ProjectSubTypeDecision" -> "ToDoDecision" [label = "Foreign"]
"ProjectSubTypeDecision" -> "#null ProjectSubTypeDecision - SendNotificationAction" [label = "#null_path"]
"#null ProjectSubTypeDecision - SendNotificationAction" -> "ResetProjectAction" [label = "#null_path"]
"ResetProjectAction" -> "DoNothingResult" [label = "#null_path"]
-"#null ProjectSubTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <#null ProjectSubTypeDecision - SendNotificationAction |
>]
+"#null ProjectSubTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <#null ProjectSubTypeDecision - SendNotificationAction |
>]
"ProjectSubTypeDecision" -> "ProjectAreaDecision" [label = "#default_path"]
"ProjectAreaDecision" -> "Hr ProjectAreaDecision - SendNotificationAction" [label = "Hr"]
"Hr ProjectAreaDecision - SendNotificationAction" -> "ResetProjectAction" [label = "Hr"]
"ResetProjectAction" -> "DoNothingResult" [label = "Hr"]
-"Hr ProjectAreaDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <Hr ProjectAreaDecision - SendNotificationAction |
>]
+"Hr ProjectAreaDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <Hr ProjectAreaDecision - SendNotificationAction |
>]
"ProjectAreaDecision" -> "ToDoDecision" [label = "#default_path"]
-"ProjectAreaDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
-"ProjectSubTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"ProjectAreaDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"ProjectSubTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
"ProjectTypeDecision" -> "ToDoDecision" [label = "#default_path"]
-"ProjectTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
-"IsOnHoldDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
-"False FinishedDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <False FinishedDecision - SendNotificationAction |
>]
-"FinishedDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"ProjectTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"IsOnHoldDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"False FinishedDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <False FinishedDecision - SendNotificationAction |
>]
+"FinishedDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
}
\ No newline at end of file
diff --git a/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.TitleOnlyHorizontal.approved.html b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.TitleOnlyHorizontal.approved.html
index 5643011..c29d88a 100644
--- a/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.TitleOnlyHorizontal.approved.html
+++ b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.TitleOnlyHorizontal.approved.html
@@ -1,48 +1,48 @@
-digraph G {
+digraph G {
rankdir = LR;
"FinishedDecision" -> "FinishResult" [label = "True"]
-"FinishResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"FinishResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"FinishedDecision" -> "False FinishedDecision - SendNotificationAction" [label = "False"]
"False FinishedDecision - SendNotificationAction" -> "IsOnHoldDecision" [label = "False"]
"IsOnHoldDecision" -> "DoNothingResult" [label = "True"]
-"DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
"IsOnHoldDecision" -> "ProjectTypeDecision" [label = "False"]
"ProjectTypeDecision" -> "Internal ProjectTypeDecision - SendNotificationAction" [label = "Internal"]
"Internal ProjectTypeDecision - SendNotificationAction" -> "ResetProjectAction" [label = "Internal"]
"ResetProjectAction" -> "DoNothingResult" [label = "Internal"]
-"ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <>]
-"Internal ProjectTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <Internal ProjectTypeDecision - SendNotificationAction |
>]
+"ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <>]
+"Internal ProjectTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <Internal ProjectTypeDecision - SendNotificationAction |
>]
"ProjectTypeDecision" -> "ProjectSubTypeDecision" [label = "#null_path"]
"ProjectSubTypeDecision" -> "ToDoDecision" [label = "WordWide"]
"ToDoDecision" -> "DeadlineDecision" [label = "True"]
"DeadlineDecision" -> "True DeadlineDecision - SendNotificationAction" [label = "True"]
"True DeadlineDecision - SendNotificationAction" -> "MoveDeadlineResult" [label = "True"]
-"MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
-"True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <True DeadlineDecision - SendNotificationAction |
>]
+"MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <True DeadlineDecision - SendNotificationAction |
>]
"DeadlineDecision" -> "BudgetDecision" [label = "False"]
"BudgetDecision" -> "RequestBudgetResult" [label = "True"]
-"RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"BudgetDecision" -> "DoNothingResult" [label = "False"]
-"BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
-"DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
+"DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
"ToDoDecision" -> "BudgetDecision" [label = "False"]
-"ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
"ProjectSubTypeDecision" -> "ToDoDecision" [label = "Foreign"]
"ProjectSubTypeDecision" -> "#null ProjectSubTypeDecision - SendNotificationAction" [label = "#null_path"]
"#null ProjectSubTypeDecision - SendNotificationAction" -> "ResetProjectAction" [label = "#null_path"]
"ResetProjectAction" -> "DoNothingResult" [label = "#null_path"]
-"#null ProjectSubTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <#null ProjectSubTypeDecision - SendNotificationAction |
>]
+"#null ProjectSubTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <#null ProjectSubTypeDecision - SendNotificationAction |
>]
"ProjectSubTypeDecision" -> "ProjectAreaDecision" [label = "#default_path"]
"ProjectAreaDecision" -> "Hr ProjectAreaDecision - SendNotificationAction" [label = "Hr"]
"Hr ProjectAreaDecision - SendNotificationAction" -> "ResetProjectAction" [label = "Hr"]
"ResetProjectAction" -> "DoNothingResult" [label = "Hr"]
-"Hr ProjectAreaDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <Hr ProjectAreaDecision - SendNotificationAction |
>]
+"Hr ProjectAreaDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <Hr ProjectAreaDecision - SendNotificationAction |
>]
"ProjectAreaDecision" -> "ToDoDecision" [label = "#default_path"]
-"ProjectAreaDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
-"ProjectSubTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"ProjectAreaDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"ProjectSubTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
"ProjectTypeDecision" -> "ToDoDecision" [label = "#default_path"]
-"ProjectTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
-"IsOnHoldDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
-"False FinishedDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <False FinishedDecision - SendNotificationAction |
>]
-"FinishedDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"ProjectTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"IsOnHoldDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"False FinishedDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <False FinishedDecision - SendNotificationAction |
>]
+"FinishedDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
}
\ No newline at end of file
diff --git a/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.TitleOnlyHorizontalUniquePaths.approved.html b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.TitleOnlyHorizontalUniquePaths.approved.html
index 748bbad..d4e5309 100644
--- a/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.TitleOnlyHorizontalUniquePaths.approved.html
+++ b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.TitleOnlyHorizontalUniquePaths.approved.html
@@ -1,116 +1,116 @@
-digraph G {
+digraph G {
rankdir = LR;
"[1] FinishedDecision" -> "[2] FinishResult" [label = "True"]
-"[2] FinishResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[2] FinishResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"[1] FinishedDecision" -> "[3] False FinishedDecision - SendNotificationAction" [label = "False"]
"[3] False FinishedDecision - SendNotificationAction" -> "[4] IsOnHoldDecision" [label = "False"]
"[4] IsOnHoldDecision" -> "[5] DoNothingResult" [label = "True"]
-"[5] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[5] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
"[4] IsOnHoldDecision" -> "[6] ProjectTypeDecision" [label = "False"]
"[6] ProjectTypeDecision" -> "[7] Internal ProjectTypeDecision - SendNotificationAction" [label = "Internal"]
"[7] Internal ProjectTypeDecision - SendNotificationAction" -> "[8] ResetProjectAction" [label = "Internal"]
"[8] ResetProjectAction" -> "[9] DoNothingResult" [label = "Internal"]
-"[9] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[8] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[7] Internal ProjectTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[7] Internal ProjectTypeDecision - SendNotificationAction |
>]
+"[9] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[8] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[7] Internal ProjectTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[7] Internal ProjectTypeDecision - SendNotificationAction |
>]
"[6] ProjectTypeDecision" -> "[10] ProjectSubTypeDecision" [label = "#null_path"]
"[10] ProjectSubTypeDecision" -> "[11] ToDoDecision" [label = "WordWide"]
"[11] ToDoDecision" -> "[12] DeadlineDecision" [label = "True"]
"[12] DeadlineDecision" -> "[13] True DeadlineDecision - SendNotificationAction" [label = "True"]
"[13] True DeadlineDecision - SendNotificationAction" -> "[14] MoveDeadlineResult" [label = "True"]
-"[14] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[13] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[13] True DeadlineDecision - SendNotificationAction |
>]
+"[14] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[13] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[13] True DeadlineDecision - SendNotificationAction |
>]
"[12] DeadlineDecision" -> "[15] BudgetDecision" [label = "False"]
"[15] BudgetDecision" -> "[16] RequestBudgetResult" [label = "True"]
-"[16] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[16] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"[15] BudgetDecision" -> "[17] DoNothingResult" [label = "False"]
-"[17] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[15] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[12] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[17] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[15] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[12] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
"[11] ToDoDecision" -> "[18] BudgetDecision" [label = "False"]
"[18] BudgetDecision" -> "[19] RequestBudgetResult" [label = "True"]
-"[19] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[19] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"[18] BudgetDecision" -> "[20] DoNothingResult" [label = "False"]
-"[20] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[18] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[11] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[20] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[18] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[11] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
"[10] ProjectSubTypeDecision" -> "[21] ToDoDecision" [label = "Foreign"]
"[21] ToDoDecision" -> "[22] DeadlineDecision" [label = "True"]
"[22] DeadlineDecision" -> "[23] True DeadlineDecision - SendNotificationAction" [label = "True"]
"[23] True DeadlineDecision - SendNotificationAction" -> "[24] MoveDeadlineResult" [label = "True"]
-"[24] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[23] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[23] True DeadlineDecision - SendNotificationAction |
>]
+"[24] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[23] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[23] True DeadlineDecision - SendNotificationAction |
>]
"[22] DeadlineDecision" -> "[25] BudgetDecision" [label = "False"]
"[25] BudgetDecision" -> "[26] RequestBudgetResult" [label = "True"]
-"[26] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[26] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"[25] BudgetDecision" -> "[27] DoNothingResult" [label = "False"]
-"[27] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[25] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[22] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[27] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[25] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[22] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
"[21] ToDoDecision" -> "[28] BudgetDecision" [label = "False"]
"[28] BudgetDecision" -> "[29] RequestBudgetResult" [label = "True"]
-"[29] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[29] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"[28] BudgetDecision" -> "[30] DoNothingResult" [label = "False"]
-"[30] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[28] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[21] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[30] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[28] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[21] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
"[10] ProjectSubTypeDecision" -> "[31] #null ProjectSubTypeDecision - SendNotificationAction" [label = "#null_path"]
"[31] #null ProjectSubTypeDecision - SendNotificationAction" -> "[32] ResetProjectAction" [label = "#null_path"]
"[32] ResetProjectAction" -> "[33] DoNothingResult" [label = "#null_path"]
-"[33] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[32] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[31] #null ProjectSubTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[31] #null ProjectSubTypeDecision - SendNotificationAction |
>]
+"[33] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[32] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[31] #null ProjectSubTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[31] #null ProjectSubTypeDecision - SendNotificationAction |
>]
"[10] ProjectSubTypeDecision" -> "[34] ProjectAreaDecision" [label = "#default_path"]
"[34] ProjectAreaDecision" -> "[35] Hr ProjectAreaDecision - SendNotificationAction" [label = "Hr"]
"[35] Hr ProjectAreaDecision - SendNotificationAction" -> "[36] ResetProjectAction" [label = "Hr"]
"[36] ResetProjectAction" -> "[37] DoNothingResult" [label = "Hr"]
-"[37] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[36] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[35] Hr ProjectAreaDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[35] Hr ProjectAreaDecision - SendNotificationAction |
>]
+"[37] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[36] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[35] Hr ProjectAreaDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[35] Hr ProjectAreaDecision - SendNotificationAction |
>]
"[34] ProjectAreaDecision" -> "[38] ToDoDecision" [label = "#default_path"]
"[38] ToDoDecision" -> "[39] DeadlineDecision" [label = "True"]
"[39] DeadlineDecision" -> "[40] True DeadlineDecision - SendNotificationAction" [label = "True"]
"[40] True DeadlineDecision - SendNotificationAction" -> "[41] MoveDeadlineResult" [label = "True"]
-"[41] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[40] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[40] True DeadlineDecision - SendNotificationAction |
>]
+"[41] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[40] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[40] True DeadlineDecision - SendNotificationAction |
>]
"[39] DeadlineDecision" -> "[42] BudgetDecision" [label = "False"]
"[42] BudgetDecision" -> "[43] RequestBudgetResult" [label = "True"]
-"[43] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[43] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"[42] BudgetDecision" -> "[44] DoNothingResult" [label = "False"]
-"[44] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[42] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[39] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[44] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[42] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[39] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
"[38] ToDoDecision" -> "[45] BudgetDecision" [label = "False"]
"[45] BudgetDecision" -> "[46] RequestBudgetResult" [label = "True"]
-"[46] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[46] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"[45] BudgetDecision" -> "[47] DoNothingResult" [label = "False"]
-"[47] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[45] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[38] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[34] ProjectAreaDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[10] ProjectSubTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[10] ProjectSubTypeDecision |
>]
+"[47] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[45] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[38] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[34] ProjectAreaDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[10] ProjectSubTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[10] ProjectSubTypeDecision |
>]
"[6] ProjectTypeDecision" -> "[48] ToDoDecision" [label = "#default_path"]
"[48] ToDoDecision" -> "[49] DeadlineDecision" [label = "True"]
"[49] DeadlineDecision" -> "[50] True DeadlineDecision - SendNotificationAction" [label = "True"]
"[50] True DeadlineDecision - SendNotificationAction" -> "[51] MoveDeadlineResult" [label = "True"]
-"[51] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[50] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[50] True DeadlineDecision - SendNotificationAction |
>]
+"[51] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[50] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[50] True DeadlineDecision - SendNotificationAction |
>]
"[49] DeadlineDecision" -> "[52] BudgetDecision" [label = "False"]
"[52] BudgetDecision" -> "[53] RequestBudgetResult" [label = "True"]
-"[53] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[53] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"[52] BudgetDecision" -> "[54] DoNothingResult" [label = "False"]
-"[54] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[52] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[49] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[54] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[52] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[49] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
"[48] ToDoDecision" -> "[55] BudgetDecision" [label = "False"]
"[55] BudgetDecision" -> "[56] RequestBudgetResult" [label = "True"]
-"[56] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[56] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"[55] BudgetDecision" -> "[57] DoNothingResult" [label = "False"]
-"[57] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[55] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[48] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[6] ProjectTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[4] IsOnHoldDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[3] False FinishedDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[3] False FinishedDecision - SendNotificationAction |
>]
-"[1] FinishedDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[57] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[55] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[48] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[6] ProjectTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[4] IsOnHoldDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[3] False FinishedDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[3] False FinishedDecision - SendNotificationAction |
>]
+"[1] FinishedDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
}
\ No newline at end of file
diff --git a/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.TitleOnlyUniquePaths.approved.html b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.TitleOnlyUniquePaths.approved.html
index 5dc37a1..1b82269 100644
--- a/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.TitleOnlyUniquePaths.approved.html
+++ b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.TitleOnlyUniquePaths.approved.html
@@ -1,115 +1,115 @@
-digraph G {
+digraph G {
"[1] FinishedDecision" -> "[2] FinishResult" [label = "True"]
-"[2] FinishResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[2] FinishResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"[1] FinishedDecision" -> "[3] False FinishedDecision - SendNotificationAction" [label = "False"]
"[3] False FinishedDecision - SendNotificationAction" -> "[4] IsOnHoldDecision" [label = "False"]
"[4] IsOnHoldDecision" -> "[5] DoNothingResult" [label = "True"]
-"[5] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[5] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
"[4] IsOnHoldDecision" -> "[6] ProjectTypeDecision" [label = "False"]
"[6] ProjectTypeDecision" -> "[7] Internal ProjectTypeDecision - SendNotificationAction" [label = "Internal"]
"[7] Internal ProjectTypeDecision - SendNotificationAction" -> "[8] ResetProjectAction" [label = "Internal"]
"[8] ResetProjectAction" -> "[9] DoNothingResult" [label = "Internal"]
-"[9] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[8] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[7] Internal ProjectTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[7] Internal ProjectTypeDecision - SendNotificationAction |
>]
+"[9] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[8] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[7] Internal ProjectTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[7] Internal ProjectTypeDecision - SendNotificationAction |
>]
"[6] ProjectTypeDecision" -> "[10] ProjectSubTypeDecision" [label = "#null_path"]
"[10] ProjectSubTypeDecision" -> "[11] ToDoDecision" [label = "WordWide"]
"[11] ToDoDecision" -> "[12] DeadlineDecision" [label = "True"]
"[12] DeadlineDecision" -> "[13] True DeadlineDecision - SendNotificationAction" [label = "True"]
"[13] True DeadlineDecision - SendNotificationAction" -> "[14] MoveDeadlineResult" [label = "True"]
-"[14] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[13] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[13] True DeadlineDecision - SendNotificationAction |
>]
+"[14] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[13] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[13] True DeadlineDecision - SendNotificationAction |
>]
"[12] DeadlineDecision" -> "[15] BudgetDecision" [label = "False"]
"[15] BudgetDecision" -> "[16] RequestBudgetResult" [label = "True"]
-"[16] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[16] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"[15] BudgetDecision" -> "[17] DoNothingResult" [label = "False"]
-"[17] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[15] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[12] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[17] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[15] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[12] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
"[11] ToDoDecision" -> "[18] BudgetDecision" [label = "False"]
"[18] BudgetDecision" -> "[19] RequestBudgetResult" [label = "True"]
-"[19] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[19] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"[18] BudgetDecision" -> "[20] DoNothingResult" [label = "False"]
-"[20] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[18] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[11] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[20] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[18] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[11] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
"[10] ProjectSubTypeDecision" -> "[21] ToDoDecision" [label = "Foreign"]
"[21] ToDoDecision" -> "[22] DeadlineDecision" [label = "True"]
"[22] DeadlineDecision" -> "[23] True DeadlineDecision - SendNotificationAction" [label = "True"]
"[23] True DeadlineDecision - SendNotificationAction" -> "[24] MoveDeadlineResult" [label = "True"]
-"[24] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[23] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[23] True DeadlineDecision - SendNotificationAction |
>]
+"[24] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[23] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[23] True DeadlineDecision - SendNotificationAction |
>]
"[22] DeadlineDecision" -> "[25] BudgetDecision" [label = "False"]
"[25] BudgetDecision" -> "[26] RequestBudgetResult" [label = "True"]
-"[26] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[26] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"[25] BudgetDecision" -> "[27] DoNothingResult" [label = "False"]
-"[27] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[25] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[22] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[27] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[25] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[22] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
"[21] ToDoDecision" -> "[28] BudgetDecision" [label = "False"]
"[28] BudgetDecision" -> "[29] RequestBudgetResult" [label = "True"]
-"[29] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[29] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"[28] BudgetDecision" -> "[30] DoNothingResult" [label = "False"]
-"[30] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[28] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[21] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[30] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[28] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[21] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
"[10] ProjectSubTypeDecision" -> "[31] #null ProjectSubTypeDecision - SendNotificationAction" [label = "#null_path"]
"[31] #null ProjectSubTypeDecision - SendNotificationAction" -> "[32] ResetProjectAction" [label = "#null_path"]
"[32] ResetProjectAction" -> "[33] DoNothingResult" [label = "#null_path"]
-"[33] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[32] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[31] #null ProjectSubTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[31] #null ProjectSubTypeDecision - SendNotificationAction |
>]
+"[33] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[32] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[31] #null ProjectSubTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[31] #null ProjectSubTypeDecision - SendNotificationAction |
>]
"[10] ProjectSubTypeDecision" -> "[34] ProjectAreaDecision" [label = "#default_path"]
"[34] ProjectAreaDecision" -> "[35] Hr ProjectAreaDecision - SendNotificationAction" [label = "Hr"]
"[35] Hr ProjectAreaDecision - SendNotificationAction" -> "[36] ResetProjectAction" [label = "Hr"]
"[36] ResetProjectAction" -> "[37] DoNothingResult" [label = "Hr"]
-"[37] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[36] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[35] Hr ProjectAreaDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[35] Hr ProjectAreaDecision - SendNotificationAction |
>]
+"[37] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[36] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[35] Hr ProjectAreaDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[35] Hr ProjectAreaDecision - SendNotificationAction |
>]
"[34] ProjectAreaDecision" -> "[38] ToDoDecision" [label = "#default_path"]
"[38] ToDoDecision" -> "[39] DeadlineDecision" [label = "True"]
"[39] DeadlineDecision" -> "[40] True DeadlineDecision - SendNotificationAction" [label = "True"]
"[40] True DeadlineDecision - SendNotificationAction" -> "[41] MoveDeadlineResult" [label = "True"]
-"[41] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[40] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[40] True DeadlineDecision - SendNotificationAction |
>]
+"[41] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[40] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[40] True DeadlineDecision - SendNotificationAction |
>]
"[39] DeadlineDecision" -> "[42] BudgetDecision" [label = "False"]
"[42] BudgetDecision" -> "[43] RequestBudgetResult" [label = "True"]
-"[43] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[43] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"[42] BudgetDecision" -> "[44] DoNothingResult" [label = "False"]
-"[44] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[42] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[39] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[44] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[42] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[39] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
"[38] ToDoDecision" -> "[45] BudgetDecision" [label = "False"]
"[45] BudgetDecision" -> "[46] RequestBudgetResult" [label = "True"]
-"[46] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[46] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"[45] BudgetDecision" -> "[47] DoNothingResult" [label = "False"]
-"[47] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[45] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[38] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[34] ProjectAreaDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[10] ProjectSubTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[10] ProjectSubTypeDecision |
>]
+"[47] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[45] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[38] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[34] ProjectAreaDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[10] ProjectSubTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[10] ProjectSubTypeDecision |
>]
"[6] ProjectTypeDecision" -> "[48] ToDoDecision" [label = "#default_path"]
"[48] ToDoDecision" -> "[49] DeadlineDecision" [label = "True"]
"[49] DeadlineDecision" -> "[50] True DeadlineDecision - SendNotificationAction" [label = "True"]
"[50] True DeadlineDecision - SendNotificationAction" -> "[51] MoveDeadlineResult" [label = "True"]
-"[51] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[50] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[50] True DeadlineDecision - SendNotificationAction |
>]
+"[51] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[50] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[50] True DeadlineDecision - SendNotificationAction |
>]
"[49] DeadlineDecision" -> "[52] BudgetDecision" [label = "False"]
"[52] BudgetDecision" -> "[53] RequestBudgetResult" [label = "True"]
-"[53] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[53] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"[52] BudgetDecision" -> "[54] DoNothingResult" [label = "False"]
-"[54] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[52] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[49] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[54] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[52] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[49] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
"[48] ToDoDecision" -> "[55] BudgetDecision" [label = "False"]
"[55] BudgetDecision" -> "[56] RequestBudgetResult" [label = "True"]
-"[56] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[56] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <>]
"[55] BudgetDecision" -> "[57] DoNothingResult" [label = "False"]
-"[57] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[55] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[48] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[6] ProjectTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[4] IsOnHoldDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[3] False FinishedDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[3] False FinishedDecision - SendNotificationAction |
>]
-"[1] FinishedDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[57] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[55] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[48] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[6] ProjectTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[4] IsOnHoldDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[3] False FinishedDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[3] False FinishedDecision - SendNotificationAction |
>]
+"[1] FinishedDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <>]
}
\ No newline at end of file
diff --git a/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.UniquePaths.approved.html b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.UniquePaths.approved.html
index 963a814..17f469c 100644
--- a/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.UniquePaths.approved.html
+++ b/DecisionTree.Tests/approvals/DecisionTreeTest.DecisionTree_Should_Define_Graph.UniquePaths.approved.html
@@ -1,115 +1,115 @@
digraph G {
"[1] FinishedDecision" -> "[2] FinishResult" [label = "True"]
-"[2] FinishResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[2] FinishResult |
|
dto => dto |
.SetResult("Project is finished.") |
>]
+"[2] FinishResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[2] FinishResult |
|
dto => dto |
.SetResult("Project is finished.") |
>]
"[1] FinishedDecision" -> "[3] False FinishedDecision - SendNotificationAction" [label = "False"]
"[3] False FinishedDecision - SendNotificationAction" -> "[4] IsOnHoldDecision" [label = "False"]
"[4] IsOnHoldDecision" -> "[5] DoNothingResult" [label = "True"]
-"[5] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[5] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
"[4] IsOnHoldDecision" -> "[6] ProjectTypeDecision" [label = "False"]
"[6] ProjectTypeDecision" -> "[7] Internal ProjectTypeDecision - SendNotificationAction" [label = "Internal"]
"[7] Internal ProjectTypeDecision - SendNotificationAction" -> "[8] ResetProjectAction" [label = "Internal"]
"[8] ResetProjectAction" -> "[9] DoNothingResult" [label = "Internal"]
-"[9] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[8] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[8] ResetProjectAction |
|
dto => dto |
.SetItemsToDo(0) |
.SetBudgetRemaining(0) |
>]
-"[7] Internal ProjectTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[7] Internal ProjectTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"[9] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[8] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[8] ResetProjectAction |
|
dto => dto |
.SetItemsToDo(0) |
.SetBudgetRemaining(0) |
>]
+"[7] Internal ProjectTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[7] Internal ProjectTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"[6] ProjectTypeDecision" -> "[10] ProjectSubTypeDecision" [label = "#null_path"]
"[10] ProjectSubTypeDecision" -> "[11] ToDoDecision" [label = "WordWide"]
"[11] ToDoDecision" -> "[12] DeadlineDecision" [label = "True"]
"[12] DeadlineDecision" -> "[13] True DeadlineDecision - SendNotificationAction" [label = "True"]
"[13] True DeadlineDecision - SendNotificationAction" -> "[14] MoveDeadlineResult" [label = "True"]
-"[14] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[14] MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
-"[13] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[13] True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"[14] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[14] MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
+"[13] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[13] True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"[12] DeadlineDecision" -> "[15] BudgetDecision" [label = "False"]
"[15] BudgetDecision" -> "[16] RequestBudgetResult" [label = "True"]
-"[16] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[16] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"[16] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[16] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
"[15] BudgetDecision" -> "[17] DoNothingResult" [label = "False"]
-"[17] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[15] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[15] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
-"[12] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[12] DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
+"[17] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[15] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[15] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"[12] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[12] DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
"[11] ToDoDecision" -> "[18] BudgetDecision" [label = "False"]
"[18] BudgetDecision" -> "[19] RequestBudgetResult" [label = "True"]
-"[19] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[19] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"[19] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[19] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
"[18] BudgetDecision" -> "[20] DoNothingResult" [label = "False"]
-"[20] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[18] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[18] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
-"[11] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[11] ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
+"[20] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[18] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[18] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"[11] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[11] ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
"[10] ProjectSubTypeDecision" -> "[21] ToDoDecision" [label = "Foreign"]
"[21] ToDoDecision" -> "[22] DeadlineDecision" [label = "True"]
"[22] DeadlineDecision" -> "[23] True DeadlineDecision - SendNotificationAction" [label = "True"]
"[23] True DeadlineDecision - SendNotificationAction" -> "[24] MoveDeadlineResult" [label = "True"]
-"[24] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[24] MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
-"[23] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[23] True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"[24] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[24] MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
+"[23] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[23] True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"[22] DeadlineDecision" -> "[25] BudgetDecision" [label = "False"]
"[25] BudgetDecision" -> "[26] RequestBudgetResult" [label = "True"]
-"[26] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[26] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"[26] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[26] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
"[25] BudgetDecision" -> "[27] DoNothingResult" [label = "False"]
-"[27] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[25] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[25] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
-"[22] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[22] DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
+"[27] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[25] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[25] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"[22] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[22] DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
"[21] ToDoDecision" -> "[28] BudgetDecision" [label = "False"]
"[28] BudgetDecision" -> "[29] RequestBudgetResult" [label = "True"]
-"[29] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[29] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"[29] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[29] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
"[28] BudgetDecision" -> "[30] DoNothingResult" [label = "False"]
-"[30] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[28] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[28] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
-"[21] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[21] ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
+"[30] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[28] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[28] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"[21] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[21] ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
"[10] ProjectSubTypeDecision" -> "[31] #null ProjectSubTypeDecision - SendNotificationAction" [label = "#null_path"]
"[31] #null ProjectSubTypeDecision - SendNotificationAction" -> "[32] ResetProjectAction" [label = "#null_path"]
"[32] ResetProjectAction" -> "[33] DoNothingResult" [label = "#null_path"]
-"[33] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[32] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[32] ResetProjectAction |
|
dto => dto |
.SetItemsToDo(0) |
.SetBudgetRemaining(0) |
>]
-"[31] #null ProjectSubTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[31] #null ProjectSubTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"[33] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[32] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[32] ResetProjectAction |
|
dto => dto |
.SetItemsToDo(0) |
.SetBudgetRemaining(0) |
>]
+"[31] #null ProjectSubTypeDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[31] #null ProjectSubTypeDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"[10] ProjectSubTypeDecision" -> "[34] ProjectAreaDecision" [label = "#default_path"]
"[34] ProjectAreaDecision" -> "[35] Hr ProjectAreaDecision - SendNotificationAction" [label = "Hr"]
"[35] Hr ProjectAreaDecision - SendNotificationAction" -> "[36] ResetProjectAction" [label = "Hr"]
"[36] ResetProjectAction" -> "[37] DoNothingResult" [label = "Hr"]
-"[37] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[36] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[36] ResetProjectAction |
|
dto => dto |
.SetItemsToDo(0) |
.SetBudgetRemaining(0) |
>]
-"[35] Hr ProjectAreaDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[35] Hr ProjectAreaDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"[37] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[36] ResetProjectAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[36] ResetProjectAction |
|
dto => dto |
.SetItemsToDo(0) |
.SetBudgetRemaining(0) |
>]
+"[35] Hr ProjectAreaDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[35] Hr ProjectAreaDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"[34] ProjectAreaDecision" -> "[38] ToDoDecision" [label = "#default_path"]
"[38] ToDoDecision" -> "[39] DeadlineDecision" [label = "True"]
"[39] DeadlineDecision" -> "[40] True DeadlineDecision - SendNotificationAction" [label = "True"]
"[40] True DeadlineDecision - SendNotificationAction" -> "[41] MoveDeadlineResult" [label = "True"]
-"[41] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[41] MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
-"[40] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[40] True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"[41] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[41] MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
+"[40] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[40] True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"[39] DeadlineDecision" -> "[42] BudgetDecision" [label = "False"]
"[42] BudgetDecision" -> "[43] RequestBudgetResult" [label = "True"]
-"[43] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[43] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"[43] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[43] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
"[42] BudgetDecision" -> "[44] DoNothingResult" [label = "False"]
-"[44] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[42] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[42] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
-"[39] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[39] DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
+"[44] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[42] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[42] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"[39] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[39] DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
"[38] ToDoDecision" -> "[45] BudgetDecision" [label = "False"]
"[45] BudgetDecision" -> "[46] RequestBudgetResult" [label = "True"]
-"[46] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[46] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"[46] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[46] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
"[45] BudgetDecision" -> "[47] DoNothingResult" [label = "False"]
-"[47] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[45] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[45] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
-"[38] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[38] ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
-"[34] ProjectAreaDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[34] ProjectAreaDecision |
|
dto => dto.Project.Area |
>]
-"[10] ProjectSubTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[10] ProjectSubTypeDecision |
|
dto => dto.Project.SubType |
>]
+"[47] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[45] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[45] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"[38] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[38] ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
+"[34] ProjectAreaDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[34] ProjectAreaDecision |
|
dto => dto.Project.Area |
>]
+"[10] ProjectSubTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[10] ProjectSubTypeDecision |
|
dto => dto.Project.SubType |
>]
"[6] ProjectTypeDecision" -> "[48] ToDoDecision" [label = "#default_path"]
"[48] ToDoDecision" -> "[49] DeadlineDecision" [label = "True"]
"[49] DeadlineDecision" -> "[50] True DeadlineDecision - SendNotificationAction" [label = "True"]
"[50] True DeadlineDecision - SendNotificationAction" -> "[51] MoveDeadlineResult" [label = "True"]
-"[51] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[51] MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
-"[50] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[50] True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"[51] MoveDeadlineResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[51] MoveDeadlineResult |
|
dto => dto |
.SetResult("Timeline reevaluation needed.") |
>]
+"[50] True DeadlineDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[50] True DeadlineDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
"[49] DeadlineDecision" -> "[52] BudgetDecision" [label = "False"]
"[52] BudgetDecision" -> "[53] RequestBudgetResult" [label = "True"]
-"[53] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[53] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"[53] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[53] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
"[52] BudgetDecision" -> "[54] DoNothingResult" [label = "False"]
-"[54] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[52] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[52] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
-"[49] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[49] DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
+"[54] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[52] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[52] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"[49] DeadlineDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[49] DeadlineDecision |
|
dto => (dto.Project.TimeToDeadline.Days < 7) |
>]
"[48] ToDoDecision" -> "[55] BudgetDecision" [label = "False"]
"[55] BudgetDecision" -> "[56] RequestBudgetResult" [label = "True"]
-"[56] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[56] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
+"[56] RequestBudgetResult" [style = "filled" penwidth = 1 fillcolor = "#28a745" fontname = "Courier New" shape = "Mrecord" label = <[56] RequestBudgetResult |
|
dto => dto |
.SetResult("Not enough funds.") |
.SetIsOnHold(True) |
>]
"[55] BudgetDecision" -> "[57] DoNothingResult" [label = "False"]
-"[57] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
-"[55] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[55] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
-"[48] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[48] ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
-"[6] ProjectTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[6] ProjectTypeDecision |
|
dto => dto.Project.Type |
>]
-"[4] IsOnHoldDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[4] IsOnHoldDecision |
|
dto => dto.Project.IsOnHold |
>]
-"[3] False FinishedDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[3] False FinishedDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
-"[1] FinishedDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[1] FinishedDecision |
|
dto => (dto.Project.ItemsToDo == 0) |
>]
+"[57] DoNothingResult" [style = "filled" penwidth = 1 fillcolor = "#343a40" fontname = "Courier New" shape = "Mrecord" label = <>]
+"[55] BudgetDecision" [style = "filled" penwidth = 1 fillcolor = "#007bff" fontname = "Courier New" shape = "Mrecord" label = <[55] BudgetDecision |
|
dto => (dto.Project.BudgetRemaining < (dto.Project.ItemsToDo * 1000)) |
|
dto => dto |
.SetIsBudgetReviewed(True) |
>]
+"[48] ToDoDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[48] ToDoDecision |
|
dto => (dto.Project.ItemsToDo > 10) |
>]
+"[6] ProjectTypeDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[6] ProjectTypeDecision |
|
dto => dto.Project.Type |
>]
+"[4] IsOnHoldDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[4] IsOnHoldDecision |
|
dto => dto.Project.IsOnHold |
>]
+"[3] False FinishedDecision - SendNotificationAction" [style = "filled" penwidth = 1 fillcolor = "#6c757d" fontname = "Courier New" shape = "Mrecord" label = <[3] False FinishedDecision - SendNotificationAction |
|
dto => dto |
.SetSendNotification(True) |
>]
+"[1] FinishedDecision" [style = "filled" penwidth = 1 fillcolor = "#17a2b8" fontname = "Courier New" shape = "Mrecord" label = <[1] FinishedDecision |
|
dto => (dto.Project.ItemsToDo == 0) |
>]
}
\ No newline at end of file
diff --git a/DecisionTree/DecisionTree.csproj b/DecisionTree/DecisionTree.csproj
index 406fbc1..59bf563 100644
--- a/DecisionTree/DecisionTree.csproj
+++ b/DecisionTree/DecisionTree.csproj
@@ -14,8 +14,8 @@
Piotr Smreczynski
Decision Tree + Visualisation
Lightweight framework to define decision trees via configuration with option to generate graph definition in DOT language.
- Added option to generate graph definition with only Titles and Paths
- 1.1.1
+ Added custom graph styling options via GraphOptions.GraphStyle .
+ 1.1.2
diff --git a/DecisionTree/DotTreeExtensions/DecisionExtensions.cs b/DecisionTree/DotTreeExtensions/DecisionExtensions.cs
index 73a837c..d44d276 100644
--- a/DecisionTree/DotTreeExtensions/DecisionExtensions.cs
+++ b/DecisionTree/DotTreeExtensions/DecisionExtensions.cs
@@ -3,7 +3,6 @@
using System.Linq;
using System.Reflection;
using System.Text.RegularExpressions;
-using System.Web;
using DecisionTree.Decisions.DecisionsBase;
using DecisionTree.DotTreeExtensions.Dto;
using DecisionTree.Exceptions;
@@ -12,6 +11,10 @@ namespace DecisionTree.DotTreeExtensions
{
public static class DecisionExtensions
{
+ private const string DefaultPathText = "#default_path";
+ private const string NullPathText = "#null_path";
+ private const string ActionPartRegexPattern = "(?=\\.[^\\)]+?\\([^\\)]+\\))";
+
private static readonly Dictionary ExtensionBindingDictionary =
new Dictionary
{
@@ -20,44 +23,22 @@ public static class DecisionExtensions
{typeof(IDecisionAction<>), GetPrivateStaticMethodInfo(nameof(PrintAction))}
};
+ public static string Print(this IDecision decision, GraphOptions options) =>
+ decision.InvokeChildPrint(new GraphConfig(options));
+
private static MethodInfo GetPrivateStaticMethodInfo(string name) => typeof(DecisionExtensions)
.GetMethod(name, BindingFlags.NonPublic | BindingFlags.Static);
- private static readonly Dictionary TitleStyleDictionary =
- new Dictionary
- {
- {TitleStyle.Decision, "#17a2b8"},
- {TitleStyle.DecisionAction, "#007bff"},
- {TitleStyle.Result, "#343a40"},
- {TitleStyle.ResultAction, "#28a745"},
- {TitleStyle.Action, "#6c757d"}
- };
-
- private const string DefaultPathText = "#default_path";
- private const string NullPathText = "#null_path";
- private const string ActionCellStyle = "align=\"left\"";
- private const string ActionPartRegexPattern = "(?=\\.[^\\)]+?\\([^\\)]+\\))";
- private const string FontStyle = "color=\"white\"";
- private const string Separator = " |
";
-
- public static string Print(this IDecision decision, GraphOptions options)
- {
- var nodeId = options.UseUniquePaths ? new NodeId() : null;
- var graphConfig = new GraphConfig(nodeId, options.TitleOnly);
-
- return decision.InvokeChildPrint(graphConfig);
- }
-
private static string InvokeChildPrint(this IDecision decision, GraphConfig graphConfig) =>
InvokeChildPrint(decision, graphConfig, null);
- private static string InvokeChildPrint(this IDecision decision, GraphConfig graphConfig, string key)
+ private static string InvokeChildPrint(this IDecision decision, GraphConfig graphConfig, string label)
{
var implementedInterface = GetImplementedPrintableInterface(decision);
graphConfig.NodeId?.Increment();
- var printParams = new object[] { decision, graphConfig, key };
+ var printParams = new object[] { decision, graphConfig, label };
return (string)ExtensionBindingDictionary[implementedInterface.GetGenericTypeDefinition()]
.MakeGenericMethod(implementedInterface.GenericTypeArguments)
@@ -80,20 +61,24 @@ private static string PrintNode(this IDecisionNode node,
var titleWithCounter = AddCounter(graphConfig.NodeId?.Counter, node.Title);
if (label != null)
- printResult += $"\"{titleWithCounter}\" [label = \"{label}\"]{Environment.NewLine}";
+ printResult += DotFormattingHelper
+ .GetLabel(titleWithCounter, label);
foreach (var (key, decision) in node.Paths)
- printResult += $"\"{titleWithCounter}\" -> {decision.InvokeChildPrint(graphConfig, key.ToString())}";
+ printResult += DotFormattingHelper
+ .GetPath(titleWithCounter, decision.InvokeChildPrint(graphConfig, key.ToString()));
if (node.NullPath != null)
- printResult += $"\"{titleWithCounter}\" -> {node.NullPath.InvokeChildPrint(graphConfig, NullPathText)}";
+ printResult += DotFormattingHelper
+ .GetPath(titleWithCounter, node.NullPath.InvokeChildPrint(graphConfig, NullPathText));
if (node.DefaultPath != null)
- printResult += $"\"{titleWithCounter}\" -> {node.DefaultPath.InvokeChildPrint(graphConfig, DefaultPathText)}";
+ printResult += DotFormattingHelper
+ .GetPath(titleWithCounter, node.DefaultPath.InvokeChildPrint(graphConfig, DefaultPathText));
printResult += node.Action != null
- ? GetHtmlTable(node.Action.ToString(), graphConfig.TitleOnly, condition, titleWithCounter, TitleStyle.DecisionAction)
- : GetHtmlTable(string.Empty, graphConfig.TitleOnly, condition, titleWithCounter, TitleStyle.Decision);
+ ? GetHtmlTable(node.Action.ToString(), graphConfig, condition, titleWithCounter, StyleElement.DecisionAction)
+ : GetHtmlTable(string.Empty, graphConfig, condition, titleWithCounter, StyleElement.Decision);
return printResult;
}
@@ -103,10 +88,11 @@ private static string PrintResult(this IDecisionResult result, GraphConfig
var titleWithCounter = AddCounter(graphConfig.NodeId?.Counter, result.Title);
var actionDescription = result.Action != null
- ? GetHtmlTable(result.Action.ToString(), graphConfig.TitleOnly, titleWithCounter, TitleStyle.ResultAction)
- : GetHtmlTable(string.Empty, graphConfig.TitleOnly, titleWithCounter, TitleStyle.Result);
+ ? GetHtmlTable(result.Action.ToString(), graphConfig, titleWithCounter, StyleElement.ResultAction)
+ : GetHtmlTable(string.Empty, graphConfig, titleWithCounter, StyleElement.Result);
- return $"\"{titleWithCounter}\" [label = \"{label}\"]{Environment.NewLine}{actionDescription}";
+ return DotFormattingHelper
+ .GetLabel(titleWithCounter, label, actionDescription);
}
private static string PrintAction(this IDecisionAction action, GraphConfig graphConfig, string label)
@@ -116,35 +102,54 @@ private static string PrintAction(this IDecisionAction action, GraphConfig
var titleWithCounter = AddCounter(graphConfig.NodeId?.Counter, action.Title);
if (label != null)
- printResult += $"\"{titleWithCounter}\" [label = \"{label}\"]{Environment.NewLine}";
+ printResult += DotFormattingHelper
+ .GetLabel(titleWithCounter, label);
if (action.Path != null)
- printResult += $"\"{titleWithCounter}\" -> {action.Path.InvokeChildPrint(graphConfig, label)}";
+ printResult += DotFormattingHelper
+ .GetPath(titleWithCounter, action.Path.InvokeChildPrint(graphConfig, label));
- printResult += GetHtmlTable(action.Action.ToString(), graphConfig.TitleOnly, titleWithCounter, TitleStyle.Action);
+ printResult += GetHtmlTable(action.Action.ToString(), graphConfig, titleWithCounter, StyleElement.Action);
return printResult;
}
- private static string GetHtmlTable(string action, bool titleOnly, string title, TitleStyle titleStyle) =>
- GetHtmlTable(action, titleOnly, null, title, titleStyle);
+ private static string GetHtmlTable(string action, GraphConfig graphConfig, string title, StyleElement styleElement) =>
+ GetHtmlTable(action, graphConfig, null, title, styleElement);
- private static string GetHtmlTable(string action, bool titleOnly, string condition, string title, TitleStyle titleStyle)
+ private static string GetHtmlTable(string action, GraphConfig graphConfig, string condition, string title, StyleElement styleElement)
{
- var style = TitleStyleDictionary[titleStyle];
- var actionStyle = GetActionStyle(style);
+ var color = graphConfig.GetColor(styleElement);
+ var fontColor = graphConfig.GetColor(StyleElement.Font);
- if (titleOnly)
- return $"\"{title}\" [{actionStyle} label = {GetTableBody(title, style)}]{Environment.NewLine}";
+ if (graphConfig.TitleOnly)
+ return DotFormattingHelper.GetTableBody(title, color, fontColor);
- var actionPartRow = string.Empty;
+ var conditionRow = GetConditionRow(condition, fontColor);
+ var actionPartRow = GetActionPartRow(action, fontColor);
+
+ return DotFormattingHelper.GetTableBody(title, conditionRow, actionPartRow, color, fontColor);
+ }
+
+ private static string GetConditionRow(string condition, string fontColor)
+ {
var conditionRow = string.Empty;
- if (condition != null)
- {
- conditionRow += Separator;
- conditionRow += GetConditionRow(condition);
- }
+ if (condition == null)
+ return conditionRow;
+
+ conditionRow += DotFormattingHelper
+ .GetSeparator(fontColor);
+
+ conditionRow += DotFormattingHelper
+ .GetConditionRow(condition, fontColor);
+
+ return conditionRow;
+ }
+
+ private static string GetActionPartRow(string action, string fontColor)
+ {
+ var actionPartRow = string.Empty;
var actionParts = Regex
.Split(action, ActionPartRegexPattern)
@@ -152,58 +157,19 @@ private static string GetHtmlTable(string action, bool titleOnly, string conditi
.ToList();
if (actionParts.Any())
- actionPartRow += Separator;
+ actionPartRow += DotFormattingHelper
+ .GetSeparator(fontColor);
foreach (var actionPart in actionParts)
- actionPartRow += GetActionPartRow(actionPart);
+ actionPartRow += DotFormattingHelper
+ .GetActionPartRow(actionPart, fontColor);
- var table = GetTableBody(title, conditionRow, actionPartRow, style);
-
- return $"\"{title}\" [{actionStyle} label = {table}]{Environment.NewLine}";
+ return actionPartRow;
}
- private static string AddCounter(int? counter, string title)
- {
- return counter != null
- ? $"[{counter}] {title}"
+ private static string AddCounter(int? counter, string title) =>
+ counter != null
+ ? DotFormattingHelper.GetTitleWithCounter(counter, title)
: title;
- }
-
- private static string GetTableBody(string title, string style) =>
- GetTableBody(title, null, null, style);
-
- private static string GetTableBody(string title, string conditionRow, string actionPartRow, string style) =>
- $"<" +
- "" +
- $"" +
- $"{HttpUtility.HtmlEncode(title)}" +
- " | " +
- "
" +
- conditionRow +
- actionPartRow +
- "
>";
-
- private static string GetConditionRow(string condition) =>
- "" +
- $"" +
- $"{HttpUtility.HtmlEncode(condition)}" +
- " | " +
- "
";
-
- private static string GetActionPartRow(string actionPart) =>
- "" +
- $"" +
- $"{HttpUtility.HtmlEncode(actionPart)}" +
- " | " +
- "
";
-
- private static string GetTitleCellStyle(string style) =>
- $"bgcolor=\"{style}\" align=\"center\"";
-
- private static string GetTableStyle(string style) =>
- $"border=\"0\" cellborder=\"0\" cellpadding=\"3\" bgcolor=\"{style}\"";
-
- private static string GetActionStyle(string style) =>
- $"style = \"filled\" penwidth = 1 fillcolor = \"{style}\" fontname = \"Courier New\" shape = \"Mrecord\"";
}
}
diff --git a/DecisionTree/DotTreeExtensions/DotFormattingHelper.cs b/DecisionTree/DotTreeExtensions/DotFormattingHelper.cs
new file mode 100644
index 0000000..5ed3200
--- /dev/null
+++ b/DecisionTree/DotTreeExtensions/DotFormattingHelper.cs
@@ -0,0 +1,68 @@
+using System;
+using System.Web;
+
+namespace DecisionTree.DotTreeExtensions
+{
+ internal class DotFormattingHelper
+ {
+ public static string GetTableBody(string title, string color, string fontColor) =>
+ GetTableBody(title, null, null, color, fontColor);
+
+ public static string GetTableBody(string title, string conditionRow, string actionPartRow, string color, string fontColor) =>
+ $"\"{title}\" [{GetActionStyle(color)} label = " +
+ $"<" +
+ "" +
+ $"" +
+ $"{HttpUtility.HtmlEncode(title)}" +
+ " | " +
+ "
" +
+ conditionRow +
+ actionPartRow +
+ "
>" +
+ $"]{Environment.NewLine}";
+
+ public static string GetConditionRow(string condition, string fontColor) =>
+ "" +
+ "" +
+ $"{HttpUtility.HtmlEncode(condition)}" +
+ " | " +
+ "
";
+
+ public static string GetActionPartRow(string actionPart, string fontColor) =>
+ "" +
+ "" +
+ $"{HttpUtility.HtmlEncode(actionPart)}" +
+ " | " +
+ "
";
+
+ public static string GetLabel(string titleWithCounter, string label) =>
+ GetLabel(titleWithCounter, label, string.Empty);
+
+ public static string GetLabel(string titleWithCounter, string label, string actionDescription) =>
+ $"\"{titleWithCounter}\" [label = \"{label}\"]{Environment.NewLine}{actionDescription}";
+
+ public static string GetTitleWithCounter(int? counter, string title) =>
+ $"[{counter}] {title}";
+
+ public static string GetPath(string titleWithCounter, string childString) =>
+ $"\"{titleWithCounter}\" -> {childString}";
+
+ private static string GetActionStyle(string color) =>
+ $"style = \"filled\" penwidth = 1 fillcolor = \"{color}\" fontname = \"Courier New\" shape = \"Mrecord\"";
+
+ private static string GetTitleCellStyle(string color) =>
+ $"bgcolor = \"{color}\" align = \"center\"";
+
+ private static string GetTableStyle(string color) =>
+ $"border = \"0\" cellborder = \"0\" cellpadding = \"3\" bgcolor = \"{color}\"";
+
+ private static string GetFontStyle(string fontColor) =>
+ $"color = \"{fontColor}\"";
+
+ public static string GetSeparator(string fontColor) =>
+ "" +
+ $"" +
+ " | " +
+ "
";
+ }
+}
diff --git a/DecisionTree/DotTreeExtensions/Dto/GraphConfig.cs b/DecisionTree/DotTreeExtensions/Dto/GraphConfig.cs
index 3cc7a7c..5eb1a69 100644
--- a/DecisionTree/DotTreeExtensions/Dto/GraphConfig.cs
+++ b/DecisionTree/DotTreeExtensions/Dto/GraphConfig.cs
@@ -2,13 +2,15 @@
{
internal class GraphConfig
{
- public GraphConfig(NodeId nodeId, bool titleOnly)
+ public GraphConfig(GraphOptions options)
{
- NodeId = nodeId;
- TitleOnly = titleOnly;
+ NodeId = options.UseUniquePaths ? new NodeId() : null;
+ TitleOnly = options.TitleOnly;
+ Style = options.GraphStyle ?? new GraphStyle();
}
public NodeId NodeId { get; }
public bool TitleOnly { get; }
+ public GraphStyle Style { get; }
}
}
diff --git a/DecisionTree/DotTreeExtensions/GraphConfigExtensions.cs b/DecisionTree/DotTreeExtensions/GraphConfigExtensions.cs
new file mode 100644
index 0000000..0a9d62c
--- /dev/null
+++ b/DecisionTree/DotTreeExtensions/GraphConfigExtensions.cs
@@ -0,0 +1,18 @@
+using DecisionTree.DotTreeExtensions.Dto;
+
+namespace DecisionTree.DotTreeExtensions
+{
+ internal static class GraphConfigExtensions
+ {
+ public static string GetColor(this GraphConfig graphConfig, StyleElement styleElement) =>
+ styleElement switch
+ {
+ StyleElement.Decision => graphConfig.Style.DecisionColor,
+ StyleElement.DecisionAction => graphConfig.Style.DecisionActionColor,
+ StyleElement.Result => graphConfig.Style.ResultColor,
+ StyleElement.ResultAction => graphConfig.Style.ResultActionColor,
+ StyleElement.Action => graphConfig.Style.ActionColor,
+ StyleElement.Font => graphConfig.Style.FontColor
+ };
+ }
+}
diff --git a/DecisionTree/DotTreeExtensions/GraphOptions.cs b/DecisionTree/DotTreeExtensions/GraphOptions.cs
index f7b7375..83d951d 100644
--- a/DecisionTree/DotTreeExtensions/GraphOptions.cs
+++ b/DecisionTree/DotTreeExtensions/GraphOptions.cs
@@ -14,5 +14,9 @@ public class GraphOptions
/// Will generate graph definition with only titles and paths.
///
public bool TitleOnly { get; set; }
+ ///
+ /// Custom graph style configuration. Will override default styling where provided.
+ ///
+ public GraphStyle GraphStyle { get; set; }
}
}
diff --git a/DecisionTree/DotTreeExtensions/GraphStyle.cs b/DecisionTree/DotTreeExtensions/GraphStyle.cs
new file mode 100644
index 0000000..8ea0165
--- /dev/null
+++ b/DecisionTree/DotTreeExtensions/GraphStyle.cs
@@ -0,0 +1,35 @@
+namespace DecisionTree.DotTreeExtensions
+{
+ public class GraphStyle
+ {
+ ///
+ /// Block color for Decisions. Use HTML like Hex Color Code "#RRGGBB" or color name "black".
+ ///
+ public string DecisionColor { get; set; } = "#17a2b8";
+
+ ///
+ /// Block color for Decisions with Action. Use HTML like Hex Color Code "#RRGGBB" or color name "black".
+ ///
+ public string DecisionActionColor { get; set; } = "#007bff";
+
+ ///
+ /// Block color for Results. Use HTML like Hex Color Code "#RRGGBB" or color name "black".
+ ///
+ public string ResultColor { get; set; } = "#343a40";
+
+ ///
+ /// Block color for Results with Action. Use HTML like Hex Color Code "#RRGGBB" or color name "black".
+ ///
+ public string ResultActionColor { get; set; } = "#28a745";
+
+ ///
+ /// Block color for Actions. Use HTML like Hex Color Code "#RRGGBB" or color name "black".
+ ///
+ public string ActionColor { get; set; } = "#6c757d";
+
+ ///
+ /// Font color used in blocks. Use HTML like Hex Color Code "#RRGGBB" or color name "black".
+ ///
+ public string FontColor { get; set; } = "#ffffff";
+ }
+}
diff --git a/DecisionTree/DotTreeExtensions/TitleStyle.cs b/DecisionTree/DotTreeExtensions/StyleElement.cs
similarity index 70%
rename from DecisionTree/DotTreeExtensions/TitleStyle.cs
rename to DecisionTree/DotTreeExtensions/StyleElement.cs
index b68fb67..a1938d9 100644
--- a/DecisionTree/DotTreeExtensions/TitleStyle.cs
+++ b/DecisionTree/DotTreeExtensions/StyleElement.cs
@@ -1,11 +1,12 @@
namespace DecisionTree.DotTreeExtensions
{
- internal enum TitleStyle
+ internal enum StyleElement
{
Decision,
DecisionAction,
Result,
ResultAction,
- Action
+ Action,
+ Font
}
}