diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index 40d3ba4893..ad89a48ac6 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -3,13 +3,13 @@
"isRoot": true,
"tools": {
"jetbrains.resharper.globaltools": {
- "version": "2023.1.0",
+ "version": "2023.1.2",
"commands": [
"jb"
]
},
"regitlint": {
- "version": "6.3.10",
+ "version": "6.3.11",
"commands": [
"regitlint"
]
@@ -21,13 +21,13 @@
]
},
"dotnet-reportgenerator-globaltool": {
- "version": "5.1.19",
+ "version": "5.1.20",
"commands": [
"reportgenerator"
]
},
"docfx": {
- "version": "2.62.2",
+ "version": "2.67.1",
"commands": [
"docfx"
]
diff --git a/Directory.Build.props b/Directory.Build.props
index af2fb7ac5b..54b8a4d10d 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -35,6 +35,6 @@
3.2.*
4.18.*
- 17.5.*
+ 17.6.*
diff --git a/docs/build-dev.ps1 b/docs/build-dev.ps1
index bdd13d16b8..6bff0e5fcb 100644
--- a/docs/build-dev.ps1
+++ b/docs/build-dev.ps1
@@ -37,6 +37,9 @@ if (-Not $NoBuild -Or -Not (Test-Path -Path _site)) {
Invoke-Expression ./generate-examples.ps1
}
+dotnet tool restore
+VerifySuccessExitCode
+
dotnet docfx ./docfx.json
VerifySuccessExitCode
diff --git a/docs/docfx.json b/docs/docfx.json
index 7fdafa0fe5..1d0e192ac2 100644
--- a/docs/docfx.json
+++ b/docs/docfx.json
@@ -40,7 +40,7 @@
"dest": "_site",
"globalMetadataFiles": [],
"fileMetadataFiles": [],
- "template": [ "default" ],
+ "template": [ "default", "modern" ],
"postProcessors": [],
"noLangKeyword": false,
"keepFileLink": false,
diff --git a/docs/internals/queries.md b/docs/internals/queries.md
index 76f062c233..198a1659a2 100644
--- a/docs/internals/queries.md
+++ b/docs/internals/queries.md
@@ -4,8 +4,9 @@ _since v4.0_
The query pipeline roughly looks like this:
-```
-HTTP --[ASP.NET]--> QueryString --[JADNC:QueryStringParameterReader]--> QueryExpression[] --[JADNC:ResourceService]--> QueryLayer --[JADNC:Repository]--> IQueryable --[Entity Framework Core]--> SQL
+```mermaid
+flowchart TB
+A[HTTP] -->|ASP.NET| B(QueryString) -->|JADNC:QueryStringParameterReader| C("QueryExpression[]") -->|JADNC:ResourceService| D(QueryLayer) -->|JADNC:Repository| E(IQueryable) -->|Entity Framework Core| F[(SQL)]
```
Processing a request involves the following steps:
diff --git a/docs/usage/extensibility/services.md b/docs/usage/extensibility/services.md
index 6cdea8b783..90dea1352b 100644
--- a/docs/usage/extensibility/services.md
+++ b/docs/usage/extensibility/services.md
@@ -81,42 +81,34 @@ In some cases it may be necessary to only expose a few actions on a resource. Fo
This interface hierarchy is defined by this tree structure.
-```
-IResourceService
-|
-+-- IResourceQueryService
-| |
-| +-- IGetAllService
-| | GET /
-| |
-| +-- IGetByIdService
-| | GET /{id}
-| |
-| +-- IGetSecondaryService
-| | GET /{id}/{relationship}
-| |
-| +-- IGetRelationshipService
-| GET /{id}/relationships/{relationship}
-|
-+-- IResourceCommandService
- |
- +-- ICreateService
- | POST /
- |
- +-- IUpdateService
- | PATCH /{id}
- |
- +-- IDeleteService
- | DELETE /{id}
- |
- +-- IAddToRelationshipService
- | POST /{id}/relationships/{relationship}
- |
- +-- ISetRelationshipService
- | PATCH /{id}/relationships/{relationship}
- |
- +-- IRemoveFromRelationshipService
- DELETE /{id}/relationships/{relationship}
+```mermaid
+classDiagram
+direction LR
+class IResourceService
+class IResourceQueryService
+class IGetAllService ["IGetAllService\nGET /"]
+class IGetByIdService ["IGetByIdService\nGET /{id}"]
+class IGetSecondaryService ["IGetSecondaryService\nGET /{id}/{relationship}"]
+class IGetRelationshipService ["IGetRelationshipService\nGET /{id}/relationships/{relationship}"]
+class IResourceCommandService
+class ICreateService ["ICreateService\nPOST /"]
+class IUpdateService ["IUpdateService\nPATCH /{id}"]
+class IDeleteService ["IDeleteService\nDELETE /{id}"]
+class IAddToRelationshipService ["IAddToRelationshipService\nPOST /{id}/relationships/{relationship}"]
+class ISetRelationshipService ["ISetRelationshipService\nPATCH /{id}/relationships/{relationship}"]
+class IRemoveFromRelationshipService ["IRemoveFromRelationshipService\nDELETE /{id}/relationships/{relationship}"]
+IResourceService <|-- IResourceQueryService
+IResourceQueryService<|-- IGetAllService
+IResourceQueryService<|-- IGetByIdService
+IResourceQueryService<|-- IGetSecondaryService
+IResourceQueryService<|-- IGetRelationshipService
+IResourceService <|-- IResourceCommandService
+IResourceCommandService <|-- ICreateService
+IResourceCommandService <|-- IUpdateService
+IResourceCommandService <|-- IDeleteService
+IResourceCommandService <|-- IAddToRelationshipService
+IResourceCommandService <|-- ISetRelationshipService
+IResourceCommandService <|-- IRemoveFromRelationshipService
```
In order to take advantage of these interfaces you first need to register the service for each implemented interface.
diff --git a/test/TestBuildingBlocks/TestBuildingBlocks.csproj b/test/TestBuildingBlocks/TestBuildingBlocks.csproj
index 46193372a8..bec40e7ed7 100644
--- a/test/TestBuildingBlocks/TestBuildingBlocks.csproj
+++ b/test/TestBuildingBlocks/TestBuildingBlocks.csproj
@@ -10,7 +10,7 @@
-
+