From 2bbdf4ab58a60c3c9ddf3f699c1ec4af9bfa951a Mon Sep 17 00:00:00 2001
From: Simon Geering <25039878+SimonGeering@users.noreply.github.com>
Date: Sun, 5 Jul 2026 16:21:57 +0100
Subject: [PATCH 01/16] Aspire automated upgrade to 13.4.6
---
.../AdminAssistant.Aspire.AppHost.csproj | 3 +--
src/Directory.Packages.props | 19 +++++++++----------
src/aspire.config.json | 5 +++++
src/nuget.config | 12 ++++++++++++
4 files changed, 27 insertions(+), 12 deletions(-)
create mode 100644 src/aspire.config.json
create mode 100644 src/nuget.config
diff --git a/src/AdminAssistant.Aspire.AppHost/AdminAssistant.Aspire.AppHost.csproj b/src/AdminAssistant.Aspire.AppHost/AdminAssistant.Aspire.AppHost.csproj
index 36eb3e03..45b25bea 100644
--- a/src/AdminAssistant.Aspire.AppHost/AdminAssistant.Aspire.AppHost.csproj
+++ b/src/AdminAssistant.Aspire.AppHost/AdminAssistant.Aspire.AppHost.csproj
@@ -1,4 +1,4 @@
-
+
Exe
1825de71-4325-43b0-8546-5a1e00ac421d
@@ -12,7 +12,6 @@
-
diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index fc81b40d..8f80d002 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -9,14 +9,13 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -38,7 +37,7 @@
-
+
@@ -90,7 +89,7 @@
-
+
diff --git a/src/aspire.config.json b/src/aspire.config.json
new file mode 100644
index 00000000..3e2ce03e
--- /dev/null
+++ b/src/aspire.config.json
@@ -0,0 +1,5 @@
+{
+ "appHost": {
+ "path": "AdminAssistant.Aspire.AppHost/AdminAssistant.Aspire.AppHost.csproj"
+ }
+}
\ No newline at end of file
diff --git a/src/nuget.config b/src/nuget.config
new file mode 100644
index 00000000..993d13d0
--- /dev/null
+++ b/src/nuget.config
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
From 7ed155b41bf1dea205e99718bc8639f8858e6419 Mon Sep 17 00:00:00 2001
From: Simon Geering <25039878+SimonGeering@users.noreply.github.com>
Date: Sun, 5 Jul 2026 16:27:05 +0100
Subject: [PATCH 02/16] Updated test packages
---
src/Directory.Packages.props | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index 8f80d002..6e956f98 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -2,8 +2,7 @@
-
-
+
@@ -68,14 +67,14 @@
-
+
-
+
@@ -95,4 +94,4 @@
-
+
\ No newline at end of file
From 65f4ac32eb3f26b00af3c69d5fb421b425fa0c95 Mon Sep 17 00:00:00 2001
From: Simon Geering <25039878+SimonGeering@users.noreply.github.com>
Date: Sun, 5 Jul 2026 16:31:00 +0100
Subject: [PATCH 03/16] Updated OpenTelemetry packages
---
src/Directory.Packages.props | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index 6e956f98..73da79ba 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -43,12 +43,12 @@
-
+
-
+
-
+
From ec2e1b6f8865115ae7e72b3c19257f9ae38174a2 Mon Sep 17 00:00:00 2001
From: Simon Geering <25039878+SimonGeering@users.noreply.github.com>
Date: Sun, 5 Jul 2026 16:31:58 +0100
Subject: [PATCH 04/16] Updated Swashbuckle.AspNetCore to latest
---
src/Directory.Packages.props | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index 73da79ba..81d336c1 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -90,8 +90,8 @@
-
-
+
+
\ No newline at end of file
From a563eb7db4e4f4406da1273636c900d94fee0641 Mon Sep 17 00:00:00 2001
From: Simon Geering <25039878+SimonGeering@users.noreply.github.com>
Date: Sun, 5 Jul 2026 16:33:40 +0100
Subject: [PATCH 05/16] updated Avalonia packages to latest versions
---
src/Directory.Packages.props | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index 81d336c1..da9d5f5a 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -54,10 +54,10 @@
-
-
-
-
+
+
+
+
From cf99bfb323c8fc987ae3d8e47e7cec53b63fb964 Mon Sep 17 00:00:00 2001
From: Simon Geering <25039878+SimonGeering@users.noreply.github.com>
Date: Sun, 5 Jul 2026 16:35:23 +0100
Subject: [PATCH 06/16] upgraded MudBlazor to latest version
---
src/Directory.Packages.props | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index da9d5f5a..8ec44879 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -92,6 +92,6 @@
-
+
\ No newline at end of file
From f892ea941f6680330293219322733ff2345e104d Mon Sep 17 00:00:00 2001
From: Simon Geering <25039878+SimonGeering@users.noreply.github.com>
Date: Sun, 5 Jul 2026 16:51:55 +0100
Subject: [PATCH 07/16] Removed FluentValidation.AspNetCore as it is depricated
---
src/AdminAssistant.Api/AdminAssistant.Api.csproj | 2 +-
src/AdminAssistant.Api/Program.cs | 6 +-----
src/Directory.Packages.props | 1 -
3 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/src/AdminAssistant.Api/AdminAssistant.Api.csproj b/src/AdminAssistant.Api/AdminAssistant.Api.csproj
index 36b49924..0fad1bc0 100644
--- a/src/AdminAssistant.Api/AdminAssistant.Api.csproj
+++ b/src/AdminAssistant.Api/AdminAssistant.Api.csproj
@@ -14,7 +14,7 @@
-
+
diff --git a/src/AdminAssistant.Api/Program.cs b/src/AdminAssistant.Api/Program.cs
index eb3832f7..e57bc056 100644
--- a/src/AdminAssistant.Api/Program.cs
+++ b/src/AdminAssistant.Api/Program.cs
@@ -1,6 +1,5 @@
using Ardalis.GuardClauses;
using FluentValidation;
-using FluentValidation.AspNetCore;
using Microsoft.AspNetCore.ResponseCompression;
using Microsoft.OpenApi;
@@ -26,10 +25,7 @@
// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi
builder.Services.AddOpenApi();
-
-builder.Services.AddFluentValidationAutoValidation()
- .AddFluentValidationClientsideAdapters()
- .AddValidatorsFromAssemblyContaining();
+builder.Services.AddValidatorsFromAssemblyContaining();
builder.Services.AddSwaggerGen(c =>
{
diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index 8ec44879..b0e92fd6 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -89,7 +89,6 @@
-
From b9c2db33a3742db6f6614c4c5e9e0e1c33bdd50a Mon Sep 17 00:00:00 2001
From: Simon Geering <25039878+SimonGeering@users.noreply.github.com>
Date: Sun, 5 Jul 2026 16:54:13 +0100
Subject: [PATCH 08/16] Updated SonarAnalyzer.CSharp to latest
---
src/Directory.Packages.props | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index b0e92fd6..b22f7d39 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -23,7 +23,7 @@
-
+
From a7ae5f4074953f061152380207256242a1aca043 Mon Sep 17 00:00:00 2001
From: Simon Geering <25039878+SimonGeering@users.noreply.github.com>
Date: Sun, 5 Jul 2026 16:55:40 +0100
Subject: [PATCH 09/16] Updated Refit.HttpClientFactory to latest version
---
src/Directory.Packages.props | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index b22f7d39..7f557a81 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -22,7 +22,7 @@
-
+
From 7664f07f850f077a2f2b615ef5e40a78b6e016a8 Mon Sep 17 00:00:00 2001
From: Simon Geering <25039878+SimonGeering@users.noreply.github.com>
Date: Sun, 5 Jul 2026 17:10:11 +0100
Subject: [PATCH 10/16] Added references to
Microsoft.EntityFrameworkCore.Relational Resolves version conflict exception
in migration service.
---
.../AdminAssistant.Aspire.DatabaseMigrationService.csproj | 1 +
.../AdminAssistant.Infrastructure.csproj | 1 +
src/AdminAssistant.Test/AdminAssistant.Test.csproj | 1 +
src/Directory.Packages.props | 1 +
4 files changed, 4 insertions(+)
diff --git a/src/AdminAssistant.Aspire.DatabaseMigrationService/AdminAssistant.Aspire.DatabaseMigrationService.csproj b/src/AdminAssistant.Aspire.DatabaseMigrationService/AdminAssistant.Aspire.DatabaseMigrationService.csproj
index 41b26c69..78552205 100644
--- a/src/AdminAssistant.Aspire.DatabaseMigrationService/AdminAssistant.Aspire.DatabaseMigrationService.csproj
+++ b/src/AdminAssistant.Aspire.DatabaseMigrationService/AdminAssistant.Aspire.DatabaseMigrationService.csproj
@@ -15,6 +15,7 @@
+
diff --git a/src/AdminAssistant.Infrastructure/AdminAssistant.Infrastructure.csproj b/src/AdminAssistant.Infrastructure/AdminAssistant.Infrastructure.csproj
index 49e97d6d..5d09b952 100644
--- a/src/AdminAssistant.Infrastructure/AdminAssistant.Infrastructure.csproj
+++ b/src/AdminAssistant.Infrastructure/AdminAssistant.Infrastructure.csproj
@@ -22,6 +22,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/src/AdminAssistant.Test/AdminAssistant.Test.csproj b/src/AdminAssistant.Test/AdminAssistant.Test.csproj
index 4798ff70..ad41e39b 100644
--- a/src/AdminAssistant.Test/AdminAssistant.Test.csproj
+++ b/src/AdminAssistant.Test/AdminAssistant.Test.csproj
@@ -15,6 +15,7 @@
+
diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index 7f557a81..aa003237 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -18,6 +18,7 @@
+
From 15be4a3596532896d81b52bb4f16b6a8ac1753a0 Mon Sep 17 00:00:00 2001
From: Simon Geering <25039878+SimonGeering@users.noreply.github.com>
Date: Sun, 5 Jul 2026 22:52:34 +0100
Subject: [PATCH 11/16] Migrated to likec4
---
models/c4/AdminAssistant.dsl | 107 -----------
models/likec4/AdminAssistant.c4 | 11 ++
models/likec4/model/model.c4 | 182 +++++++++++++++++++
models/likec4/specification/specification.c4 | 34 ++++
src/AdminAssistant.code-workspace | 5 +-
5 files changed, 230 insertions(+), 109 deletions(-)
delete mode 100644 models/c4/AdminAssistant.dsl
create mode 100644 models/likec4/AdminAssistant.c4
create mode 100644 models/likec4/model/model.c4
create mode 100644 models/likec4/specification/specification.c4
diff --git a/models/c4/AdminAssistant.dsl b/models/c4/AdminAssistant.dsl
deleted file mode 100644
index f8416dfb..00000000
--- a/models/c4/AdminAssistant.dsl
+++ /dev/null
@@ -1,107 +0,0 @@
-# See https://c4model.com/
-# Ref https://github.com/structurizr/dsl/blob/master/docs/language-reference.md
-workspace "Admin Assistant" {
-
- model {
- user = person "User" "A user of my software system."
-
- enterprise "Admin Assistant" {
-
- BlazorClient = softwareSystem "Blazor Client" "Blazor Client Web App" "WebApp" {
- group AccountsModule {
- AccountsScreen = container "Accounts Screen" "" "" ""
- }
- }
-
- BlazorServer = softwareSystem "Blazor Server" "Blazor Server Web API" {
-
- group AccountsModule {
- BankAccountController = container "Bank Account Controller" {
- PutBankAccount = component "Put BankAccount" "Update an existing BankAccount." "Endpoint" ""
- PostBankAccount = component "Post BankAccount" "Creates a new BankAccount." "Endpoint" ""
- }
- BankAccountInfoController = container "Bank Account Info Controller"
- BankAccountTypeController = container "Bank Account Type Controller"
- }
-
- group CoreModule {
-
- }
- }
-
- DatabaseServer = softwareSystem "Database Server" "SQL Server" "DatabaseServer" {
- AdminAssistantDatabase = container "Admin Assistant Database" "" "SQL Server Database"
- }
- }
-
- user -> BlazorClient "Uses"
- BlazorClient -> BlazorServer "Rest/Json"
- BlazorServer -> DatabaseServer "TCP/IP"
- AccountsScreen -> BankAccountController "Rest/Json"
- }
-
- views {
-
- systemLandscape {
- include *
- autoLayout
- }
-
- systemContext BlazorClient {
- include *
- autoLayout
- }
-
- systemContext BlazorServer {
- include *
- autoLayout
- }
-
- container BlazorServer
- include *
- autoLayout
- }
-
- component BankAccountController
- include *
- autoLayout
- }
-
- systemContext DatabaseServer {
- include *
- autoLayout
- }
-
- container DatabaseServer
- include *
- autoLayout
- }
-
- component AdminAssistantDatabase
- include *
- autoLayout
- }
-
- styles {
- element "Software System" {
- background #1168bd
- color #ffffff
- }
- element "WebApp" {
- shape WebBrowser
- background #1168bd
- color #ffffff
- }
- element "DatabaseServer" {
- shape Cylinder
- background #1168bd
- color #ffffff
- }
- element "Person" {
- shape person
- background #08427b
- color #ffffff
- }
- }
- }
-}
diff --git a/models/likec4/AdminAssistant.c4 b/models/likec4/AdminAssistant.c4
new file mode 100644
index 00000000..74807c9c
--- /dev/null
+++ b/models/likec4/AdminAssistant.c4
@@ -0,0 +1,11 @@
+
+views {
+ view index {
+
+ include adminAssistant
+ include user
+ include admin
+
+ include adminAssistant.*
+ }
+}
diff --git a/models/likec4/model/model.c4 b/models/likec4/model/model.c4
new file mode 100644
index 00000000..ec344655
--- /dev/null
+++ b/models/likec4/model/model.c4
@@ -0,0 +1,182 @@
+model {
+
+ user = actor {
+ title 'User'
+ summary 'A user of the system.'
+ -> webApp "Uses" { technology "HTTPS" }
+ -> nativeApp "Uses"
+ -> tuiApp "Uses"
+ }
+ admin = actor {
+ title 'Administrator'
+ summary 'An administrator of the system.'
+ -> webApp "Uses" { technology "HTTPS" }
+ -> nativeApp "Uses"
+ -> tuiApp "Uses"
+ -> redisInsight "Uses" { technology "HTTPS" }
+ -> pgadmin "Uses" { technology "HTTPS" }
+ -> messageBusAdminDashboard "Uses" { technology "HTTPS" }
+ }
+
+ // # See https://c4model.com/
+ // # Ref https://github.com/structurizr/dsl/blob/master/docs/language-reference.md
+
+ adminAssistant = enterprise "Admin Assistant" {
+
+ webApp = softwareSystem {
+ title "AdminAssistant.Web"
+ summary "Modular Web App UI"
+ technology "Blazor Server on .Net 10"
+ style {
+ shape browser
+ }
+
+ group AccountsModule {
+ AccountsScreen = container "Accounts Screen"
+ }
+
+ -> keyCloak "IAM" { technology "HTTPS" }
+ -> api "Uses" { technology "HTTPS" }
+ }
+
+ api = softwareSystem {
+ title "AdminAssistant.Api"
+ summary "Modular REST API"
+ technology "ASP.Net Web API on .Net 10"
+
+ group AccountsModule {
+ BankAccountController = container "Bank Account Controller" {
+ PutBankAccount = component "Put BankAccount" "Update an existing BankAccount." "Endpoint" ""
+ PostBankAccount = component "Post BankAccount" "Creates a new BankAccount." "Endpoint" ""
+ }
+ BankAccountInfoController = container "Bank Account Info Controller"
+ BankAccountTypeController = container "Bank Account Type Controller"
+ }
+
+ group CoreModule {
+
+ }
+ -> postgres.applicationDatabase "Uses" { technology "Npgsql" }
+ -> cache "Uses" { technology "Redis" }
+ -> messageBus "Uses" { technology "AMQP" }
+ -> keyCloak "OAUTH" { technology "HTTPS" }
+ }
+
+ keyCloak = softwareSystem {
+ title "Keycloak"
+ summary "Identity and Access Management Server"
+ technology "Keycloak on Wildfly"
+ }
+
+ postgres = softwareSystem {
+ title "PostgreSQL"
+ summary "Database Server"
+ technology "PostgreSQL"
+ style {
+ shape storage
+ }
+
+ applicationDatabase = container {
+ title "Admin Assistant Database"
+ summary "Main Application Database for Admin Assistant"
+ technology "PostgreSQL Database"
+ style {
+ shape storage
+ }
+ }
+
+ scheduledJobDatabase = container {
+ title "Scheduled Job Database"
+ summary "Hangfire Job Scheduler Management Database"
+ technology "PostgreSQL Database"
+ style {
+ shape storage
+ }
+ }
+ }
+
+ jobScheduler = softwareSystem {
+ title "AdminAssistant.JobScheduler"
+ summary "Job Scheduler"
+ technology "Hangfire on .Net 10"
+ -> postgres.scheduledJobDatabase "Uses" { technology "Npgsql" }
+ -> api "Uses" { technology "HTTPS" }
+ -> keyCloak "OAUTH" { technology "HTTPS" }
+ }
+
+ pgadmin = softwareSystem {
+ title "pgAdmin"
+ summary "Database Admin Dashboard"
+ technology "pgAdmin"
+ style {
+ shape browser
+ }
+ -> postgres.scheduledJobDatabase "Uses" { technology "Npgsql" }
+ -> postgres.applicationDatabase "Uses" { technology "Npgsql" }
+ }
+
+ cache = softwareSystem {
+ title "Redis"
+ summary "Data Cache"
+ technology "Redis"
+ style {
+ shape storage
+ }
+ }
+
+ redisInsight = softwareSystem {
+ title "Redis Insight"
+ summary "Redis Admin Dashboard"
+ technology "Redis Insight"
+ style {
+ shape browser
+ }
+ -> cache "Uses" { technology "Redis" }
+ }
+
+ migrations = softwareSystem {
+ title "Database Migrations"
+ summary "Database Migration Service"
+ technology "ASP.Net Worker Service on .Net 10"
+ -> postgres.applicationDatabase "Uses" { technology "Npgsql" }
+ }
+
+ messageBus = softwareSystem {
+ title "RabbitMQ"
+ summary "Message Bus"
+ technology "RabbitMQ"
+ style {
+ shape queue
+ }
+ }
+
+ messageBusAdminDashboard = softwareSystem {
+ title "RabbitMQ Admin Dashboard"
+ summary "RabbitMQ Admin Dashboard"
+ technology "RabbitMQ Management Plugin"
+ style {
+ shape browser
+ }
+ -> messageBus "Uses" { technology "AMQP" }
+ }
+
+ nativeApp = softwareSystem {
+ title "AdminAssistant.AvaloniaApp"
+ summary "Modular Desktop App UI"
+ technology "Avalonia on .Net 10"
+ style {
+ shape mobile
+ }
+ -> keyCloak "IAM" { technology "HTTPS" }
+ -> api "Uses" { technology "HTTPS" }
+ }
+
+ tuiApp = softwareSystem {
+ title "AdminAssistant.Tui"
+ summary "Modular Terminal UI"
+ technology "Terminal UI on .Net 10"
+ -> keyCloak "IAM" { technology "HTTPS" }
+ -> api "Uses" { technology "HTTPS" }
+ }
+ }
+}
diff --git a/models/likec4/specification/specification.c4 b/models/likec4/specification/specification.c4
new file mode 100644
index 00000000..febf78d9
--- /dev/null
+++ b/models/likec4/specification/specification.c4
@@ -0,0 +1,34 @@
+specification {
+ element actor {
+ style {
+ shape person
+ }
+ }
+ element enterprise {
+ style {
+ shape rectangle
+ }
+ }
+
+ element group {
+ style {
+ shape rectangle
+ }
+ }
+
+ element softwareSystem {
+ style {
+ shape rectangle
+ }
+ }
+ element container {
+ style {
+ shape rectangle
+ }
+ }
+ element component {
+ style {
+ shape component
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AdminAssistant.code-workspace b/src/AdminAssistant.code-workspace
index d364d3ea..64dde5da 100644
--- a/src/AdminAssistant.code-workspace
+++ b/src/AdminAssistant.code-workspace
@@ -158,7 +158,6 @@
"recommendations": [
"ms-dotnettools.csdevkit", // .NET Dev Kit
"ms-dotnettools.csharp", // C# for Visual Studio Code
- "ms-dotnettools.vscodeintellicode-csharp", // IntelliCode for C#
"ms-dotnettools.blazorwasm-companion", // Blazor WebAssembly Debugging Extension
"ms-mssql.mssql", // SQL Server (mssql)
"streetsidesoftware.code-spell-checker", // Code Spell Checker
@@ -176,12 +175,14 @@
"pflannery.vscode-versionlens", // Version Lens
"vscode-icons-team.vscode-icons", // vscode-icons
"ms-azuretools.vscode-docker", // Docker Extension
- "systemticks.c4-dsl-extension", // C4 DSL Extension (for C4 model diagrams)
+ "likec4.likec4-vscode", // C4 DSL Extension (for C4 model diagrams)
"ms-ossdata.vscode-postgresql", // PostgreSQL Extension
"redhat.vscode-xml" // XML Language Support and formatter
],
"unwantedRecommendations": [
+ "systemticks.c4-dsl-extension",
"ms-python.python",
+ "ms-dotnettools.vscodeintellicode-csharp",
"visualstudioexptteam.intellicode-api-usage-examples", // Depricated - IntelliCode API Usage Examples
"visualstudioexptteam.vscodeintellicode", // Depricated - IntelliCode
"visualstudioexptteam.vscodeintellicode-completions", // Depricated - IntelliCode Completions
From 44fe4b1c858de161524b63eb91bbaca06f851af9 Mon Sep 17 00:00:00 2001
From: Simon Geering <25039878+SimonGeering@users.noreply.github.com>
Date: Sat, 25 Jul 2026 21:44:49 +0100
Subject: [PATCH 12/16] WIP warning fixes
---
src/.editorconfig | 27 +++++++++-----
.../DependencyInjectionExtensions.cs | 1 +
.../AccountsModule/AccountsModuleMapper.cs | 3 +-
.../Shared/UI/MainWindowViewModel.cs | 2 ++
.../AdminAssistant.Web.csproj | 26 --------------
.../AdminModule/AdminWidgetComponentBase.cs | 2 ++
src/AdminAssistant.code-workspace | 21 +++--------
.../ApplicationBaseExceptionBase.cs | 8 +++--
.../Configuration/ConfigurationException.cs | 8 +++--
.../Helpers/AssemblyAttributeHelper.cs | 36 ++++++++++---------
10 files changed, 63 insertions(+), 71 deletions(-)
diff --git a/src/.editorconfig b/src/.editorconfig
index 97aa66f5..16765f1d 100644
--- a/src/.editorconfig
+++ b/src/.editorconfig
@@ -348,29 +348,29 @@ dotnet_naming_style.instance_field_style.capitalization = camel_case
dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.interface.required_modifiers =
+dotnet_naming_symbols.interface.required_modifiers =
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.types.required_modifiers =
+dotnet_naming_symbols.types.required_modifiers =
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.non_field_members.required_modifiers =
+dotnet_naming_symbols.non_field_members.required_modifiers =
# ------------------------------------------
# Naming styles
# ------------------------------------------
-dotnet_naming_style.pascal_case.required_prefix =
-dotnet_naming_style.pascal_case.required_suffix =
-dotnet_naming_style.pascal_case.word_separator =
+dotnet_naming_style.pascal_case.required_prefix =
+dotnet_naming_style.pascal_case.required_suffix =
+dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.capitalization = pascal_case
dotnet_naming_style.begins_with_i.required_prefix = I
-dotnet_naming_style.begins_with_i.required_suffix =
-dotnet_naming_style.begins_with_i.word_separator =
+dotnet_naming_style.begins_with_i.required_suffix =
+dotnet_naming_style.begins_with_i.word_separator =
dotnet_naming_style.begins_with_i.capitalization = pascal_case
# ------------------------------------------
@@ -404,3 +404,14 @@ csharp_style_prefer_not_pattern = true:suggestion
# IDE0290: Use primary constructor
dotnet_diagnostic.IDE0290.severity = warning
+
+# Allow explicit boolean comparisons (e.g., == false)
+dotnet_diagnostic.S1125.severity = none
+# Allow TODO comments
+dotnet_diagnostic.S1135.severity = none
+# Allow ToLowerInvariant for route generation
+dotnet_diagnostic.S1643.severity = none
+
+[src/AdminAssistant.UI/**/*.cs]
+# UI layer uses culture-aware string comparisons intentionally, don't warn about Ordinal comparisons.
+dotnet_diagnostic.CA1309.severity = none
diff --git a/src/AdminAssistant.Api.Client/DependencyInjectionExtensions.cs b/src/AdminAssistant.Api.Client/DependencyInjectionExtensions.cs
index 1339158d..04ae5d3c 100644
--- a/src/AdminAssistant.Api.Client/DependencyInjectionExtensions.cs
+++ b/src/AdminAssistant.Api.Client/DependencyInjectionExtensions.cs
@@ -36,6 +36,7 @@ public static IServiceCollection AddAdminAssistantApiClient(this IServiceCollect
return services;
}
+ #pragma warning disable S3242 // SonarCloud: return type is intentionally IServiceCollection for DI chaining.
private static IServiceCollection AddRefitClientWithBaseUri(this IServiceCollection services, Uri baseUri)
where TClient : class
{
diff --git a/src/AdminAssistant.Api.Contracts/Modules/AccountsModule/AccountsModuleMapper.cs b/src/AdminAssistant.Api.Contracts/Modules/AccountsModule/AccountsModuleMapper.cs
index c079936e..97e43414 100644
--- a/src/AdminAssistant.Api.Contracts/Modules/AccountsModule/AccountsModuleMapper.cs
+++ b/src/AdminAssistant.Api.Contracts/Modules/AccountsModule/AccountsModuleMapper.cs
@@ -1,3 +1,4 @@
+using System.Globalization;
using AdminAssistant.Modules.AccountsModule;
using AdminAssistant.Modules.CoreModule;
@@ -105,7 +106,7 @@ public static IEnumerable ToBankAccountTransa
Balance = x.Balance,
Description = x.Description,
Notes = x.Notes,
- TransactionDate = x.TransactionDate.ToString(Constants.DateFormat)
+ TransactionDate = x.TransactionDate.ToString(Constants.DateFormat, CultureInfo.InvariantCulture)
});
public static IEnumerable ToBankAccountInfoResponseDtoEnumeration(this IEnumerable source)
diff --git a/src/AdminAssistant.UI/Shared/UI/MainWindowViewModel.cs b/src/AdminAssistant.UI/Shared/UI/MainWindowViewModel.cs
index cdaedc44..ff622f56 100644
--- a/src/AdminAssistant.UI/Shared/UI/MainWindowViewModel.cs
+++ b/src/AdminAssistant.UI/Shared/UI/MainWindowViewModel.cs
@@ -16,6 +16,7 @@ public interface IMainWindowViewModel : IViewModelBase
void OnSelectedModeChanged(ModeSelectionItem selectedMode);
void OnSelectedModuleChanged(ModuleSelectionItem selectedModule);
}
+#pragma warning disable CA1812 // Instantiated via DI
internal sealed class MainWindowViewModel : ViewModelBase, IMainWindowViewModel
{
private const string SelectedModuleStyle = "active";
@@ -109,3 +110,4 @@ public void OnSelectedModuleChanged(ModuleSelectionItem selectedModule)
public string FooterText { get; }
}
+#pragma warning restore CA1812
diff --git a/src/AdminAssistant.Web/AdminAssistant.Web.csproj b/src/AdminAssistant.Web/AdminAssistant.Web.csproj
index 2f1782b1..ef072825 100644
--- a/src/AdminAssistant.Web/AdminAssistant.Web.csproj
+++ b/src/AdminAssistant.Web/AdminAssistant.Web.csproj
@@ -30,32 +30,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
wwwroot/service-worker.published.js
diff --git a/src/AdminAssistant.Web/Modules/AdminModule/AdminWidgetComponentBase.cs b/src/AdminAssistant.Web/Modules/AdminModule/AdminWidgetComponentBase.cs
index b49806dc..f74229d1 100644
--- a/src/AdminAssistant.Web/Modules/AdminModule/AdminWidgetComponentBase.cs
+++ b/src/AdminAssistant.Web/Modules/AdminModule/AdminWidgetComponentBase.cs
@@ -2,7 +2,9 @@
namespace AdminAssistant.Blazor.Client.Modules.AdminModule;
+#pragma warning disable CA1515 // Class must be public as used for blazor pages / components
public abstract class AdminWidgetComponentBase
+#pragma warning restore CA1515
: WidgetComponentBase
where TRuntimeViewModel : class, IViewModelBase
where TDesignerViewModel : class, TRuntimeViewModel
diff --git a/src/AdminAssistant.code-workspace b/src/AdminAssistant.code-workspace
index 64dde5da..4b64563b 100644
--- a/src/AdminAssistant.code-workspace
+++ b/src/AdminAssistant.code-workspace
@@ -39,6 +39,10 @@
".vscode",
"**/AdminAssistant.code-workspace"
],
+ "cSpell.ignoreWords": [
+ "Allman",
+ "extern"
+ ],
"cSpell.words": [
"Admin",
"analyzers",
@@ -58,6 +62,7 @@
"geering",
"HSTS",
"incase",
+ "IntelliCode",
"markdownlint",
"MediatR",
"Newtonsoft",
@@ -83,19 +88,6 @@
"webassembly",
"Xunit"
],
- "todo-tree.filtering.excludeGlobs": [
- "**/vendor/**",
- "**/node_modules/**",
- "**/dist/**",
- "**/bower_components/**",
- "**/build/**",
- "**/.vscode/**",
- "**/.github/**",
- "**/_output/**",
- "**/*.min.*",
- "**/*.map",
- "**/docs/js/*mermaid*"
- ],
"sonarlint.connectedMode.project": {
"connectionId": "simongeering",
"projectKey": "SimonGeering_AdminAssistant"
@@ -163,14 +155,11 @@
"streetsidesoftware.code-spell-checker", // Code Spell Checker
"ryanluker.vscode-coverage-gutters", // Coverage Gutters
"editorconfig.editorconfig", // EditorConfig for VS Code
- "rexebin.f12-open-file", // F12 Open File
"donjayamanne.githistory", // Git History
"eamodio.gitlens", // GitLens — Git supercharged
"yzhang.markdown-all-in-one", // Markdown All in One
"davidanson.vscode-markdownlint", // MarkdownLint
"christian-kohler.path-intellisense", // Path Intellisense
- "wayou.vscode-todo-highlight", // TODO Highlight
- "gruntfuggly.todo-tree", // Todo Tree
"shardulm94.trailing-spaces", // Trailing Spaces
"pflannery.vscode-versionlens", // Version Lens
"vscode-icons-team.vscode-icons", // vscode-icons
diff --git a/src/SimonGeering.Framework/ApplicationBaseExceptionBase.cs b/src/SimonGeering.Framework/ApplicationBaseExceptionBase.cs
index 98377c78..f9a3eb6a 100644
--- a/src/SimonGeering.Framework/ApplicationBaseExceptionBase.cs
+++ b/src/SimonGeering.Framework/ApplicationBaseExceptionBase.cs
@@ -1,4 +1,8 @@
namespace SimonGeering.Framework;
-public abstract class ApplicationBaseException(string? message)
- : Exception(message);
+public abstract class ApplicationBaseException : Exception
+{
+ protected ApplicationBaseException() : base() {}
+ protected ApplicationBaseException(string? message) : base(message) {}
+ protected ApplicationBaseException(string message, Exception innerException) : base(message, innerException) {}
+}
diff --git a/src/SimonGeering.Framework/Configuration/ConfigurationException.cs b/src/SimonGeering.Framework/Configuration/ConfigurationException.cs
index 1ece60f9..7cc5d69c 100644
--- a/src/SimonGeering.Framework/Configuration/ConfigurationException.cs
+++ b/src/SimonGeering.Framework/Configuration/ConfigurationException.cs
@@ -1,4 +1,8 @@
namespace SimonGeering.Framework.Configuration;
-public class ConfigurationException(string? message)
- : ApplicationBaseException(message) { }
+public class ConfigurationException : ApplicationBaseException
+{
+ protected ConfigurationException() : base() {}
+ protected ConfigurationException(string? message) : base(message) {}
+ protected ConfigurationException(string message, Exception innerException) : base(message, innerException) {}
+}
diff --git a/src/SimonGeering.Framework/Helpers/AssemblyAttributeHelper.cs b/src/SimonGeering.Framework/Helpers/AssemblyAttributeHelper.cs
index 1aaa4c37..79c914c8 100644
--- a/src/SimonGeering.Framework/Helpers/AssemblyAttributeHelper.cs
+++ b/src/SimonGeering.Framework/Helpers/AssemblyAttributeHelper.cs
@@ -27,29 +27,31 @@ public class AssemblyAttributeHelper : IAssemblyAttributeHelper
{
public TAttribute GetCustomAssemblyAttribute(Assembly assembly)
where TAttribute : Attribute
- => GetAttribute(assembly);
+ => GetAttribute(assembly)
+ ?? throw new InvalidOperationException($"Assembly does not contain attribute {typeof(TAttribute).Name}");
public TProperty GetCustomAssemblyAttributeProperty(Func propertyHelper, Assembly assembly)
where TAttribute : Attribute
- => GetAttributeProperty(assembly, propertyHelper);
+ => GetAttributeProperty(assembly, propertyHelper)
+ ?? throw new InvalidOperationException($"Assembly does not contain attribute {typeof(TAttribute).Name}");
public string GetCompany(Assembly assembly)
- => GetAttributeProperty(assembly, (AssemblyCompanyAttribute a) => a.Company);
+ => GetAttributeProperty(assembly, (AssemblyCompanyAttribute a) => a.Company) ?? string.Empty;
public string GetCopyright(Assembly assembly)
- => GetAttributeProperty(assembly, (AssemblyCopyrightAttribute a) => a.Copyright);
+ => GetAttributeProperty(assembly, (AssemblyCopyrightAttribute a) => a.Copyright) ?? string.Empty;
public string GetConfiguration(Assembly assembly)
- => GetAttributeProperty(assembly, (AssemblyConfigurationAttribute a) => a.Configuration);
+ => GetAttributeProperty(assembly, (AssemblyConfigurationAttribute a) => a.Configuration) ?? string.Empty;
public string GetCulture(Assembly assembly)
- => GetAttributeProperty(assembly, (AssemblyCultureAttribute a) => a.Culture);
+ => GetAttributeProperty(assembly, (AssemblyCultureAttribute a) => a.Culture) ?? string.Empty;
public string GetDescription(Assembly assembly)
- => GetAttributeProperty(assembly, (AssemblyDescriptionAttribute a) => a.Description);
+ => GetAttributeProperty(assembly, (AssemblyDescriptionAttribute a) => a.Description) ?? string.Empty;
public string GetFileVersion(Assembly assembly)
- => GetAttributeProperty(assembly, (AssemblyFileVersionAttribute a) => a.Version);
+ => GetAttributeProperty(assembly, (AssemblyFileVersionAttribute a) => a.Version) ?? string.Empty;
public string GetFullName(Assembly assembly)
{
@@ -64,28 +66,30 @@ public string GetName(Assembly assembly)
}
public string GetProduct(Assembly assembly)
- => GetAttributeProperty(assembly, (AssemblyProductAttribute a) => a.Product);
+ => GetAttributeProperty(assembly, (AssemblyProductAttribute a) => a.Product) ?? string.Empty;
public string GetTitle(Assembly assembly)
- => GetAttributeProperty(assembly, (AssemblyTitleAttribute a) => a.Title);
+ => GetAttributeProperty(assembly, (AssemblyTitleAttribute a) => a.Title) ?? string.Empty;
public string GetTrademark(Assembly assembly)
- => GetAttributeProperty(assembly, (AssemblyTrademarkAttribute a) => a.Trademark);
+ => GetAttributeProperty(assembly, (AssemblyTrademarkAttribute a) => a.Trademark) ?? string.Empty;
public string GetVersion(Assembly assembly)
- => GetAttributeProperty(assembly, (AssemblyVersionAttribute a) => a.Version);
+ => GetAttributeProperty(assembly, a => a.Version) ?? string.Empty;
- private static TAttribute GetAttribute(Assembly assembly)
+ private static TAttribute? GetAttribute(Assembly assembly)
where TAttribute : Attribute
{
ArgumentNullException.ThrowIfNull(assembly);
- return (TAttribute)assembly.GetCustomAttributes(typeof(TAttribute), true).FirstOrDefault();
+ return assembly.GetCustomAttributes(typeof(TAttribute), true)
+ .Cast()
+ .FirstOrDefault();
}
- private static TProperty GetAttributeProperty(Assembly assembly, Func propertyHelper)
+ private static TProperty? GetAttributeProperty(Assembly assembly, Func propertyHelper)
where TAttribute : Attribute
{
var attribute = GetAttribute(assembly);
- return attribute == null ? default(TProperty) : propertyHelper.Invoke(attribute);
+ return attribute is null ? default : propertyHelper(attribute);
}
}
From 94e09918d4d221912442e954ab2dfd2b39497067 Mon Sep 17 00:00:00 2001
From: Simon Geering <25039878+SimonGeering@users.noreply.github.com>
Date: Tue, 11 Aug 2026 20:37:50 +0100
Subject: [PATCH 13/16] Enable deterministic restore and add initial NuGet
lockfiles
---
.../packages.lock.json | 253 ++++
.../packages.lock.json | 93 ++
src/AdminAssistant.Api/packages.lock.json | 507 +++++++
.../packages.lock.json | 594 ++++++++
.../packages.lock.json | 1085 ++++++++++++++
.../packages.lock.json | 846 +++++++++++
.../packages.lock.json | 232 +++
.../packages.lock.json | 668 +++++++++
.../packages.lock.json | 52 +
.../packages.lock.json | 48 +
.../packages.lock.json | 739 ++++++++++
.../packages.lock.json | 1077 ++++++++++++++
src/AdminAssistant.Retro/packages.lock.json | 733 ++++++++++
src/AdminAssistant.Test/packages.lock.json | 1265 +++++++++++++++++
src/AdminAssistant.UI/packages.lock.json | 288 ++++
src/AdminAssistant.Web/packages.lock.json | 484 +++++++
src/Directory.Build.props | 5 +
.../packages.lock.json | 205 +++
src/SimonGeering.Framework/packages.lock.json | 19 +
19 files changed, 9193 insertions(+)
create mode 100644 src/AdminAssistant.Api.Client/packages.lock.json
create mode 100644 src/AdminAssistant.Api.Contracts/packages.lock.json
create mode 100644 src/AdminAssistant.Api/packages.lock.json
create mode 100644 src/AdminAssistant.Application/packages.lock.json
create mode 100644 src/AdminAssistant.Aspire.AppHost/packages.lock.json
create mode 100644 src/AdminAssistant.Aspire.DatabaseMigrationService/packages.lock.json
create mode 100644 src/AdminAssistant.Aspire.ServiceDefaults/packages.lock.json
create mode 100644 src/AdminAssistant.AvaloniaApp/packages.lock.json
create mode 100644 src/AdminAssistant.DomainModel/packages.lock.json
create mode 100644 src/AdminAssistant.Infrastructure.ClientSide/packages.lock.json
create mode 100644 src/AdminAssistant.Infrastructure/packages.lock.json
create mode 100644 src/AdminAssistant.IntegrationTests/packages.lock.json
create mode 100644 src/AdminAssistant.Retro/packages.lock.json
create mode 100644 src/AdminAssistant.Test/packages.lock.json
create mode 100644 src/AdminAssistant.UI/packages.lock.json
create mode 100644 src/AdminAssistant.Web/packages.lock.json
create mode 100644 src/SimonGeering.Framework.Test/packages.lock.json
create mode 100644 src/SimonGeering.Framework/packages.lock.json
diff --git a/src/AdminAssistant.Api.Client/packages.lock.json b/src/AdminAssistant.Api.Client/packages.lock.json
new file mode 100644
index 00000000..607c78a3
--- /dev/null
+++ b/src/AdminAssistant.Api.Client/packages.lock.json
@@ -0,0 +1,253 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Refit.HttpClientFactory": {
+ "type": "Direct",
+ "requested": "[13.1.0, )",
+ "resolved": "13.1.0",
+ "contentHash": "hlAGIM0fXyZ2Vcv/WkkL2j24vi3JI3HAXyxjx0FrLzCbJIAps2RQvfOtE9NwtYGEf5/fa6qQld6k4e0YAHhQTg==",
+ "dependencies": {
+ "Microsoft.Extensions.Http": "10.0.9",
+ "ReactiveUI.Primitives": "6.0.0",
+ "Refit": "13.1.0"
+ }
+ },
+ "SonarAnalyzer.CSharp": {
+ "type": "Direct",
+ "requested": "[10.28.0.143324, )",
+ "resolved": "10.28.0.143324",
+ "contentHash": "ZnmYHFiQw2Aph2ft9c7UqVrqe79aZR5l7oeG59+sgrSAO9J159meglP1Zo34+Mcw4etIUTC9btYnP0Ar/rQIyg=="
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "woZsWLhOQsASuxbmgiZJqiGUBNo3IjRdXC92xt8rRokza+P6/nIsnzq7sm9Or6ZYcRl2kL1ufj8HVzp1QlPTXw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "qGhRPd3VxfLV9UqatVOiD9mAeUbj2KiMwGFYC5uXlzExiZQoe4X/hdmzGIU7BQjNLTqCnnbTHVyBglG3668/HA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Tp/+LPb70RyjjtLg9m5C959eP4KrUpJHThZfAegZVpsfmGvzfuNkuYbI/ft+LvXhMSyUcAeOPaN6rzTccwnZAg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "NLXI3PbTe39q6/sgs7JYhmfPf7bMzReUoAJ0q9Po6yhfM+0anZa7PrEva4W2SdiLWGyB9eKZS9THGt2BP40xJg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "86RgyFsmVslW4Nu28IXgt8tLglynGQrwjk/xhGZaTe8j6YIeR1Ywoc42hSHsBSl920CQdfqq2dBohZiGm3AkUA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "N7Gm9SjugYjmmnhwbBKC9DFqGqjfJvh6YfOJgtwh0AW0Xpok3dIVors1ik050XmUxKAgAc7nNngDIJyFb06K2g==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "9S/DFt4cohlMPpzIxjG6kk0L8MuN2vDm9pbMCulxtJzzk82oJHVLBd8vuQxaPskaYQwKqmFmbannf5eoChgjYg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "hyNdX4c2UwkRkzb9byw0H2DQkRzwBM3mzY2sCM9egwzTyg8dvQJmp5noQHGEaaCORQrNK3DD2gREBsc2DlXS4A==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Options.ConfigurationExtensions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Y4E24zffF/aPS0igNvY6ZzAQfbxd6AYdC9L4brnH+uK0yYYHIR6FeGVQVVjAOo8wub1EQDl2B90lCcpqoTF7Yw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "fmEbAUFsaIKirgLt/lYhuFRBwhcSJN31jjHgCdbQxJiWOum6EdLjkbgGuukSP9z/a+9LibaxII/kF+GwOXgC4g=="
+ },
+ "Microsoft.OpenApi": {
+ "type": "Transitive",
+ "resolved": "2.7.5",
+ "contentHash": "0FA67RSnRM4tcBKqiqVu/HPdZ9+QOKbmeRjxRUGTCjPU4C0bmUhd97Dso7Yild5P7nOV6GxJ2xrK0Kv/O9xp0w=="
+ },
+ "ReactiveUI.Disposables": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "+4SXyR40eHcCoAeLZWWMM4SE6uxxJgJSStMrRkbFVIFd3n8Pqzd/wCkVDt2q6Z9VC4TTF2HRDa3M6BY73iyS2g=="
+ },
+ "ReactiveUI.Primitives": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "LHJCaF4dmmLCyl7pyBYTx3BuV17uwQj5oqR3yCIN+M0abd5536eH+KW4Fu9Bc+rFe4x6LD5YioKO27ytPUXy5A==",
+ "dependencies": {
+ "ReactiveUI.Disposables": "6.0.0",
+ "ReactiveUI.Primitives.Core": "6.0.0"
+ }
+ },
+ "ReactiveUI.Primitives.Core": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "Ffky9BPfRbWJYeUWVLjno07/GcvFFnkXZ+NnrXmAkNnmGfKmSDGYvz2xvmaoUECucT7UBSUr7WO2+X/4fRpPDw==",
+ "dependencies": {
+ "ReactiveUI.Disposables": "6.0.0"
+ }
+ },
+ "Refit": {
+ "type": "Transitive",
+ "resolved": "13.1.0",
+ "contentHash": "Hd0zEcLAm/7Hk8xRRaXftxbLzvQ04La6IZBFYG2g/dC9e6jQBYEVBEr8OA/iSbLYQFEhTJ3XyjpFSz1MFHpYEg==",
+ "dependencies": {
+ "ReactiveUI.Primitives": "6.0.0"
+ }
+ },
+ "Swashbuckle.AspNetCore.Swagger": {
+ "type": "Transitive",
+ "resolved": "10.2.3",
+ "contentHash": "1jUUs3WQnrS0FUtaZPLSy1yYMEwS1zlvDmvQ2/eldPHUANX0LJSLVZecCMgSMdeGiRqeaRrIXLtSz++TCiTMww==",
+ "dependencies": {
+ "Microsoft.OpenApi": "2.7.5"
+ }
+ },
+ "Swashbuckle.AspNetCore.SwaggerGen": {
+ "type": "Transitive",
+ "resolved": "10.2.3",
+ "contentHash": "y7t4coDRAeFYChmvlMRiH2OjbiRrm9AVIDgt17fQfs3x9PVAI5PiwWYOhg+4F13R4Q36WDc9lqfoOnNa3tNbGg==",
+ "dependencies": {
+ "Swashbuckle.AspNetCore.Swagger": "10.2.3"
+ }
+ },
+ "adminassistant.api.contracts": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.DomainModel": "[1.0.0, )",
+ "Swashbuckle.AspNetCore.Annotations": "[10.2.3, )"
+ }
+ },
+ "adminassistant.domainmodel": {
+ "type": "Project",
+ "dependencies": {
+ "Ardalis.Extensions": "[0.9.4, )",
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "Ardalis.Result": "[10.1.0, )",
+ "FluentValidation": "[12.1.1, )",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )",
+ "SimonGeering.Framework": "[1.0.0, )"
+ }
+ },
+ "simongeering.framework": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )"
+ }
+ },
+ "Ardalis.Extensions": {
+ "type": "CentralTransitive",
+ "requested": "[0.9.4, )",
+ "resolved": "0.9.4",
+ "contentHash": "5JDKpMiEsxbz9N1yynsMFc2rBXDQ5iHLockW8lxahqlj9B5gxbENTAXBY2Jswp4vcGG+cNQxv81KrUqd4mXQSA==",
+ "dependencies": {
+ "Ardalis.GuardClauses": "3.2.0"
+ }
+ },
+ "Ardalis.GuardClauses": {
+ "type": "CentralTransitive",
+ "requested": "[5.0.0, )",
+ "resolved": "5.0.0",
+ "contentHash": "jVPRvLw0xIUFto2cMrKgRYADWIHbEEfzZHGiU/swwNgl1zo28Q1zfSa3VUC3C0s9DyhFDPSaF4dEDQRyTZUcyQ=="
+ },
+ "Ardalis.Result": {
+ "type": "CentralTransitive",
+ "requested": "[10.1.0, )",
+ "resolved": "10.1.0",
+ "contentHash": "+WgsXh+JRm0d8BZPlBUc5w0+FTda4vbWRa/IF2q4zDoRsU5BXr8w4rTbYEklZIMNgQQZTcNouR/QfBV5I/4XYQ=="
+ },
+ "FluentValidation": {
+ "type": "CentralTransitive",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "EPpkIe1yh1a0OXyC100oOA8WMbZvqUu5plwhvYcb7oSELfyUZzfxV48BLhvs3kKo4NwG7MGLNgy1RJiYtT8Dpw=="
+ },
+ "Microsoft.Extensions.DependencyInjection": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "NijozhERJDIaJ4k5TSMy1jOi0cSC2HfkvRD/Sl+kGSSKgVbFnF4GxgtMN/MrzHB8D1JxIrD4xSer9Blh9v3axQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "g41l/30G3K4B/d/L8kjux0+30e27c8D0FVQ/PFCpbekgfDpj9mnDhieP67EqXWvl1EWNeZh2rpR4F5B/jcDOHA=="
+ },
+ "Microsoft.Extensions.Http": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "5jdmuLRg1HO7x/v8McOf6ndhkMQWImkRBtJpXM8+xIocXNdLqCItyyFLKusdILc62TDzHuLlqaWoxtOA5FFOPg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Diagnostics": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Swashbuckle.AspNetCore.Annotations": {
+ "type": "CentralTransitive",
+ "requested": "[10.2.3, )",
+ "resolved": "10.2.3",
+ "contentHash": "plbv/9BrcOQfCop5avxdMzp9Qw3jRPdCDaCkwIAYmEcjPUhNwUKqIYBPcXfAU4Jw5gVGj1bKTUuwYx9M43hPPg==",
+ "dependencies": {
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.2.3"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AdminAssistant.Api.Contracts/packages.lock.json b/src/AdminAssistant.Api.Contracts/packages.lock.json
new file mode 100644
index 00000000..eb1344a6
--- /dev/null
+++ b/src/AdminAssistant.Api.Contracts/packages.lock.json
@@ -0,0 +1,93 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "SonarAnalyzer.CSharp": {
+ "type": "Direct",
+ "requested": "[10.28.0.143324, )",
+ "resolved": "10.28.0.143324",
+ "contentHash": "ZnmYHFiQw2Aph2ft9c7UqVrqe79aZR5l7oeG59+sgrSAO9J159meglP1Zo34+Mcw4etIUTC9btYnP0Ar/rQIyg=="
+ },
+ "Swashbuckle.AspNetCore.Annotations": {
+ "type": "Direct",
+ "requested": "[10.2.3, )",
+ "resolved": "10.2.3",
+ "contentHash": "plbv/9BrcOQfCop5avxdMzp9Qw3jRPdCDaCkwIAYmEcjPUhNwUKqIYBPcXfAU4Jw5gVGj1bKTUuwYx9M43hPPg==",
+ "dependencies": {
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.2.3"
+ }
+ },
+ "Microsoft.OpenApi": {
+ "type": "Transitive",
+ "resolved": "2.7.5",
+ "contentHash": "0FA67RSnRM4tcBKqiqVu/HPdZ9+QOKbmeRjxRUGTCjPU4C0bmUhd97Dso7Yild5P7nOV6GxJ2xrK0Kv/O9xp0w=="
+ },
+ "Swashbuckle.AspNetCore.Swagger": {
+ "type": "Transitive",
+ "resolved": "10.2.3",
+ "contentHash": "1jUUs3WQnrS0FUtaZPLSy1yYMEwS1zlvDmvQ2/eldPHUANX0LJSLVZecCMgSMdeGiRqeaRrIXLtSz++TCiTMww==",
+ "dependencies": {
+ "Microsoft.OpenApi": "2.7.5"
+ }
+ },
+ "Swashbuckle.AspNetCore.SwaggerGen": {
+ "type": "Transitive",
+ "resolved": "10.2.3",
+ "contentHash": "y7t4coDRAeFYChmvlMRiH2OjbiRrm9AVIDgt17fQfs3x9PVAI5PiwWYOhg+4F13R4Q36WDc9lqfoOnNa3tNbGg==",
+ "dependencies": {
+ "Swashbuckle.AspNetCore.Swagger": "10.2.3"
+ }
+ },
+ "adminassistant.domainmodel": {
+ "type": "Project",
+ "dependencies": {
+ "Ardalis.Extensions": "[0.9.4, )",
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "Ardalis.Result": "[10.1.0, )",
+ "FluentValidation": "[12.1.1, )",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )",
+ "SimonGeering.Framework": "[1.0.0, )"
+ }
+ },
+ "simongeering.framework": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )"
+ }
+ },
+ "Ardalis.Extensions": {
+ "type": "CentralTransitive",
+ "requested": "[0.9.4, )",
+ "resolved": "0.9.4",
+ "contentHash": "5JDKpMiEsxbz9N1yynsMFc2rBXDQ5iHLockW8lxahqlj9B5gxbENTAXBY2Jswp4vcGG+cNQxv81KrUqd4mXQSA==",
+ "dependencies": {
+ "Ardalis.GuardClauses": "3.2.0"
+ }
+ },
+ "Ardalis.GuardClauses": {
+ "type": "CentralTransitive",
+ "requested": "[5.0.0, )",
+ "resolved": "5.0.0",
+ "contentHash": "jVPRvLw0xIUFto2cMrKgRYADWIHbEEfzZHGiU/swwNgl1zo28Q1zfSa3VUC3C0s9DyhFDPSaF4dEDQRyTZUcyQ=="
+ },
+ "Ardalis.Result": {
+ "type": "CentralTransitive",
+ "requested": "[10.1.0, )",
+ "resolved": "10.1.0",
+ "contentHash": "+WgsXh+JRm0d8BZPlBUc5w0+FTda4vbWRa/IF2q4zDoRsU5BXr8w4rTbYEklZIMNgQQZTcNouR/QfBV5I/4XYQ=="
+ },
+ "FluentValidation": {
+ "type": "CentralTransitive",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "EPpkIe1yh1a0OXyC100oOA8WMbZvqUu5plwhvYcb7oSELfyUZzfxV48BLhvs3kKo4NwG7MGLNgy1RJiYtT8Dpw=="
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "g41l/30G3K4B/d/L8kjux0+30e27c8D0FVQ/PFCpbekgfDpj9mnDhieP67EqXWvl1EWNeZh2rpR4F5B/jcDOHA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AdminAssistant.Api/packages.lock.json b/src/AdminAssistant.Api/packages.lock.json
new file mode 100644
index 00000000..445bfc6f
--- /dev/null
+++ b/src/AdminAssistant.Api/packages.lock.json
@@ -0,0 +1,507 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "FluentValidation.DependencyInjectionExtensions": {
+ "type": "Direct",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "D0VXh4dtjjX2aQizuaa0g6R8X3U1JaVqJPfGCvLwZX9t/O2h7tkpbitbadQMfwcgSPdDbI2vDxuwRMv/Uf9dHA==",
+ "dependencies": {
+ "FluentValidation": "12.1.1"
+ }
+ },
+ "Microsoft.AspNetCore.OpenApi": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "1ihb8FO9cGgEK1/m3CTtT/SfnynwmiZib0W2pcDVj3KSWk/Sca4VOXEtaptKQc582zpFrzTFiwkGRCglt6H+WQ==",
+ "dependencies": {
+ "Microsoft.OpenApi": "2.0.0"
+ }
+ },
+ "SonarAnalyzer.CSharp": {
+ "type": "Direct",
+ "requested": "[10.28.0.143324, )",
+ "resolved": "10.28.0.143324",
+ "contentHash": "ZnmYHFiQw2Aph2ft9c7UqVrqe79aZR5l7oeG59+sgrSAO9J159meglP1Zo34+Mcw4etIUTC9btYnP0Ar/rQIyg=="
+ },
+ "Swashbuckle.AspNetCore": {
+ "type": "Direct",
+ "requested": "[10.2.3, )",
+ "resolved": "10.2.3",
+ "contentHash": "8KNh1RWvofdU6DVLyBs4Z/OpUMnmf8oNvJQc0QxpwySRbi42bwLfdVMMrXZWANg5U5KQGQq1xW6r/hlcqw99tQ==",
+ "dependencies": {
+ "Microsoft.Extensions.ApiDescription.Server": "10.0.0",
+ "Swashbuckle.AspNetCore.Swagger": "10.2.3",
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.2.3",
+ "Swashbuckle.AspNetCore.SwaggerUI": "10.2.3"
+ }
+ },
+ "Swashbuckle.AspNetCore.Annotations": {
+ "type": "Direct",
+ "requested": "[10.2.3, )",
+ "resolved": "10.2.3",
+ "contentHash": "plbv/9BrcOQfCop5avxdMzp9Qw3jRPdCDaCkwIAYmEcjPUhNwUKqIYBPcXfAU4Jw5gVGj1bKTUuwYx9M43hPPg==",
+ "dependencies": {
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.2.3"
+ }
+ },
+ "Ardalis.Specification": {
+ "type": "Transitive",
+ "resolved": "9.3.1",
+ "contentHash": "GWrE6BA0smWFLbN+XPU2l5rDF9Uzelfbb3w35jJ0CGIat+p1ChbtLcbkvYRMEculBHOAo12omwAAOm3VFWkoJQ=="
+ },
+ "Microsoft.EntityFrameworkCore.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "GRMaiPkqYna/gCsyDffYDWmefGPC3hDrdMw+2rrGcQwhs6uZOsaMQXMJnoXQ35tx9SkBV2ieRRU9N/jLOO6BZw=="
+ },
+ "Microsoft.Extensions.AmbientMetadata.Application": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "yZ0818pVYQvUFW/1m+f8A1+lIAeSeQxEOdUCMIC+tqcRRKlqNjKPRKvGHPp8xLRbZBLaHfBtDslJa/sofn7J/Q=="
+ },
+ "Microsoft.Extensions.ApiDescription.Server": {
+ "type": "Transitive",
+ "resolved": "10.0.0",
+ "contentHash": "NCWCGiwRwje8773yzPQhvucYnnfeR+ZoB1VRIrIMp4uaeUNw7jvEPHij3HIbwCDuNCrNcphA00KSAR9yD9qmbg=="
+ },
+ "Microsoft.Extensions.Compliance.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "qbi6lg6dyvydBvpjXeBx3wLPvmgXWn3nwkKBOsgEck6w++BEsBcv8YhdcczME16Oq+a6wkdtna9/qCEkxsNw5A=="
+ },
+ "Microsoft.Extensions.DependencyInjection.AutoActivation": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "WrSK0FGHSjSY4Pg4kd9Du8CUDwrgFTwHH1Y+N7sjyT6RFMU+G3coQ/Uq9PMGdQcy+DVKSMGHjfmWY47ZoYvhNA=="
+ },
+ "Microsoft.Extensions.Diagnostics.ExceptionSummarization": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "Kc4XbbxtCzvn2P/fKF48xLWPbp3N5DV0MkJlgPJHEb47PUqCJ6kEl/JTKfpmP7QLuwYjx2QxKTdtwXfpjgA6KQ=="
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "VyjlpOHGpT9xoNFKNd/27FBF4eBimMcCCIfMxkeju/8uUnugwsxHfzZX2iP+ilYeoYB4HeT5gAoswTIKD6SYJw==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Relational": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Http.Diagnostics": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "1m1zdBGW5J8MOxdZpJ5mUqdSaamRrYkpmfnEfeDmlZnglpfgDztcKOBU6cVsmn90AB7Ji2w8USvEsJ8PahbBWQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Telemetry": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.Resilience": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "ldUrtRzWSnfe5945xoSxDXxoWXnIKn19E74Huieyp76XW/BjRk3bhkILSSib1NKdZ2lpi/ReTvOpNGcJ8hkOxw==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.ExceptionSummarization": "10.7.0",
+ "Microsoft.Extensions.Telemetry.Abstractions": "10.7.0",
+ "Polly.Extensions": "8.4.2",
+ "Polly.RateLimiting": "8.4.2"
+ }
+ },
+ "Microsoft.Extensions.ServiceDiscovery.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "1a/tCYg7+5HdJRQ0BQDDGzANBaw/1fony7eNsMwQ5n9FZmO3K5JCls02o8fwQc296l0szNBwroLRtXf94OZw9A=="
+ },
+ "Microsoft.Extensions.Telemetry": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "vZFNVvkz+7IABEv4klzPX/ZdmZQ6TrcReKUfeYIrQ2bbnvEcgZtG1RmOGeWkc1hFg8cq9sAgUc2lHCqlXSqf5A==",
+ "dependencies": {
+ "Microsoft.Extensions.AmbientMetadata.Application": "10.7.0",
+ "Microsoft.Extensions.DependencyInjection.AutoActivation": "10.7.0",
+ "Microsoft.Extensions.Telemetry.Abstractions": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.Telemetry.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "ir1QKShZzfEmqO9LUWESVMUDZdnxYBSKQyulYPMeaye531lAuT8YTotthx+htrrS8hZY52HANeqowLQyCYBCZg==",
+ "dependencies": {
+ "Microsoft.Extensions.Compliance.Abstractions": "10.7.0"
+ }
+ },
+ "Microsoft.OpenApi": {
+ "type": "Transitive",
+ "resolved": "2.7.5",
+ "contentHash": "0FA67RSnRM4tcBKqiqVu/HPdZ9+QOKbmeRjxRUGTCjPU4C0bmUhd97Dso7Yild5P7nOV6GxJ2xrK0Kv/O9xp0w=="
+ },
+ "Npgsql": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "7nb5YzXuvWWJxB0J8DiyL3we+X4FOctZrt0fIBnucOIaIevFEEwGQVZKtiu9olXdlNAK1eNgqSral6r/jlhI4w=="
+ },
+ "Npgsql.DependencyInjection": {
+ "type": "Transitive",
+ "resolved": "10.0.2",
+ "contentHash": "/Efri6iP5Z2kj3amM/WPMoa0pzOBaIM+C+uMXltaBMu2hVZciNluuK51Mn2FmWKhqwTcMZdwHYUfbm8LbKRJMQ==",
+ "dependencies": {
+ "Npgsql": "10.0.2"
+ }
+ },
+ "OpenTelemetry": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "nE/Px3MUvQC8c0UG0DOP5OJE7vMtiMaPYi/6TkSS/o/O0s/oPq+8WaPYTVEPzb7lwu/QyLgknc+sFm2FjPXe2A==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Api": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "WZP8Eb6vZTeNqeV+fjBitc7iefBoTHIhaWorqg/h/YiQBlcQJu0bICuTqKV0XRyjiE0eWs80yLlnUtHAFSkFWA=="
+ },
+ "OpenTelemetry.Api.ProviderBuilderExtensions": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "hZwaHAkXvUNn9+cS+vEvYBgIrIQOQRz2cIRUODZ5gxHsDsLeNCueLgZFkybopjE0jUhLut6lm5eL3LTqbW0hMg==",
+ "dependencies": {
+ "OpenTelemetry.Api": "1.16.0"
+ }
+ },
+ "Polly.Core": {
+ "type": "Transitive",
+ "resolved": "8.4.2",
+ "contentHash": "BpE2I6HBYYA5tF0Vn4eoQOGYTYIK1BlF5EXVgkWGn3mqUUjbXAr13J6fZVbp7Q3epRR8yshacBMlsHMhpOiV3g=="
+ },
+ "Polly.Extensions": {
+ "type": "Transitive",
+ "resolved": "8.4.2",
+ "contentHash": "GZ9vRVmR0jV2JtZavt+pGUsQ1O1cuRKG7R7VOZI6ZDy9y6RNPvRvXK1tuS4ffUrv8L0FTea59oEuQzgS0R7zSA==",
+ "dependencies": {
+ "Polly.Core": "8.4.2"
+ }
+ },
+ "Polly.RateLimiting": {
+ "type": "Transitive",
+ "resolved": "8.4.2",
+ "contentHash": "ehTImQ/eUyO07VYW2WvwSmU9rRH200SKJ/3jku9rOkyWE0A2JxNFmAVms8dSn49QLSjmjFRRSgfNyOgr/2PSmA==",
+ "dependencies": {
+ "Polly.Core": "8.4.2"
+ }
+ },
+ "Swashbuckle.AspNetCore.Swagger": {
+ "type": "Transitive",
+ "resolved": "10.2.3",
+ "contentHash": "1jUUs3WQnrS0FUtaZPLSy1yYMEwS1zlvDmvQ2/eldPHUANX0LJSLVZecCMgSMdeGiRqeaRrIXLtSz++TCiTMww==",
+ "dependencies": {
+ "Microsoft.OpenApi": "2.7.5"
+ }
+ },
+ "Swashbuckle.AspNetCore.SwaggerGen": {
+ "type": "Transitive",
+ "resolved": "10.2.3",
+ "contentHash": "y7t4coDRAeFYChmvlMRiH2OjbiRrm9AVIDgt17fQfs3x9PVAI5PiwWYOhg+4F13R4Q36WDc9lqfoOnNa3tNbGg==",
+ "dependencies": {
+ "Swashbuckle.AspNetCore.Swagger": "10.2.3"
+ }
+ },
+ "Swashbuckle.AspNetCore.SwaggerUI": {
+ "type": "Transitive",
+ "resolved": "10.2.3",
+ "contentHash": "nthWONRs/FJ4yyG206g1cC52WEG8EqrjuMWjGdR+5XG7lbjFto6NqcI9EMICgVFom/UivIjUVwI76ZHbHwTPfQ=="
+ },
+ "System.Security.Cryptography.Pkcs": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "CoCRHFym33aUSf/NtWSVSZa99dkd0Hm7OCZUxORBjRB16LNhIEOf8THPqzIYlvKM0nNDAPTRBa1FxEECrgaxxA=="
+ },
+ "adminassistant.api.contracts": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.DomainModel": "[1.0.0, )",
+ "Swashbuckle.AspNetCore.Annotations": "[10.2.3, )"
+ }
+ },
+ "adminassistant.application": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.Infrastructure": "[1.0.0, )",
+ "Ardalis.Result": "[10.1.0, )",
+ "Ardalis.Result.FluentValidation": "[10.1.0, )",
+ "Mediator.Abstractions": "[3.0.2, )"
+ }
+ },
+ "adminassistant.aspire.servicedefaults": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Extensions.Http.Resilience": "[10.7.0, )",
+ "Microsoft.Extensions.ServiceDiscovery": "[10.7.0, )",
+ "Npgsql.OpenTelemetry": "[10.0.3, )",
+ "OpenTelemetry.Exporter.Console": "[1.16.0, )",
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": "[1.16.0, )",
+ "OpenTelemetry.Extensions.Hosting": "[1.16.0, )",
+ "OpenTelemetry.Instrumentation.AspNetCore": "[1.16.0, )",
+ "OpenTelemetry.Instrumentation.EntityFrameworkCore": "[1.0.0-beta.8, )",
+ "OpenTelemetry.Instrumentation.GrpcNetClient": "[1.6.0-beta.3, )",
+ "OpenTelemetry.Instrumentation.Http": "[1.16.0, )",
+ "OpenTelemetry.Instrumentation.Runtime": "[1.15.1, )",
+ "OpenTelemetry.Instrumentation.SqlClient": "[1.16.0, )"
+ }
+ },
+ "adminassistant.domainmodel": {
+ "type": "Project",
+ "dependencies": {
+ "Ardalis.Extensions": "[0.9.4, )",
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "Ardalis.Result": "[10.1.0, )",
+ "FluentValidation": "[12.1.1, )",
+ "SimonGeering.Framework": "[1.0.0, )"
+ }
+ },
+ "adminassistant.infrastructure": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.DomainModel": "[1.0.0, )",
+ "AdminAssistant.Infrastructure.ClientSide": "[1.0.0, )",
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "Ardalis.Result": "[10.1.0, )",
+ "Ardalis.Specification.EntityFrameworkCore": "[9.3.1, )",
+ "Aspire.Npgsql.EntityFrameworkCore.PostgreSQL": "[13.4.6, )",
+ "Mediator.Abstractions": "[3.0.2, )",
+ "Microsoft.EntityFrameworkCore.Relational": "[10.0.9, )",
+ "Npgsql.EntityFrameworkCore.PostgreSQL": "[10.0.2, )",
+ "SimonGeering.Framework": "[1.0.0, )"
+ }
+ },
+ "adminassistant.infrastructure.clientside": {
+ "type": "Project",
+ "dependencies": {
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "PDFsharp": "[6.2.4, )"
+ }
+ },
+ "simongeering.framework": {
+ "type": "Project"
+ },
+ "Ardalis.Extensions": {
+ "type": "CentralTransitive",
+ "requested": "[0.9.4, )",
+ "resolved": "0.9.4",
+ "contentHash": "5JDKpMiEsxbz9N1yynsMFc2rBXDQ5iHLockW8lxahqlj9B5gxbENTAXBY2Jswp4vcGG+cNQxv81KrUqd4mXQSA==",
+ "dependencies": {
+ "Ardalis.GuardClauses": "3.2.0"
+ }
+ },
+ "Ardalis.GuardClauses": {
+ "type": "CentralTransitive",
+ "requested": "[5.0.0, )",
+ "resolved": "5.0.0",
+ "contentHash": "jVPRvLw0xIUFto2cMrKgRYADWIHbEEfzZHGiU/swwNgl1zo28Q1zfSa3VUC3C0s9DyhFDPSaF4dEDQRyTZUcyQ=="
+ },
+ "Ardalis.Result": {
+ "type": "CentralTransitive",
+ "requested": "[10.1.0, )",
+ "resolved": "10.1.0",
+ "contentHash": "+WgsXh+JRm0d8BZPlBUc5w0+FTda4vbWRa/IF2q4zDoRsU5BXr8w4rTbYEklZIMNgQQZTcNouR/QfBV5I/4XYQ=="
+ },
+ "Ardalis.Result.FluentValidation": {
+ "type": "CentralTransitive",
+ "requested": "[10.1.0, )",
+ "resolved": "10.1.0",
+ "contentHash": "OXfIq2LVnc8YjvpDqud1gJGVaoqOTznA2iSCFA1Ee0ScocXVvXmORWKiABCe3MfGyTg748V+Z7bdiQEXBCFoSQ==",
+ "dependencies": {
+ "Ardalis.Result": "10.1.0",
+ "FluentValidation": "11.9.2"
+ }
+ },
+ "Ardalis.Specification.EntityFrameworkCore": {
+ "type": "CentralTransitive",
+ "requested": "[9.3.1, )",
+ "resolved": "9.3.1",
+ "contentHash": "QbOo4E6HWdKXZ9QUrqcgiGN4EKtzt0kzGzqr2zc32q5QESzBrceJ3GX1ymWVdCCOzJO1+GPm+/a/5ovSkfrLoQ==",
+ "dependencies": {
+ "Ardalis.Specification": "9.3.1",
+ "Microsoft.EntityFrameworkCore": "9.0.8",
+ "Microsoft.EntityFrameworkCore.Relational": "9.0.8"
+ }
+ },
+ "Aspire.Npgsql.EntityFrameworkCore.PostgreSQL": {
+ "type": "CentralTransitive",
+ "requested": "[13.4.6, )",
+ "resolved": "13.4.6",
+ "contentHash": "Lt92FuyX4JkKwrAgrOsVARpmk3U9vBGBq784ZEO3hR2vC74o8VS/VWBJHYrRBYTXapuj+mwwPzvcUICmbB43Zg==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore": "10.0.8",
+ "Npgsql.DependencyInjection": "10.0.2",
+ "Npgsql.EntityFrameworkCore.PostgreSQL": "10.0.0",
+ "Npgsql.OpenTelemetry": "10.0.2",
+ "OpenTelemetry.Extensions.Hosting": "1.15.3"
+ }
+ },
+ "FluentValidation": {
+ "type": "CentralTransitive",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "EPpkIe1yh1a0OXyC100oOA8WMbZvqUu5plwhvYcb7oSELfyUZzfxV48BLhvs3kKo4NwG7MGLNgy1RJiYtT8Dpw=="
+ },
+ "Mediator.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[3.0.2, )",
+ "resolved": "3.0.2",
+ "contentHash": "TytjnyN8gLObZBxkM7HHPFJF3LHtk6Y8mHW56ONuXRuVEK6Fmed3f0z79H9TpmoZQP2zQAIS4/0O9R2w0v02qw=="
+ },
+ "Microsoft.EntityFrameworkCore": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "tu85SRzOT021V7EQlViCiAE7TqldVn469Y6lt5TEn/+XC4/MeNCHgMRSxqYuWqvF4zAQZUhCmtNEZuM3ss4LeA==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Abstractions": "10.0.9",
+ "Microsoft.EntityFrameworkCore.Analyzers": "10.0.9"
+ }
+ },
+ "Microsoft.EntityFrameworkCore.Relational": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "dEoyYKgiaZHHgOFm1WMWm1sFEsEuhPWufX4L9PekKtqd/RaIcPjkCjvbrVvJtApErb5wPSJhYvnTlxhH+p9h2g==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Http.Resilience": {
+ "type": "CentralTransitive",
+ "requested": "[10.7.0, )",
+ "resolved": "10.7.0",
+ "contentHash": "3Lip0MkBVPtqU1wCM2M2Y8CzsqxA1BanVNMV9LQYMTwBgy25NDe6U9nSk6SfmsxXlh77iwSQuPsyjt5mxrOGmQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Http.Diagnostics": "10.7.0",
+ "Microsoft.Extensions.Resilience": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.ServiceDiscovery": {
+ "type": "CentralTransitive",
+ "requested": "[10.7.0, )",
+ "resolved": "10.7.0",
+ "contentHash": "UgBfP98NmKDjx/2jbLGkckSlc8XG4ubkjPrqACE2i9LPmrgoYGWTh9snybRUGBm0sTchsq3on81XRxfvX+XC5g==",
+ "dependencies": {
+ "Microsoft.Extensions.ServiceDiscovery.Abstractions": "10.7.0"
+ }
+ },
+ "Npgsql.EntityFrameworkCore.PostgreSQL": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.2, )",
+ "resolved": "10.0.2",
+ "contentHash": "PsNYgPOSW41Xx19gin7y4EdZAPteWr9Cb01XkdObxOsPzi+mgBupBEN7J7+erXFsROPOILM7MlIoO9QzL8+LGQ==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore": "[10.0.4, 11.0.0)",
+ "Microsoft.EntityFrameworkCore.Relational": "[10.0.4, 11.0.0)",
+ "Npgsql": "10.0.3"
+ }
+ },
+ "Npgsql.OpenTelemetry": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "ShsdG/FHxJ2VuWM6tebJL/mCWkcxymmvtENN59c85EsJdT4TStWwwtgZoBu/9UvC0qi1jpFZ6bOfl9ijiWD+vA==",
+ "dependencies": {
+ "Npgsql": "10.0.3",
+ "OpenTelemetry.API": "1.15.3"
+ }
+ },
+ "OpenTelemetry.Exporter.Console": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "cv3pKEn3KyJUNz9o8kvu5UN0NJEUoNSo5hJR4rgbfvqM6oA3moj+tkpbbQrE3bDvetBvYBes17ZxQxBBTvnJ+w==",
+ "dependencies": {
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "gzYLY8sVDY5FYtVlCYSzBYX53xslRlvBLxwFYOdNIhc76SgKdFYUoDQXOeQI3WPBCrZp51QNcP6fZHh1+HtpIQ==",
+ "dependencies": {
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Extensions.Hosting": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "/YfrO5MRaA156vhNanYGPX2JjOwKUrA0+Jf7ltT2eD3VkfHqXcEJY5Oxt/nWH8lqBOTc1nJpn2soBtD5Cml8Dg==",
+ "dependencies": {
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Instrumentation.AspNetCore": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "vSC5EsmBVNcqXMh9BGkkq8zkoUjrg8ghBDb9zbKR8Bqjd05utjVgVft+fqsqQVsvlV5olGj1pBliHBngcIGSIg==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.EntityFrameworkCore": {
+ "type": "CentralTransitive",
+ "requested": "[1.0.0-beta.8, )",
+ "resolved": "1.0.0-beta.8",
+ "contentHash": "ilfbH1bDPm9YytgspAnQRVy3Hw0rNkYhjNJSNeT9QFWrwXAjCYVPVGTpHOgzM9gB5bS/u+04IgQainDzthUnVA==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.6.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.GrpcNetClient": {
+ "type": "CentralTransitive",
+ "requested": "[1.6.0-beta.3, )",
+ "resolved": "1.6.0-beta.3",
+ "contentHash": "nzw8D5in6Hg/GbjNlq2FETP4GjSckae9hPGTxAUO7UiOS1lqkyxZJ7f4ntIjFKbiS3wuA9wPfQVH/3CaPV6EvQ==",
+ "dependencies": {
+ "OpenTelemetry": "1.6.0"
+ }
+ },
+ "OpenTelemetry.Instrumentation.Http": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "+Sz3lfvMXwWE8s/sMruHCDlO/+cArFVc6oBg1tCb70BKlL9FCC7uK4Ar2/VP9Hhwvs+UwaW1vGzE/uiByVHXiA==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.Runtime": {
+ "type": "CentralTransitive",
+ "requested": "[1.15.1, )",
+ "resolved": "1.15.1",
+ "contentHash": "cpPwlUT5HXcLGPaIgsbSy0W9eFYAPGVbTP1p8/uyQ4Osvf5BJuPpEXE7crL09SmEd44r0DGNKDtsqxaAz0HxQw==",
+ "dependencies": {
+ "OpenTelemetry.Api": "[1.15.3, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.SqlClient": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "gZCmdQN24ty9FNLKYUR0VAojTByO650HgN89Ddoi9AIA2L3XqIHyUadNnFuIOKNo6+Pgrn4NgehvOzcmYhcl7A==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ },
+ "PDFsharp": {
+ "type": "CentralTransitive",
+ "requested": "[6.2.4, )",
+ "resolved": "6.2.4",
+ "contentHash": "GhTr9F1uOYXHCIEOB5PXIgqn5a8WLsJL2m0eewTA0IvY1j6N4HGXHKKmEyB90/N6vrjmYamf41V9zbmdW2HY3g==",
+ "dependencies": {
+ "System.Security.Cryptography.Pkcs": "8.0.1"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AdminAssistant.Application/packages.lock.json b/src/AdminAssistant.Application/packages.lock.json
new file mode 100644
index 00000000..a14a8fa9
--- /dev/null
+++ b/src/AdminAssistant.Application/packages.lock.json
@@ -0,0 +1,594 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Ardalis.Result": {
+ "type": "Direct",
+ "requested": "[10.1.0, )",
+ "resolved": "10.1.0",
+ "contentHash": "+WgsXh+JRm0d8BZPlBUc5w0+FTda4vbWRa/IF2q4zDoRsU5BXr8w4rTbYEklZIMNgQQZTcNouR/QfBV5I/4XYQ=="
+ },
+ "Ardalis.Result.FluentValidation": {
+ "type": "Direct",
+ "requested": "[10.1.0, )",
+ "resolved": "10.1.0",
+ "contentHash": "OXfIq2LVnc8YjvpDqud1gJGVaoqOTznA2iSCFA1Ee0ScocXVvXmORWKiABCe3MfGyTg748V+Z7bdiQEXBCFoSQ==",
+ "dependencies": {
+ "Ardalis.Result": "10.1.0",
+ "FluentValidation": "11.9.2"
+ }
+ },
+ "Mediator.Abstractions": {
+ "type": "Direct",
+ "requested": "[3.0.2, )",
+ "resolved": "3.0.2",
+ "contentHash": "TytjnyN8gLObZBxkM7HHPFJF3LHtk6Y8mHW56ONuXRuVEK6Fmed3f0z79H9TpmoZQP2zQAIS4/0O9R2w0v02qw==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
+ }
+ },
+ "Mediator.SourceGenerator": {
+ "type": "Direct",
+ "requested": "[3.0.2, )",
+ "resolved": "3.0.2",
+ "contentHash": "yGQzb8Or3nGsQJnVUQIQHr/04LeThd3qMZV0gvgMtXdgH35Rw2xJ2XyQ87v6HhNYOUZ2iirRjUWceebyNKMF7Q=="
+ },
+ "SonarAnalyzer.CSharp": {
+ "type": "Direct",
+ "requested": "[10.28.0.143324, )",
+ "resolved": "10.28.0.143324",
+ "contentHash": "ZnmYHFiQw2Aph2ft9c7UqVrqe79aZR5l7oeG59+sgrSAO9J159meglP1Zo34+Mcw4etIUTC9btYnP0Ar/rQIyg=="
+ },
+ "Ardalis.Specification": {
+ "type": "Transitive",
+ "resolved": "9.3.1",
+ "contentHash": "GWrE6BA0smWFLbN+XPU2l5rDF9Uzelfbb3w35jJ0CGIat+p1ChbtLcbkvYRMEculBHOAo12omwAAOm3VFWkoJQ=="
+ },
+ "Microsoft.EntityFrameworkCore.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "GRMaiPkqYna/gCsyDffYDWmefGPC3hDrdMw+2rrGcQwhs6uZOsaMQXMJnoXQ35tx9SkBV2ieRRU9N/jLOO6BZw=="
+ },
+ "Microsoft.Extensions.Caching.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "5fGxcw2vuYp8s0wio9H1ECiuk4iKSdTIlNuigdLIrkhg+5XAwgFVDB/5Ots3pfN/QhABLYXutA79JFtnUKDSHA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Caching.Memory": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "G9mregdatGWMCQWeCw012LDeJVP7G/XIxH8Ddbjc8bD1//dA+8VVQdcRE9jI1moyoJxSSZhHITUnNQ8FUDl5+Q==",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Abstractions": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "woZsWLhOQsASuxbmgiZJqiGUBNo3IjRdXC92xt8rRokza+P6/nIsnzq7sm9Or6ZYcRl2kL1ufj8HVzp1QlPTXw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "qGhRPd3VxfLV9UqatVOiD9mAeUbj2KiMwGFYC5uXlzExiZQoe4X/hdmzGIU7BQjNLTqCnnbTHVyBglG3668/HA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Tp/+LPb70RyjjtLg9m5C959eP4KrUpJHThZfAegZVpsfmGvzfuNkuYbI/ft+LvXhMSyUcAeOPaN6rzTccwnZAg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.CommandLine": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "8D4HaqxWdm5M/nuhQffjPoR1ekhlpyKTXjFMAT5KlP0dvxkJe5JLAP6MAsuUEUxKWG09Bi5aAUaYMFKrMqWHqA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.EnvironmentVariables": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "JhKySWIL8+N4yFt4HPm1rGKCHooze+MBdTdpXc0bd/PGm31TrSUi2m0Nek1y441Wlv/RE6VH0W/DCv2xnmy8FA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.FileExtensions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "NgLB9cYnIb0/djSDcnqo4GIGGWooxGmr/gCUe3/CRXcKqLizOFui8MyW4EVkTB/KNJL+oXdMXnD6ZRm3Y+qkrQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Json": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "LiFKJgc9jZEW+7RhcSfsvCwoikt1lDdOqOn+whZC5zVHyg/gExftHl2QPtmfiHsEdDNg+Y+BDr6835tOfj8Y7A==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.FileExtensions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "NLXI3PbTe39q6/sgs7JYhmfPf7bMzReUoAJ0q9Po6yhfM+0anZa7PrEva4W2SdiLWGyB9eKZS9THGt2BP40xJg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "86RgyFsmVslW4Nu28IXgt8tLglynGQrwjk/xhGZaTe8j6YIeR1Ywoc42hSHsBSl920CQdfqq2dBohZiGm3AkUA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "IlXZUZIA9b99yQURc8jOLmmS6GD42vj6t+LqWs6Dd+naggObSbEXDw8DU8DUu2tL8CnyG96F4pDLhjd7BmZPAQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "0j06qq5I1YGSIi4M86UaVITBprvn3bTWKmQiLDNEqnZ2d+UxaFb+tVqemxVzr5lkr6GTR83ExUfSIpCnBaTZFA=="
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "VyjlpOHGpT9xoNFKNd/27FBF4eBimMcCCIfMxkeju/8uUnugwsxHfzZX2iP+ilYeoYB4HeT5gAoswTIKD6SYJw==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Relational": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Oxn4vqDk+EwceTMpZxVm7L/UZEAM1qIQlNP1+7tBZckD+P4SKrm/5X4gMTPCTdpnau/xY8Sb4/0d6onomSg4ZA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.FileProviders.Physical": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "zm8WVod4swgprGrkxkuSILlbXqdDRqF+3y6U0I7jlmj4PMyKN6d8pzXZHUn5lr/gZVULzk/+FeTYlTupt6akpg==",
+ "dependencies": {
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileSystemGlobbing": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.FileSystemGlobbing": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "mvRf9qOH/LslWIee/h+lsElnoUyKotEwoPL31soqScmO/eoxObaTCLCdx2DdqPdRi9LnB+7qKZ49jfyrLZuc+w=="
+ },
+ "Microsoft.Extensions.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Xd/2F+uWblTiUp+ssaDZN2ea4vmnHmW6PXugmqBHumyhqVkyeh6RJ3S2Zo/F+1bXIL/KuGqe2pKv6UiGOc1KeQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "N7Gm9SjugYjmmnhwbBKC9DFqGqjfJvh6YfOJgtwh0AW0Xpok3dIVors1ik050XmUxKAgAc7nNngDIJyFb06K2g==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "9S/DFt4cohlMPpzIxjG6kk0L8MuN2vDm9pbMCulxtJzzk82oJHVLBd8vuQxaPskaYQwKqmFmbannf5eoChgjYg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Configuration": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "bUth5ip7YsZMXWZS42IRTI0zDrPEqdE+xnsmcL0Pk784grWKApDvc5UoMi2tP2qYJ5ylFzeVDuDu08sFATq1bg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Console": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "WyZEG/O8jKqBOBF6/M6IJqiEyWFBUv6PDyzNoXDA0mBZwKtkuf7GiZ/0/8eU8OpLKKQL0O95oPOY1szrWIKofQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Debug": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "r/A0ahpXmZH/8ltPjrFFWp12BIizK9cCVJXPcHyOad8e4eIX7P/geW+uBYdczkeCAaMebT4jEU7snOm4GnmKfA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.EventLog": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "goAl30/WwmdnWDPRwATaDPIK0iuDBnQSMTH2XYGVB1SwReg7hglhvDNjjpNhT25US3GF4I5q6BhTNs6nFYzEfg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "System.Diagnostics.EventLog": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.EventSource": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "tHynPVHbTicuaDpS2JVTxX0qA5VTg15CXgVKTwWvvudb5BvW5aVew8MMyek6LrDGAom7UbON1jf1T5GhpTilFA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "hyNdX4c2UwkRkzb9byw0H2DQkRzwBM3mzY2sCM9egwzTyg8dvQJmp5noQHGEaaCORQrNK3DD2gREBsc2DlXS4A==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Options.ConfigurationExtensions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Y4E24zffF/aPS0igNvY6ZzAQfbxd6AYdC9L4brnH+uK0yYYHIR6FeGVQVVjAOo8wub1EQDl2B90lCcpqoTF7Yw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "fmEbAUFsaIKirgLt/lYhuFRBwhcSJN31jjHgCdbQxJiWOum6EdLjkbgGuukSP9z/a+9LibaxII/kF+GwOXgC4g=="
+ },
+ "Npgsql": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "7nb5YzXuvWWJxB0J8DiyL3we+X4FOctZrt0fIBnucOIaIevFEEwGQVZKtiu9olXdlNAK1eNgqSral6r/jlhI4w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.0"
+ }
+ },
+ "Npgsql.DependencyInjection": {
+ "type": "Transitive",
+ "resolved": "10.0.2",
+ "contentHash": "/Efri6iP5Z2kj3amM/WPMoa0pzOBaIM+C+uMXltaBMu2hVZciNluuK51Mn2FmWKhqwTcMZdwHYUfbm8LbKRJMQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
+ "Npgsql": "10.0.2"
+ }
+ },
+ "OpenTelemetry": {
+ "type": "Transitive",
+ "resolved": "1.15.3",
+ "contentHash": "N0i6WjPoHPbZyms1ugbDIFAJFuGlpeExJMU/+XSL0lQRUkg/D0utFkDoLXf8Z1km5B+xVZ2GyMXXiX8qdeNmPg==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.0",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.0",
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "1.15.3"
+ }
+ },
+ "OpenTelemetry.Api": {
+ "type": "Transitive",
+ "resolved": "1.15.3",
+ "contentHash": "fX+fkCysfPut+qCcT3bKqyX4QN9Saf4CgX8HLOHywEVD+Xr7sULtfuypITpoDysjx8R59dn/3mWhgimMH8cm/g=="
+ },
+ "OpenTelemetry.Api.ProviderBuilderExtensions": {
+ "type": "Transitive",
+ "resolved": "1.15.3",
+ "contentHash": "SYn0lqYDwLMWhv/zlNGsQcl2yX++yTumanX46bmOZE/ZDOd1WjPBO2kZaZgKLEZTZk48pavIFGJ6vOvxXgWVFQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
+ "OpenTelemetry.Api": "1.15.3"
+ }
+ },
+ "System.Diagnostics.EventLog": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "s2PcxHK4IYQ6gmD3VSBkym9tWGkFisKjcjWBdl7a+n4Yy66ae4beJ1ZdjDp060SSll4W3Rt4H2LW87dWckv+QQ=="
+ },
+ "System.Security.Cryptography.Pkcs": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "CoCRHFym33aUSf/NtWSVSZa99dkd0Hm7OCZUxORBjRB16LNhIEOf8THPqzIYlvKM0nNDAPTRBa1FxEECrgaxxA=="
+ },
+ "adminassistant.domainmodel": {
+ "type": "Project",
+ "dependencies": {
+ "Ardalis.Extensions": "[0.9.4, )",
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "Ardalis.Result": "[10.1.0, )",
+ "FluentValidation": "[12.1.1, )",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )",
+ "SimonGeering.Framework": "[1.0.0, )"
+ }
+ },
+ "adminassistant.infrastructure": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.DomainModel": "[1.0.0, )",
+ "AdminAssistant.Infrastructure.ClientSide": "[1.0.0, )",
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "Ardalis.Result": "[10.1.0, )",
+ "Ardalis.Specification.EntityFrameworkCore": "[9.3.1, )",
+ "Aspire.Npgsql.EntityFrameworkCore.PostgreSQL": "[13.4.6, )",
+ "Mediator.Abstractions": "[3.0.2, )",
+ "Microsoft.EntityFrameworkCore.Relational": "[10.0.9, )",
+ "Microsoft.Extensions.Hosting": "[10.0.9, )",
+ "Npgsql.EntityFrameworkCore.PostgreSQL": "[10.0.2, )",
+ "SimonGeering.Framework": "[1.0.0, )"
+ }
+ },
+ "adminassistant.infrastructure.clientside": {
+ "type": "Project",
+ "dependencies": {
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "PDFsharp": "[6.2.4, )"
+ }
+ },
+ "simongeering.framework": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )"
+ }
+ },
+ "Ardalis.Extensions": {
+ "type": "CentralTransitive",
+ "requested": "[0.9.4, )",
+ "resolved": "0.9.4",
+ "contentHash": "5JDKpMiEsxbz9N1yynsMFc2rBXDQ5iHLockW8lxahqlj9B5gxbENTAXBY2Jswp4vcGG+cNQxv81KrUqd4mXQSA==",
+ "dependencies": {
+ "Ardalis.GuardClauses": "3.2.0"
+ }
+ },
+ "Ardalis.GuardClauses": {
+ "type": "CentralTransitive",
+ "requested": "[5.0.0, )",
+ "resolved": "5.0.0",
+ "contentHash": "jVPRvLw0xIUFto2cMrKgRYADWIHbEEfzZHGiU/swwNgl1zo28Q1zfSa3VUC3C0s9DyhFDPSaF4dEDQRyTZUcyQ=="
+ },
+ "Ardalis.Specification.EntityFrameworkCore": {
+ "type": "CentralTransitive",
+ "requested": "[9.3.1, )",
+ "resolved": "9.3.1",
+ "contentHash": "QbOo4E6HWdKXZ9QUrqcgiGN4EKtzt0kzGzqr2zc32q5QESzBrceJ3GX1ymWVdCCOzJO1+GPm+/a/5ovSkfrLoQ==",
+ "dependencies": {
+ "Ardalis.Specification": "9.3.1",
+ "Microsoft.EntityFrameworkCore": "9.0.8",
+ "Microsoft.EntityFrameworkCore.Relational": "9.0.8"
+ }
+ },
+ "Aspire.Npgsql.EntityFrameworkCore.PostgreSQL": {
+ "type": "CentralTransitive",
+ "requested": "[13.4.6, )",
+ "resolved": "13.4.6",
+ "contentHash": "Lt92FuyX4JkKwrAgrOsVARpmk3U9vBGBq784ZEO3hR2vC74o8VS/VWBJHYrRBYTXapuj+mwwPzvcUICmbB43Zg==",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Memory": "10.0.8",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8",
+ "Npgsql.DependencyInjection": "10.0.2",
+ "Npgsql.EntityFrameworkCore.PostgreSQL": "10.0.0",
+ "Npgsql.OpenTelemetry": "10.0.2",
+ "OpenTelemetry.Extensions.Hosting": "1.15.3"
+ }
+ },
+ "FluentValidation": {
+ "type": "CentralTransitive",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "EPpkIe1yh1a0OXyC100oOA8WMbZvqUu5plwhvYcb7oSELfyUZzfxV48BLhvs3kKo4NwG7MGLNgy1RJiYtT8Dpw=="
+ },
+ "Microsoft.EntityFrameworkCore": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "tu85SRzOT021V7EQlViCiAE7TqldVn469Y6lt5TEn/+XC4/MeNCHgMRSxqYuWqvF4zAQZUhCmtNEZuM3ss4LeA==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Abstractions": "10.0.9",
+ "Microsoft.EntityFrameworkCore.Analyzers": "10.0.9",
+ "Microsoft.Extensions.Caching.Memory": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9"
+ }
+ },
+ "Microsoft.EntityFrameworkCore.Relational": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "dEoyYKgiaZHHgOFm1WMWm1sFEsEuhPWufX4L9PekKtqd/RaIcPjkCjvbrVvJtApErb5wPSJhYvnTlxhH+p9h2g==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore": "10.0.9",
+ "Microsoft.Extensions.Caching.Memory": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.UserSecrets": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "ockJRreRW/HbGwoyHzYOxMucFBimvAZ8lKNwQLMHrS6mwkDUaCJMWzzeE+Rm9vgFlv2o/xqk8fm+FpqrDCnkTA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Json": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "NijozhERJDIaJ4k5TSMy1jOi0cSC2HfkvRD/Sl+kGSSKgVbFnF4GxgtMN/MrzHB8D1JxIrD4xSer9Blh9v3axQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "g41l/30G3K4B/d/L8kjux0+30e27c8D0FVQ/PFCpbekgfDpj9mnDhieP67EqXWvl1EWNeZh2rpR4F5B/jcDOHA=="
+ },
+ "Microsoft.Extensions.Hosting": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "HTgnvmK0ubesUFO16pLC+i9+RS8lEGd6TmDouuy75FsAgIFrSwUVhYCqG2IENzBJwgxGc/6Rsulfsvd9ZG/XkA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.Configuration.CommandLine": "10.0.9",
+ "Microsoft.Extensions.Configuration.EnvironmentVariables": "10.0.9",
+ "Microsoft.Extensions.Configuration.FileExtensions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Json": "10.0.9",
+ "Microsoft.Extensions.Configuration.UserSecrets": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Diagnostics": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.9",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.9",
+ "Microsoft.Extensions.Logging.Console": "10.0.9",
+ "Microsoft.Extensions.Logging.Debug": "10.0.9",
+ "Microsoft.Extensions.Logging.EventLog": "10.0.9",
+ "Microsoft.Extensions.Logging.EventSource": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Npgsql.EntityFrameworkCore.PostgreSQL": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.2, )",
+ "resolved": "10.0.2",
+ "contentHash": "PsNYgPOSW41Xx19gin7y4EdZAPteWr9Cb01XkdObxOsPzi+mgBupBEN7J7+erXFsROPOILM7MlIoO9QzL8+LGQ==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore": "[10.0.4, 11.0.0)",
+ "Microsoft.EntityFrameworkCore.Relational": "[10.0.4, 11.0.0)",
+ "Npgsql": "10.0.3"
+ }
+ },
+ "Npgsql.OpenTelemetry": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.2",
+ "contentHash": "kjc+3DzqjaFk0L3cmR92emyJd7GAgwSiiyuzvumHFEp0EVp6GbrtdIe0jD8NANdPVqYM8prH9ND8GQsQAFXCKA==",
+ "dependencies": {
+ "Npgsql": "10.0.2",
+ "OpenTelemetry.API": "1.14.0"
+ }
+ },
+ "OpenTelemetry.Extensions.Hosting": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.15.3",
+ "contentHash": "u8n/W8yIlqv0BXZmvId1iVaeWXG42tGKdTkuLYg5g57Y/r9CeUNzqtrSHNdG5IoO8iPX79w3v+WsbAHgUQbfeg==",
+ "dependencies": {
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.0",
+ "OpenTelemetry": "1.15.3"
+ }
+ },
+ "PDFsharp": {
+ "type": "CentralTransitive",
+ "requested": "[6.2.4, )",
+ "resolved": "6.2.4",
+ "contentHash": "GhTr9F1uOYXHCIEOB5PXIgqn5a8WLsJL2m0eewTA0IvY1j6N4HGXHKKmEyB90/N6vrjmYamf41V9zbmdW2HY3g==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.3",
+ "System.Security.Cryptography.Pkcs": "8.0.1"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AdminAssistant.Aspire.AppHost/packages.lock.json b/src/AdminAssistant.Aspire.AppHost/packages.lock.json
new file mode 100644
index 00000000..fb3520ca
--- /dev/null
+++ b/src/AdminAssistant.Aspire.AppHost/packages.lock.json
@@ -0,0 +1,1085 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Aspire.Dashboard.Sdk.linux-x64": {
+ "type": "Direct",
+ "requested": "[13.4.6, )",
+ "resolved": "13.4.6",
+ "contentHash": "D1wLblOuViLyFXn4cVf/Y+ww2g8s0GnuRmsJCEXCxSFBhao59+6FgUMa8YSZ/Qd4Byj+ZQS+7/6ndbhgJpu8kQ=="
+ },
+ "Aspire.Hosting.AppHost": {
+ "type": "Direct",
+ "requested": "[13.4.6, )",
+ "resolved": "13.4.6",
+ "contentHash": "+4BxGpb2JQDk3+uOmk5eDpK0Brg2d3hwqrK/7d/aDBAUoHYbjfwbItIfdYJjKjbxUkBiaotokcWdVbLNsMo9Nw==",
+ "dependencies": {
+ "AspNetCore.HealthChecks.Uris": "9.0.0",
+ "Aspire.Hosting": "13.4.6",
+ "Google.Protobuf": "3.34.1",
+ "Grpc.AspNetCore": "2.80.0",
+ "Grpc.Net.ClientFactory": "2.80.0",
+ "Grpc.Tools": "2.80.0",
+ "Humanizer.Core": "3.0.10",
+ "JsonPatch.Net": "3.3.0",
+ "KubernetesClient": "19.0.2",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "10.0.8",
+ "Microsoft.Extensions.FileSystemGlobbing": "10.0.8",
+ "Microsoft.Extensions.Hosting": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Http": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8",
+ "ModelContextProtocol": "1.3.0",
+ "Newtonsoft.Json": "13.0.4",
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": "1.15.3",
+ "OpenTelemetry.Extensions.Hosting": "1.15.3",
+ "Polly.Core": "8.6.6",
+ "Semver": "3.0.0",
+ "StreamJsonRpc": "2.25.29",
+ "System.IO.Hashing": "10.0.8"
+ }
+ },
+ "Aspire.Hosting.Docker": {
+ "type": "Direct",
+ "requested": "[13.4.6, )",
+ "resolved": "13.4.6",
+ "contentHash": "jktHP/Wl7hUedLkHqPKHbjH9yF68vvD1ZaRWQp7jDSkYXbCMhl8bPx3eXpS/TMYNpBh/ej5ivL04VEGUPhKPXw==",
+ "dependencies": {
+ "AspNetCore.HealthChecks.Uris": "9.0.0",
+ "Aspire.Hosting": "13.4.6",
+ "Google.Protobuf": "3.34.1",
+ "Grpc.AspNetCore": "2.80.0",
+ "Grpc.Net.ClientFactory": "2.80.0",
+ "Grpc.Tools": "2.80.0",
+ "Humanizer.Core": "3.0.10",
+ "JsonPatch.Net": "3.3.0",
+ "KubernetesClient": "19.0.2",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.27",
+ "Microsoft.Extensions.FileSystemGlobbing": "10.0.8",
+ "Microsoft.Extensions.Hosting": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Http": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8",
+ "ModelContextProtocol": "1.3.0",
+ "Newtonsoft.Json": "13.0.4",
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": "1.15.3",
+ "OpenTelemetry.Extensions.Hosting": "1.15.3",
+ "Polly.Core": "8.6.6",
+ "Semver": "3.0.0",
+ "StreamJsonRpc": "2.25.29",
+ "System.IO.Hashing": "10.0.8"
+ }
+ },
+ "Aspire.Hosting.Keycloak": {
+ "type": "Direct",
+ "requested": "[13.4.6-preview.1.26319.6, )",
+ "resolved": "13.4.6-preview.1.26319.6",
+ "contentHash": "KAtJVQGyTqgtcYGNfFgBEBbMfYiPUmhIQVg1VbK+WLICZ0YUeRSk3PvyKjvHzl96hwPITsXJL+vZK2RBPOoo+g==",
+ "dependencies": {
+ "AspNetCore.HealthChecks.Uris": "9.0.0",
+ "Aspire.Hosting": "13.4.6",
+ "Google.Protobuf": "3.34.1",
+ "Grpc.AspNetCore": "2.80.0",
+ "Grpc.Net.ClientFactory": "2.80.0",
+ "Grpc.Tools": "2.80.0",
+ "Humanizer.Core": "3.0.10",
+ "JsonPatch.Net": "3.3.0",
+ "KubernetesClient": "19.0.2",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.27",
+ "Microsoft.Extensions.FileSystemGlobbing": "10.0.8",
+ "Microsoft.Extensions.Hosting": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Http": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8",
+ "ModelContextProtocol": "1.3.0",
+ "Newtonsoft.Json": "13.0.4",
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": "1.15.3",
+ "OpenTelemetry.Extensions.Hosting": "1.15.3",
+ "Polly.Core": "8.6.6",
+ "Semver": "3.0.0",
+ "StreamJsonRpc": "2.25.29",
+ "System.IO.Hashing": "10.0.8"
+ }
+ },
+ "Aspire.Hosting.Kubernetes": {
+ "type": "Direct",
+ "requested": "[13.4.6-preview.1.26319.6, )",
+ "resolved": "13.4.6-preview.1.26319.6",
+ "contentHash": "xtZ1i4swRN1jXwgVoDL8vCiVeJTh3/uWpVTx4cpnfRkSnAgjXpZFGoBk5G86OPuvQpSCysnw5k0jgITC3UbN7g==",
+ "dependencies": {
+ "AspNetCore.HealthChecks.Uris": "9.0.0",
+ "Aspire.Hosting": "13.4.6",
+ "Google.Protobuf": "3.34.1",
+ "Grpc.AspNetCore": "2.80.0",
+ "Grpc.Net.ClientFactory": "2.80.0",
+ "Grpc.Tools": "2.80.0",
+ "Humanizer.Core": "3.0.10",
+ "JsonPatch.Net": "3.3.0",
+ "KubernetesClient": "19.0.2",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.27",
+ "Microsoft.Extensions.FileSystemGlobbing": "10.0.8",
+ "Microsoft.Extensions.Hosting": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Http": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8",
+ "ModelContextProtocol": "1.3.0",
+ "Newtonsoft.Json": "13.0.4",
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": "1.15.3",
+ "OpenTelemetry.Extensions.Hosting": "1.15.3",
+ "Polly.Core": "8.6.6",
+ "Semver": "3.0.0",
+ "StreamJsonRpc": "2.25.29",
+ "System.IO.Hashing": "10.0.8"
+ }
+ },
+ "Aspire.Hosting.Orchestration.linux-x64": {
+ "type": "Direct",
+ "requested": "[13.4.6, )",
+ "resolved": "13.4.6",
+ "contentHash": "zPPL4sZwp8WS8SvncVQfAXVFIIX/00jGe5v220pKjzZgLrBloQUmesHegESkqxTtSA5VBUhlalJgBWKeInEICA=="
+ },
+ "Aspire.Hosting.PostgreSQL": {
+ "type": "Direct",
+ "requested": "[13.4.6, )",
+ "resolved": "13.4.6",
+ "contentHash": "NyL7O7e7DcpZSF0sAz332GIJ3S7X/66NoqhPqzVMPbNYfF97bTrk7C7Yq1tuilffHfq2SV2xi6aHbhGOmSoGqw==",
+ "dependencies": {
+ "AspNetCore.HealthChecks.NpgSql": "9.0.0",
+ "AspNetCore.HealthChecks.Uris": "9.0.0",
+ "Aspire.Hosting": "13.4.6",
+ "Google.Protobuf": "3.34.1",
+ "Grpc.AspNetCore": "2.80.0",
+ "Grpc.Net.ClientFactory": "2.80.0",
+ "Grpc.Tools": "2.80.0",
+ "Humanizer.Core": "3.0.10",
+ "JsonPatch.Net": "3.3.0",
+ "KubernetesClient": "19.0.2",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.27",
+ "Microsoft.Extensions.FileSystemGlobbing": "10.0.8",
+ "Microsoft.Extensions.Hosting": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Http": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8",
+ "ModelContextProtocol": "1.3.0",
+ "Newtonsoft.Json": "13.0.4",
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": "1.15.3",
+ "OpenTelemetry.Extensions.Hosting": "1.15.3",
+ "Polly.Core": "8.6.6",
+ "Semver": "3.0.0",
+ "StreamJsonRpc": "2.25.29",
+ "System.IO.Hashing": "10.0.8"
+ }
+ },
+ "Aspire.Hosting.RabbitMQ": {
+ "type": "Direct",
+ "requested": "[13.4.6, )",
+ "resolved": "13.4.6",
+ "contentHash": "AZLjFJFGucS4JquL7xHJuTc/Oh4jLcJzfmxeUplNk0jwXgd+ZUrdpd0YwvC7uRkdfLb6hSLFzU1n3UZqUEnATQ==",
+ "dependencies": {
+ "AspNetCore.HealthChecks.Rabbitmq": "9.0.0",
+ "AspNetCore.HealthChecks.Uris": "9.0.0",
+ "Aspire.Hosting": "13.4.6",
+ "Google.Protobuf": "3.34.1",
+ "Grpc.AspNetCore": "2.80.0",
+ "Grpc.Net.ClientFactory": "2.80.0",
+ "Grpc.Tools": "2.80.0",
+ "Humanizer.Core": "3.0.10",
+ "JsonPatch.Net": "3.3.0",
+ "KubernetesClient": "19.0.2",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.27",
+ "Microsoft.Extensions.FileSystemGlobbing": "10.0.8",
+ "Microsoft.Extensions.Hosting": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Http": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8",
+ "ModelContextProtocol": "1.3.0",
+ "Newtonsoft.Json": "13.0.4",
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": "1.15.3",
+ "OpenTelemetry.Extensions.Hosting": "1.15.3",
+ "Polly.Core": "8.6.6",
+ "RabbitMQ.Client": "7.2.1",
+ "Semver": "3.0.0",
+ "StreamJsonRpc": "2.25.29",
+ "System.IO.Hashing": "10.0.8"
+ }
+ },
+ "Aspire.Hosting.Redis": {
+ "type": "Direct",
+ "requested": "[13.4.6, )",
+ "resolved": "13.4.6",
+ "contentHash": "UW4XTP72beiHhyth+2IHxilEN6HOnc+u88m9C9qoc35ysoTsZrxDDdTQjc6mteS8yENitQrE8VJlg2bLoU2AoQ==",
+ "dependencies": {
+ "AspNetCore.HealthChecks.Redis": "9.0.0",
+ "AspNetCore.HealthChecks.Uris": "9.0.0",
+ "Aspire.Hosting": "13.4.6",
+ "Google.Protobuf": "3.34.1",
+ "Grpc.AspNetCore": "2.80.0",
+ "Grpc.Net.ClientFactory": "2.80.0",
+ "Grpc.Tools": "2.80.0",
+ "Humanizer.Core": "3.0.10",
+ "JsonPatch.Net": "3.3.0",
+ "KubernetesClient": "19.0.2",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.27",
+ "Microsoft.Extensions.FileSystemGlobbing": "10.0.8",
+ "Microsoft.Extensions.Hosting": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Http": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8",
+ "ModelContextProtocol": "1.3.0",
+ "Newtonsoft.Json": "13.0.4",
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": "1.15.3",
+ "OpenTelemetry.Extensions.Hosting": "1.15.3",
+ "Polly.Core": "8.6.6",
+ "Semver": "3.0.0",
+ "StackExchange.Redis": "2.13.1",
+ "StreamJsonRpc": "2.25.29",
+ "System.IO.Hashing": "10.0.8"
+ }
+ },
+ "Aspire.Hosting.Yarp": {
+ "type": "Direct",
+ "requested": "[13.4.6, )",
+ "resolved": "13.4.6",
+ "contentHash": "BOoKe5u/PMVwCmcQ44DJADJ7MFeB4ECD8AyB890Vr2tcwGBGKkNuF1J6cF+4sOHKq/gfPWGzANrsAlRsIosgNw==",
+ "dependencies": {
+ "AspNetCore.HealthChecks.Uris": "9.0.0",
+ "Aspire.Hosting": "13.4.6",
+ "Google.Protobuf": "3.34.1",
+ "Grpc.AspNetCore": "2.80.0",
+ "Grpc.Net.ClientFactory": "2.80.0",
+ "Grpc.Tools": "2.80.0",
+ "Humanizer.Core": "3.0.10",
+ "JsonPatch.Net": "3.3.0",
+ "KubernetesClient": "19.0.2",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.27",
+ "Microsoft.Extensions.FileSystemGlobbing": "10.0.8",
+ "Microsoft.Extensions.Hosting": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Http": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8",
+ "ModelContextProtocol": "1.3.0",
+ "Newtonsoft.Json": "13.0.4",
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": "1.15.3",
+ "OpenTelemetry.Extensions.Hosting": "1.15.3",
+ "Polly.Core": "8.6.6",
+ "Semver": "3.0.0",
+ "StreamJsonRpc": "2.25.29",
+ "System.IO.Hashing": "10.0.8",
+ "Yarp.ReverseProxy": "2.3.0"
+ }
+ },
+ "SonarAnalyzer.CSharp": {
+ "type": "Direct",
+ "requested": "[10.28.0.143324, )",
+ "resolved": "10.28.0.143324",
+ "contentHash": "ZnmYHFiQw2Aph2ft9c7UqVrqe79aZR5l7oeG59+sgrSAO9J159meglP1Zo34+Mcw4etIUTC9btYnP0Ar/rQIyg=="
+ },
+ "Aspire.Hosting": {
+ "type": "Transitive",
+ "resolved": "13.4.6",
+ "contentHash": "YJEvsrgcVLPQ88aJ3aFMIEJue0ZFmyH8RfyQu0PnHdZzjBAiK0c8BaYUAycWu35QpTe4hHxEYaY0wW4gpy/kwg==",
+ "dependencies": {
+ "AspNetCore.HealthChecks.Uris": "9.0.0",
+ "Google.Protobuf": "3.34.1",
+ "Grpc.AspNetCore": "2.80.0",
+ "Grpc.Net.ClientFactory": "2.80.0",
+ "Humanizer.Core": "3.0.10",
+ "JsonPatch.Net": "3.3.0",
+ "KubernetesClient": "19.0.2",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.27",
+ "Microsoft.Extensions.FileSystemGlobbing": "10.0.8",
+ "Microsoft.Extensions.Hosting": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Http": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8",
+ "ModelContextProtocol": "1.3.0",
+ "Newtonsoft.Json": "13.0.4",
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": "1.15.3",
+ "OpenTelemetry.Extensions.Hosting": "1.15.3",
+ "Polly.Core": "8.6.6",
+ "Semver": "3.0.0",
+ "StreamJsonRpc": "2.25.29",
+ "System.IO.Hashing": "10.0.8"
+ }
+ },
+ "AspNetCore.HealthChecks.NpgSql": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "npc58/AD5zuVxERdhCl2Kb7WnL37mwX42SJcXIwvmEig0/dugOLg3SIwtfvvh3TnvTwR/sk5LYNkkPaBdks61A==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.11",
+ "Npgsql": "8.0.3"
+ }
+ },
+ "AspNetCore.HealthChecks.Rabbitmq": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "7WSQ7EwioA5niakzzLtGVcZMEOh+42fSwrI24vnNsT7gZuVGOViNekyz38G6wBPYKcpL/lUkMdg3ZaCiZTi/Dw==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.11",
+ "RabbitMQ.Client": "7.0.0"
+ }
+ },
+ "AspNetCore.HealthChecks.Redis": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "yNH0h8GLRbAf+PU5HNVLZ5hNeyq9mDVmRKO9xuZsme/znUYoBJlQvI0gq45gaZNlLncCHkMhR4o90MuT+gxxPw==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.11",
+ "StackExchange.Redis": "2.7.4"
+ }
+ },
+ "AspNetCore.HealthChecks.Uris": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "XYdNlA437KeF8p9qOpZFyNqAN+c0FXt/JjTvzH/Qans0q0O3pPE8KPnn39ucQQjR/Roum1vLTP3kXiUs8VHyuA==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.11",
+ "Microsoft.Extensions.Http": "8.0.0"
+ }
+ },
+ "Fractions": {
+ "type": "Transitive",
+ "resolved": "7.3.0",
+ "contentHash": "2bETFWLBc8b7Ut2SVi+bxhGVwiSpknHYGBh2PADyGWONLkTxT7bKyDRhF8ao+XUv90tq8Fl7GTPxSI5bacIRJw=="
+ },
+ "Google.Protobuf": {
+ "type": "Transitive",
+ "resolved": "3.34.1",
+ "contentHash": "212vdYxRuVopGE5bess6Jg5oXWyizA6hcLPTI7G+qA4PthQEvfeof3njT+7VSY5v/+O0P22xTydiP5fSJJpGEA=="
+ },
+ "Grpc.AspNetCore": {
+ "type": "Transitive",
+ "resolved": "2.80.0",
+ "contentHash": "ASbJbdtCUlGiKxe9NsN/QeG1PdibYoN0pEgP9U87cvS6HV0XsT+VdO/g2M6Ri8zZURfX5c7MBTaFVP/YCrC72A==",
+ "dependencies": {
+ "Google.Protobuf": "3.31.1",
+ "Grpc.AspNetCore.Server.ClientFactory": "2.80.0",
+ "Grpc.Tools": "2.80.0"
+ }
+ },
+ "Grpc.AspNetCore.Server": {
+ "type": "Transitive",
+ "resolved": "2.80.0",
+ "contentHash": "lbK7z1sZP5imPdQ035f/CZ61iIaBWouY6A580E9JNo7vzXYX/Qo+GQtSjOzhP9VFbxk7mtLoMhn/v1fT2U7kTw==",
+ "dependencies": {
+ "Grpc.Net.Common": "2.80.0"
+ }
+ },
+ "Grpc.AspNetCore.Server.ClientFactory": {
+ "type": "Transitive",
+ "resolved": "2.80.0",
+ "contentHash": "7JdfxQZv/pO9qU5Ild2mrkzYA7PmVGDKVmWqKVCZNRSDN/RluRN4S4utYgBSwAcYgUBWQDHNb1Ll7wm3BdHfqw==",
+ "dependencies": {
+ "Grpc.AspNetCore.Server": "2.80.0",
+ "Grpc.Net.ClientFactory": "2.80.0"
+ }
+ },
+ "Grpc.Core.Api": {
+ "type": "Transitive",
+ "resolved": "2.80.0",
+ "contentHash": "i/8s+MOrYa6n7BmZ5bilcbHk+EMJDQHm2MKLhwGAT+urQqlZ6cpjvSivYvuULjebuX+UKieLYZbLRCmVQxFRkw=="
+ },
+ "Grpc.Net.Client": {
+ "type": "Transitive",
+ "resolved": "2.80.0",
+ "contentHash": "I1Aa24nTRMHqx0pmQfvthFsOpejquDjiJV6092KBqjw6EEr3wA9CMXlrdkoEgHartOiJrpKyZiQRl7n0NVlfBg==",
+ "dependencies": {
+ "Grpc.Net.Common": "2.80.0",
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.0"
+ }
+ },
+ "Grpc.Net.ClientFactory": {
+ "type": "Transitive",
+ "resolved": "2.80.0",
+ "contentHash": "YtY1DWID2phwiGc8qBG7+wf00Do5jE7BkJgCc6nbu5b50OsD89mSd73oCE8fCnUo7IjtDAEYFOYI3NSzgn28gw==",
+ "dependencies": {
+ "Grpc.Net.Client": "2.80.0",
+ "Microsoft.Extensions.Http": "8.0.0"
+ }
+ },
+ "Grpc.Net.Common": {
+ "type": "Transitive",
+ "resolved": "2.80.0",
+ "contentHash": "E2ERsx+9IXlry4yjBl8btx0XMIKzymGNSvX5jmBS/uSwYyYDoKIDcIREyLqFLvd8vcJdcoRlycpvn9YRXutFpQ==",
+ "dependencies": {
+ "Grpc.Core.Api": "2.80.0"
+ }
+ },
+ "Grpc.Tools": {
+ "type": "Transitive",
+ "resolved": "2.80.0",
+ "contentHash": "NS1AxwVZnrdbBoMf5L5ruGjBjoLBej9avhqxWNsgfu2GU6FhpxEVJOwLJsdljlDCjvquJiAH2zf/WodIWMvf2w=="
+ },
+ "Humanizer.Core": {
+ "type": "Transitive",
+ "resolved": "3.0.10",
+ "contentHash": "yZIhtw8sYuvsONzQbZxWpR60tMWYHXoo0DL6nyOqSFiU5POjBTSEyWFpTQtJEZuy+oqiYTXKXY/Mjx7KnqIQFw=="
+ },
+ "Json.More.Net": {
+ "type": "Transitive",
+ "resolved": "2.1.0",
+ "contentHash": "qtwsyAsL55y2vB2/sK4Pjg3ZyVzD5KKSpV3lOAMHlnjFfsjQ/86eHJfQT9aV1YysVXzF4+xyHOZbh7Iu3YQ7Lg=="
+ },
+ "JsonPatch.Net": {
+ "type": "Transitive",
+ "resolved": "3.3.0",
+ "contentHash": "GIcMMDtzfzVfIpQgey8w7dhzcw6jG5nD4DDAdQCTmHfblkCvN7mI8K03to8YyUhKMl4PTR6D6nLSvWmyOGFNTg==",
+ "dependencies": {
+ "JsonPointer.Net": "5.2.0"
+ }
+ },
+ "JsonPointer.Net": {
+ "type": "Transitive",
+ "resolved": "5.2.0",
+ "contentHash": "qe1F7Tr/p4mgwLPU9P60MbYkp+xnL2uCPnWXGgzfR/AZCunAZIC0RZ32dLGJJEhSuLEfm0YF/1R3u5C7mEVq+w==",
+ "dependencies": {
+ "Humanizer.Core": "2.14.1",
+ "Json.More.Net": "2.1.0"
+ }
+ },
+ "KubernetesClient": {
+ "type": "Transitive",
+ "resolved": "19.0.2",
+ "contentHash": "0m8FuzCDBygaXMbsb7qVapNZzTm4ftM7ECp/waTRh/XOUQziRF2rKJCRmsvYbBXgJkQvU+FBbkoa40hexzDC+g==",
+ "dependencies": {
+ "Fractions": "7.3.0",
+ "YamlDotNet": "16.3.0"
+ }
+ },
+ "MessagePack.Annotations": {
+ "type": "Transitive",
+ "resolved": "2.5.302",
+ "contentHash": "PTHQHbMJzx1VtUUCpnvPavD7o5X9s2dAJ4uQHAP2kBCwJKICpPTZq0qxzbB4/6iJJiIxem8zlxyfldGAx1SjSQ=="
+ },
+ "Microsoft.Extensions.AI.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.5.2",
+ "contentHash": "Ei+YWV9Ybnps7pR1dgjlG29gelXEwZkhLVAcWmKe6HvXS6LNBYgSdWiY3Hk9OZXYtK34rv/NtLWBQYQGOBQYPQ=="
+ },
+ "Microsoft.Extensions.Caching.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.7",
+ "contentHash": "pUDgQKEqNUFlerDIFRg7zzoDVRPEWIG7nR40h8Gzg8RXza4Ry0lWZ7u91bmwu3iUDCxw3Dv6TLHVFoAgY0gy7Q==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.7"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "ehZcoPbjzWzS4XFvuz7R3V55SmpdkyMqFURLH3yXaN9NtXd9tR6CGB7pd49HYtCkenl+G7ctXSFLhNI08xLfRg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "I63esIFbL3h5pSt7gXpXOlmcwDmYBUoYNEglKfDPFUqtYvSV84f2l28hO2lfVXsV0wdlplgAM7IVz16matapSg==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "R3NN1X+kVu14uoxLEW6sBSQyhogDSbaOQzILnCtuXxBN4hx22AgjWPwZX6v/suERFkEDgU1lk12AglHTrUxhlw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.8",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Configuration.CommandLine": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "nQXq1a4MiInYh+0VF9fguxAl06q2ftmOyYQ+5e933s4rk57xjgkbTjUdFUySzjrcrvDeWsSqlZB+TE8+TbM2HA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.8",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Configuration.EnvironmentVariables": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "bVGqctAfPGfTxJvNp8pMshtvpsUj6r6JkeiCNVIGVYO5gBxuxdN0Lbr25kEvE/zXdctkEc44g8HssnPgDnFGVA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.8",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Configuration.FileExtensions": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "1g9mzuu8gIHkjYb0jLxOTQVl/QDG5nn0b0JzgT/gbgNKr6gXZzxOHRAsdYRc1eDApB7LdHR8uK5vQrNjIQdRrQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.8",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.8",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Json": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "KLtAZ6A38s1pIfCO2ns6aG14NNGMYNZ4PBYfFK4M+R4A+xuSc6oklhqDcpHZxvDpyBWeFtR5C8iQBw2ng8tUHQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.8",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.FileExtensions": "10.0.8",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "uduyw9d3Fi+sbredO5drA1S44AQS2FRNFyn72UmB2vmQIO1qaXprpp1U/2lYhYi8yFdVERfY9sy/pxw/qPOU9w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "+f4C5g78QCGNyxzUfrTYsB7qYx06Zca0e88s3qFlea9/lQhgPImYdNprlgzl1uHhRU3fVHLfmbijayU2sJEZ6w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "IlXZUZIA9b99yQURc8jOLmmS6GD42vj6t+LqWs6Dd+naggObSbEXDw8DU8DUu2tL8CnyG96F4pDLhjd7BmZPAQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "0j06qq5I1YGSIi4M86UaVITBprvn3bTWKmQiLDNEqnZ2d+UxaFb+tVqemxVzr5lkr6GTR83ExUfSIpCnBaTZFA=="
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "U+oquaPxFdY8lYeEIWO/AD7jDIl9sPW6aVWMQRHU/pZ/SWpLcOrAj2fcLe1HwXl4sYw1ONI56K/eELT3xr4RRQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.FileProviders.Physical": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "GkPvQe6IdidLu6Q3Lw6+B8NJpW8feW8czZ5mBKt5rXM/x8MvZfEp5WvAsjznzDGd23chIDrW0b2mmt+ScnEgiw==",
+ "dependencies": {
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.8",
+ "Microsoft.Extensions.FileSystemGlobbing": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.FileSystemGlobbing": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "IUQet3SY51xIFcFZKtAB6a54/Zdxs7T3SQ84kJtOD6yeXfZgiOMksACWD5qtTmXGQGFH4QYGBOT0KIO8Uy/dJw=="
+ },
+ "Microsoft.Extensions.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "MoOWFPT88/pDfmWpbU9PydKRX/rJFQkliowE/L9wbQcl94IicUphb5BFgepkWiDkYYxPnuEqjN4buzOGW4vJpQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.8",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "K60JhWC2hN/Gi7TP68tBxSzk5ACWOs7lkmPzsfA8Bcf/IXTajujt2ORMf9rSMk1bsng6Lv4Y3fuxp3bm1+15ug==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "fdVadZmsC8jRP0KvKy8mO8f6GV/HyBvElfcSxEhd+5FM5boAw/01iSaCto5G3G37ApJira4A3pNaVvBv8cUiLQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Logging.Configuration": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "rxSLTO7xTbcC3DuEJHNEijBr8g14Jj62zQ+DeFu68bsoTYoU8jLcMhc1735PV21bESXsATlL5LsfaWH71FOWAg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.8",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Logging.Console": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "6cv53sHsPnFS56PJw8X4GbNcjeX1KGyFJRxJWvxOgK63cnqeSB1k1eRwjUdkse0tBhwlH6qc9EOYDlan+CYTuw==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Logging.Debug": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "4HW3M1lGHHDwEYcDZHRNptBQ48LCI2yW+XV4vuxdfQUqafTpVT8j9RqAsez08krZKhIiaArWu8iQq5uRKZ9Ffg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Logging.EventLog": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "kK/C3SLIoGrcZvddYQw4eMm6YaROiSYBO7YgUR5Hdv5l+GIjBmbvQK5cST2FqjeubiAOPqFEimBT2N/8wVI+3A==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "System.Diagnostics.EventLog": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Logging.EventSource": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "HX2M0MgzwQM8jpLe3AYAEMd0YsUfOP5RgGrDuk+Ki9n7HSuMbvLm9TEV3qRI3Pg9aqxc56GfgK/KdMRBhfWwKw==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "VBD+131DpTNCNDfA4kIyKTiCySvJGNhwibdWBSdFRu7GMfXLXcXODkgA+KStKbbhzraLglZWUN4nXyHgW4JIRA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Options.ConfigurationExtensions": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "VOapXeO3lhBH0zYoyAH7tjapuo4V5pTHlevPpiSHueEquAajqd5nF0mttm+h/uE/exwAEuM5s26SzOJtletE3w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "OBPo4nYhMyIbtueoC10CBm6AGAbo/A9IV8QQ/6ryZS7VvmqpGT7hunazeHLxFawRzn3oLOq4jhqhpBX4tfswWQ=="
+ },
+ "Microsoft.NET.StringTools": {
+ "type": "Transitive",
+ "resolved": "18.4.0",
+ "contentHash": "iQWOKi3L5QStmWqDjDubcr1KlTDy88qBTe88I0etlUUo1l0zSNebGJXl1Xetyl+ACA+ujP3YUtxo3Nz54JPriw=="
+ },
+ "Microsoft.VisualStudio.Threading.Only": {
+ "type": "Transitive",
+ "resolved": "17.14.15",
+ "contentHash": "NqONyw1RXyj9P3k5e1uU2k9kc1ptwuU5NJQzG+MPq7vQVHUzBY8HLuJf/N2Rw5H/myD96CVxziDxmjawPuzntw==",
+ "dependencies": {
+ "Microsoft.VisualStudio.Validation": "17.8.8"
+ }
+ },
+ "Microsoft.VisualStudio.Validation": {
+ "type": "Transitive",
+ "resolved": "17.13.22",
+ "contentHash": "fC20ITOxlUpGQ0ltAxITQbeFxwuB6OjLT3lByC4+/Gm46o/Mwv9hlIVrBhiUhnqdQzUUvr4EHkdiYe7WOSMLmw=="
+ },
+ "ModelContextProtocol": {
+ "type": "Transitive",
+ "resolved": "1.3.0",
+ "contentHash": "WDaD6z9KkkCUHSo15xK7tYBERHy8uqP+cIUp8uIxhR0yrlpJLXTRcJcUUVqpXlBkV7MK9Eo3mTrAnctLnJuHDQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Abstractions": "10.0.7",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.7",
+ "ModelContextProtocol.Core": "1.3.0"
+ }
+ },
+ "ModelContextProtocol.Core": {
+ "type": "Transitive",
+ "resolved": "1.3.0",
+ "contentHash": "OWmdxDSwA7K9pNNg4t98MXNIssHG/wOQEr/G8pG5B7synDdw4MnmZ/IIVeb3yUdeznPqnDHvd3FBCK0jRk4IZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.AI.Abstractions": "10.5.2",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.7"
+ }
+ },
+ "Nerdbank.MessagePack": {
+ "type": "Transitive",
+ "resolved": "1.2.4",
+ "contentHash": "9NKlDsKkOV5zQFkZZnQmssdV6npFNs0Of1Nz5mvAJA4uANxCge2TfXQ9nCYUet58bEWQ00a/aNHdjmcXEI7iuQ==",
+ "dependencies": {
+ "Microsoft.NET.StringTools": "18.4.0",
+ "Microsoft.VisualStudio.Validation": "17.13.22",
+ "PolyType": "1.3.1"
+ }
+ },
+ "Nerdbank.Streams": {
+ "type": "Transitive",
+ "resolved": "2.13.16",
+ "contentHash": "GjifQ5M4IpQWjGNNbIrsj8M/M7ESb2328OeoGeqxk5rOJiuaAJ5zFc6CyqB+5UWKr1KEGK23hKoxA+z1gooAKA==",
+ "dependencies": {
+ "Microsoft.VisualStudio.Threading.Only": "17.13.61",
+ "Microsoft.VisualStudio.Validation": "17.8.8"
+ }
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.4",
+ "contentHash": "pdgNNMai3zv51W5aq268sujXUyx7SNdE2bj1wZcWjAQrKMFZV260lbqYop1d2GM67JI1huLRwxo9ZqnfF/lC6A=="
+ },
+ "Npgsql": {
+ "type": "Transitive",
+ "resolved": "8.0.3",
+ "contentHash": "6WEmzsQJCZAlUG1pThKg/RmeF6V+I0DmBBBE/8YzpRtEzhyZzKcK7ulMANDm5CkxrALBEC8H+5plxHWtIL7xnA==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.0"
+ }
+ },
+ "OpenTelemetry": {
+ "type": "Transitive",
+ "resolved": "1.15.3",
+ "contentHash": "N0i6WjPoHPbZyms1ugbDIFAJFuGlpeExJMU/+XSL0lQRUkg/D0utFkDoLXf8Z1km5B+xVZ2GyMXXiX8qdeNmPg==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.0",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.0",
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "1.15.3"
+ }
+ },
+ "OpenTelemetry.Api": {
+ "type": "Transitive",
+ "resolved": "1.15.3",
+ "contentHash": "fX+fkCysfPut+qCcT3bKqyX4QN9Saf4CgX8HLOHywEVD+Xr7sULtfuypITpoDysjx8R59dn/3mWhgimMH8cm/g=="
+ },
+ "OpenTelemetry.Api.ProviderBuilderExtensions": {
+ "type": "Transitive",
+ "resolved": "1.15.3",
+ "contentHash": "SYn0lqYDwLMWhv/zlNGsQcl2yX++yTumanX46bmOZE/ZDOd1WjPBO2kZaZgKLEZTZk48pavIFGJ6vOvxXgWVFQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
+ "OpenTelemetry.Api": "1.15.3"
+ }
+ },
+ "Pipelines.Sockets.Unofficial": {
+ "type": "Transitive",
+ "resolved": "2.2.16",
+ "contentHash": "nonu9l0YrZH6krVYbskBjE7uG0VMAnvOQ9PU+RmzUsy+++vHkqzzCkHRoP877OiA3iRTxJyNDLfpcU8hrJ3/YQ=="
+ },
+ "Polly.Core": {
+ "type": "Transitive",
+ "resolved": "8.6.6",
+ "contentHash": "lCBL9mmhF9TZxHG3beVRkyjlLohkIC464xIAq7J7Y59C+z42hmsdUaeCKl2SIAYertOUU5TeBXyQDLDQGIKePQ=="
+ },
+ "PolyType": {
+ "type": "Transitive",
+ "resolved": "1.3.1",
+ "contentHash": "GFdJvsN/VczpP0GfdPIi0jDudGH2Emk3rcIJHdqwU2SL2zQm1xSl6OTYvQSUxvzHu3ClWo096ICdWXVkpifQUA=="
+ },
+ "RabbitMQ.Client": {
+ "type": "Transitive",
+ "resolved": "7.2.1",
+ "contentHash": "YKXEfg9fVQiTKgZlvIhAfPSFaamEgi8DsQmisCH0IAsU4FYLrtoguDrDj6JtJVGUt40QPnBLRH6fTQcAC4qsOg==",
+ "dependencies": {
+ "System.Threading.RateLimiting": "8.0.0"
+ }
+ },
+ "Semver": {
+ "type": "Transitive",
+ "resolved": "3.0.0",
+ "contentHash": "9jZCicsVgTebqkAujRWtC9J1A5EQVlu0TVKHcgoCuv345ve5DYf4D1MjhKEnQjdRZo6x/vdv6QQrYFs7ilGzLA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "5.0.1"
+ }
+ },
+ "StackExchange.Redis": {
+ "type": "Transitive",
+ "resolved": "2.13.1",
+ "contentHash": "jC5wkRe8K6HPoDENUws+fl2d7+GKz+ky8SWEDzYzPx6hHt2EwxWm01gmYPWLzlT49jfYYap0guB5bExtyX9aIQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.0",
+ "Pipelines.Sockets.Unofficial": "2.2.16",
+ "System.IO.Hashing": "10.0.2"
+ }
+ },
+ "StreamJsonRpc": {
+ "type": "Transitive",
+ "resolved": "2.25.29",
+ "contentHash": "ebP0ScWRtbd1EWayLRJ6bjM7aPwYZoJIIU1DApmn/cYl2dydR9f4p6Mj3eY77qzAywy6IbZWB9sJPSWeO5hmrg==",
+ "dependencies": {
+ "MessagePack": "2.5.302",
+ "Microsoft.VisualStudio.Threading.Only": "17.14.15",
+ "Microsoft.VisualStudio.Validation": "17.13.22",
+ "Nerdbank.MessagePack": "1.2.4",
+ "Nerdbank.Streams": "2.13.16",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "System.Diagnostics.EventLog": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "+Ro7WgIom+BDNH+YhTuZKL6QJ0ctfOpTyfUG/h3aU5KwXt3OaNf0wYWrTvoBUj+34Dy5V8dN9yCco1hAJQ4txw=="
+ },
+ "System.IO.Hashing": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "+dJsbPJ3FyUbTZNplFj0RCKePFizmv6ewDV46JE9q/IVH4c3xTCftHfHelLsAKf0jryIPqgMb5GpS0x7TAY3mg=="
+ },
+ "System.Threading.RateLimiting": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "7mu9v0QDv66ar3DpGSZHg9NuNcxDaaAcnMULuZlaTpP9+hwXhrxNGsF5GmLkSHxFdb5bBc1TzeujsRgTrPWi+Q=="
+ },
+ "YamlDotNet": {
+ "type": "Transitive",
+ "resolved": "16.3.0",
+ "contentHash": "SgMOdxbz8X65z8hraIs6hOEdnkH6hESTAIUa7viEngHOYaH+6q5XJmwr1+yb9vJpNQ19hCQY69xbFsLtXpobQA=="
+ },
+ "Yarp.ReverseProxy": {
+ "type": "Transitive",
+ "resolved": "2.3.0",
+ "contentHash": "gxtkN3a+9biu9V9Zd5NaTO6VZWXAnS2mhQ0R/VXmSPoTuiQNZsakKikrKpDtKxrL5nUYzbRsHtl40WNq+ZBKKg==",
+ "dependencies": {
+ "System.IO.Hashing": "8.0.0"
+ }
+ },
+ "adminassistant.domainmodel": {
+ "type": "Project",
+ "dependencies": {
+ "Ardalis.Extensions": "[0.9.4, )",
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "Ardalis.Result": "[10.1.0, )",
+ "FluentValidation": "[12.1.1, )",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )",
+ "SimonGeering.Framework": "[1.0.0, )"
+ }
+ },
+ "simongeering.framework": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )"
+ }
+ },
+ "Ardalis.Extensions": {
+ "type": "CentralTransitive",
+ "requested": "[0.9.4, )",
+ "resolved": "0.9.4",
+ "contentHash": "5JDKpMiEsxbz9N1yynsMFc2rBXDQ5iHLockW8lxahqlj9B5gxbENTAXBY2Jswp4vcGG+cNQxv81KrUqd4mXQSA==",
+ "dependencies": {
+ "Ardalis.GuardClauses": "3.2.0"
+ }
+ },
+ "Ardalis.GuardClauses": {
+ "type": "CentralTransitive",
+ "requested": "[5.0.0, )",
+ "resolved": "5.0.0",
+ "contentHash": "jVPRvLw0xIUFto2cMrKgRYADWIHbEEfzZHGiU/swwNgl1zo28Q1zfSa3VUC3C0s9DyhFDPSaF4dEDQRyTZUcyQ=="
+ },
+ "Ardalis.Result": {
+ "type": "CentralTransitive",
+ "requested": "[10.1.0, )",
+ "resolved": "10.1.0",
+ "contentHash": "+WgsXh+JRm0d8BZPlBUc5w0+FTda4vbWRa/IF2q4zDoRsU5BXr8w4rTbYEklZIMNgQQZTcNouR/QfBV5I/4XYQ=="
+ },
+ "FluentValidation": {
+ "type": "CentralTransitive",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "EPpkIe1yh1a0OXyC100oOA8WMbZvqUu5plwhvYcb7oSELfyUZzfxV48BLhvs3kKo4NwG7MGLNgy1RJiYtT8Dpw=="
+ },
+ "MessagePack": {
+ "type": "CentralTransitive",
+ "requested": "[2.6.100, )",
+ "resolved": "2.5.302",
+ "contentHash": "5DZsKli4dMEpm/glcMAheuO8/IesfaTskbfsuvgnQwWFKS5FN7Z6yNx+5F+UW94E+9N2qt8Zs63/XVzpLsElgA==",
+ "dependencies": {
+ "MessagePack.Annotations": "2.5.302",
+ "Microsoft.NET.StringTools": "17.6.3"
+ }
+ },
+ "Microsoft.Extensions.Configuration.UserSecrets": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.8",
+ "contentHash": "6XTfFOnf27WY8kEeZkTZ4YNn0t+imgvdQ0YaAdR4vgURKATo9bCaVJ1KB71IOJAQtJP7Elb53VHlTNXg2CtSsA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Json": "10.0.8",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.8",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.8",
+ "contentHash": "daf62xHIrq8pnE709hgaZZN9tSam9TGGepWe1+bE6V3GEuVwJiMs6ib+38lfMCyAJAHiX0vapxBhsuMSV7U+cg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "g41l/30G3K4B/d/L8kjux0+30e27c8D0FVQ/PFCpbekgfDpj9mnDhieP67EqXWvl1EWNeZh2rpR4F5B/jcDOHA=="
+ },
+ "Microsoft.Extensions.Hosting": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.8",
+ "contentHash": "VfEyM2BipThcSd0GG/FS2ZPCVCTiosVq2zLKEDsfeMIg78sOVZPEmS7CgWlb+dqTlgXvLSL4OG2q6sM4xRhHNg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.8",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.Configuration.CommandLine": "10.0.8",
+ "Microsoft.Extensions.Configuration.EnvironmentVariables": "10.0.8",
+ "Microsoft.Extensions.Configuration.FileExtensions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Json": "10.0.8",
+ "Microsoft.Extensions.Configuration.UserSecrets": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Diagnostics": "10.0.8",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.8",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.8",
+ "Microsoft.Extensions.Logging.Console": "10.0.8",
+ "Microsoft.Extensions.Logging.Debug": "10.0.8",
+ "Microsoft.Extensions.Logging.EventLog": "10.0.8",
+ "Microsoft.Extensions.Logging.EventSource": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Http": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.8",
+ "contentHash": "/9LU/KWJOrtZJB9ymPjcARDyjp679BvBA/aSncv2Kt84WlSKz767HtxHg8EFsu8n21BMLZi+5XxlkKbLwfn4iA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Diagnostics": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8"
+ }
+ },
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.15.3",
+ "contentHash": "FEXJepcseTGbATiCkUfP7ipoFEYYfl/0UmmUwi0KxCPg9PaUA8ab2P1LGopK+/HExasJ1ZutFhZrN6WvUIR23g==",
+ "dependencies": {
+ "OpenTelemetry": "1.15.3"
+ }
+ },
+ "OpenTelemetry.Extensions.Hosting": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.15.3",
+ "contentHash": "u8n/W8yIlqv0BXZmvId1iVaeWXG42tGKdTkuLYg5g57Y/r9CeUNzqtrSHNdG5IoO8iPX79w3v+WsbAHgUQbfeg==",
+ "dependencies": {
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.0",
+ "OpenTelemetry": "1.15.3"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AdminAssistant.Aspire.DatabaseMigrationService/packages.lock.json b/src/AdminAssistant.Aspire.DatabaseMigrationService/packages.lock.json
new file mode 100644
index 00000000..bb084348
--- /dev/null
+++ b/src/AdminAssistant.Aspire.DatabaseMigrationService/packages.lock.json
@@ -0,0 +1,846 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Aspire.Npgsql.EntityFrameworkCore.PostgreSQL": {
+ "type": "Direct",
+ "requested": "[13.4.6, )",
+ "resolved": "13.4.6",
+ "contentHash": "Lt92FuyX4JkKwrAgrOsVARpmk3U9vBGBq784ZEO3hR2vC74o8VS/VWBJHYrRBYTXapuj+mwwPzvcUICmbB43Zg==",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Memory": "10.0.8",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8",
+ "Npgsql.DependencyInjection": "10.0.2",
+ "Npgsql.EntityFrameworkCore.PostgreSQL": "10.0.0",
+ "Npgsql.OpenTelemetry": "10.0.2",
+ "OpenTelemetry.Extensions.Hosting": "1.15.3"
+ }
+ },
+ "Microsoft.EntityFrameworkCore": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "tu85SRzOT021V7EQlViCiAE7TqldVn469Y6lt5TEn/+XC4/MeNCHgMRSxqYuWqvF4zAQZUhCmtNEZuM3ss4LeA==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Abstractions": "10.0.9",
+ "Microsoft.EntityFrameworkCore.Analyzers": "10.0.9",
+ "Microsoft.Extensions.Caching.Memory": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9"
+ }
+ },
+ "Microsoft.EntityFrameworkCore.Analyzers": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "aiEFB+C5EsZGqxvMPazE07hbWsp4iPaufJpanGt5O+lrwv7mJLrqma5haVIgFAPCyhQkmk75XSCEubT1zUjxtA=="
+ },
+ "Microsoft.EntityFrameworkCore.Relational": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "dEoyYKgiaZHHgOFm1WMWm1sFEsEuhPWufX4L9PekKtqd/RaIcPjkCjvbrVvJtApErb5wPSJhYvnTlxhH+p9h2g==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore": "10.0.9",
+ "Microsoft.Extensions.Caching.Memory": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Hosting": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "HTgnvmK0ubesUFO16pLC+i9+RS8lEGd6TmDouuy75FsAgIFrSwUVhYCqG2IENzBJwgxGc/6Rsulfsvd9ZG/XkA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.Configuration.CommandLine": "10.0.9",
+ "Microsoft.Extensions.Configuration.EnvironmentVariables": "10.0.9",
+ "Microsoft.Extensions.Configuration.FileExtensions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Json": "10.0.9",
+ "Microsoft.Extensions.Configuration.UserSecrets": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Diagnostics": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.9",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.9",
+ "Microsoft.Extensions.Logging.Console": "10.0.9",
+ "Microsoft.Extensions.Logging.Debug": "10.0.9",
+ "Microsoft.Extensions.Logging.EventLog": "10.0.9",
+ "Microsoft.Extensions.Logging.EventSource": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "SonarAnalyzer.CSharp": {
+ "type": "Direct",
+ "requested": "[10.28.0.143324, )",
+ "resolved": "10.28.0.143324",
+ "contentHash": "ZnmYHFiQw2Aph2ft9c7UqVrqe79aZR5l7oeG59+sgrSAO9J159meglP1Zo34+Mcw4etIUTC9btYnP0Ar/rQIyg=="
+ },
+ "Ardalis.Specification": {
+ "type": "Transitive",
+ "resolved": "9.3.1",
+ "contentHash": "GWrE6BA0smWFLbN+XPU2l5rDF9Uzelfbb3w35jJ0CGIat+p1ChbtLcbkvYRMEculBHOAo12omwAAOm3VFWkoJQ=="
+ },
+ "Microsoft.EntityFrameworkCore.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "GRMaiPkqYna/gCsyDffYDWmefGPC3hDrdMw+2rrGcQwhs6uZOsaMQXMJnoXQ35tx9SkBV2ieRRU9N/jLOO6BZw=="
+ },
+ "Microsoft.Extensions.AmbientMetadata.Application": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "yZ0818pVYQvUFW/1m+f8A1+lIAeSeQxEOdUCMIC+tqcRRKlqNjKPRKvGHPp8xLRbZBLaHfBtDslJa/sofn7J/Q==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Caching.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "5fGxcw2vuYp8s0wio9H1ECiuk4iKSdTIlNuigdLIrkhg+5XAwgFVDB/5Ots3pfN/QhABLYXutA79JFtnUKDSHA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Caching.Memory": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "G9mregdatGWMCQWeCw012LDeJVP7G/XIxH8Ddbjc8bD1//dA+8VVQdcRE9jI1moyoJxSSZhHITUnNQ8FUDl5+Q==",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Abstractions": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Compliance.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "qbi6lg6dyvydBvpjXeBx3wLPvmgXWn3nwkKBOsgEck6w++BEsBcv8YhdcczME16Oq+a6wkdtna9/qCEkxsNw5A==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.ObjectPool": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "woZsWLhOQsASuxbmgiZJqiGUBNo3IjRdXC92xt8rRokza+P6/nIsnzq7sm9Or6ZYcRl2kL1ufj8HVzp1QlPTXw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "qGhRPd3VxfLV9UqatVOiD9mAeUbj2KiMwGFYC5uXlzExiZQoe4X/hdmzGIU7BQjNLTqCnnbTHVyBglG3668/HA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Tp/+LPb70RyjjtLg9m5C959eP4KrUpJHThZfAegZVpsfmGvzfuNkuYbI/ft+LvXhMSyUcAeOPaN6rzTccwnZAg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.CommandLine": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "8D4HaqxWdm5M/nuhQffjPoR1ekhlpyKTXjFMAT5KlP0dvxkJe5JLAP6MAsuUEUxKWG09Bi5aAUaYMFKrMqWHqA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.EnvironmentVariables": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "JhKySWIL8+N4yFt4HPm1rGKCHooze+MBdTdpXc0bd/PGm31TrSUi2m0Nek1y441Wlv/RE6VH0W/DCv2xnmy8FA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.FileExtensions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "NgLB9cYnIb0/djSDcnqo4GIGGWooxGmr/gCUe3/CRXcKqLizOFui8MyW4EVkTB/KNJL+oXdMXnD6ZRm3Y+qkrQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Json": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "LiFKJgc9jZEW+7RhcSfsvCwoikt1lDdOqOn+whZC5zVHyg/gExftHl2QPtmfiHsEdDNg+Y+BDr6835tOfj8Y7A==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.FileExtensions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.AutoActivation": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "WrSK0FGHSjSY4Pg4kd9Du8CUDwrgFTwHH1Y+N7sjyT6RFMU+G3coQ/Uq9PMGdQcy+DVKSMGHjfmWY47ZoYvhNA==",
+ "dependencies": {
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "NLXI3PbTe39q6/sgs7JYhmfPf7bMzReUoAJ0q9Po6yhfM+0anZa7PrEva4W2SdiLWGyB9eKZS9THGt2BP40xJg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "86RgyFsmVslW4Nu28IXgt8tLglynGQrwjk/xhGZaTe8j6YIeR1Ywoc42hSHsBSl920CQdfqq2dBohZiGm3AkUA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.ExceptionSummarization": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "Kc4XbbxtCzvn2P/fKF48xLWPbp3N5DV0MkJlgPJHEb47PUqCJ6kEl/JTKfpmP7QLuwYjx2QxKTdtwXfpjgA6KQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "IlXZUZIA9b99yQURc8jOLmmS6GD42vj6t+LqWs6Dd+naggObSbEXDw8DU8DUu2tL8CnyG96F4pDLhjd7BmZPAQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "0j06qq5I1YGSIi4M86UaVITBprvn3bTWKmQiLDNEqnZ2d+UxaFb+tVqemxVzr5lkr6GTR83ExUfSIpCnBaTZFA=="
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "VyjlpOHGpT9xoNFKNd/27FBF4eBimMcCCIfMxkeju/8uUnugwsxHfzZX2iP+ilYeoYB4HeT5gAoswTIKD6SYJw==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Relational": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Features": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "ohU5761fyZq7eSg0nLQMzHvCrGGGmyzgRzAGebHZlQ4D7/9v9uzPYJ/AUYcD5kNSiOWR34Ma4qGgKs0PUPrYZw=="
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Oxn4vqDk+EwceTMpZxVm7L/UZEAM1qIQlNP1+7tBZckD+P4SKrm/5X4gMTPCTdpnau/xY8Sb4/0d6onomSg4ZA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.FileProviders.Physical": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "zm8WVod4swgprGrkxkuSILlbXqdDRqF+3y6U0I7jlmj4PMyKN6d8pzXZHUn5lr/gZVULzk/+FeTYlTupt6akpg==",
+ "dependencies": {
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileSystemGlobbing": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.FileSystemGlobbing": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "mvRf9qOH/LslWIee/h+lsElnoUyKotEwoPL31soqScmO/eoxObaTCLCdx2DdqPdRi9LnB+7qKZ49jfyrLZuc+w=="
+ },
+ "Microsoft.Extensions.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Xd/2F+uWblTiUp+ssaDZN2ea4vmnHmW6PXugmqBHumyhqVkyeh6RJ3S2Zo/F+1bXIL/KuGqe2pKv6UiGOc1KeQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Http.Diagnostics": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "1m1zdBGW5J8MOxdZpJ5mUqdSaamRrYkpmfnEfeDmlZnglpfgDztcKOBU6cVsmn90AB7Ji2w8USvEsJ8PahbBWQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Http": "10.0.9",
+ "Microsoft.Extensions.Telemetry": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "N7Gm9SjugYjmmnhwbBKC9DFqGqjfJvh6YfOJgtwh0AW0Xpok3dIVors1ik050XmUxKAgAc7nNngDIJyFb06K2g==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "9S/DFt4cohlMPpzIxjG6kk0L8MuN2vDm9pbMCulxtJzzk82oJHVLBd8vuQxaPskaYQwKqmFmbannf5eoChgjYg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Configuration": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "bUth5ip7YsZMXWZS42IRTI0zDrPEqdE+xnsmcL0Pk784grWKApDvc5UoMi2tP2qYJ5ylFzeVDuDu08sFATq1bg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Console": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "WyZEG/O8jKqBOBF6/M6IJqiEyWFBUv6PDyzNoXDA0mBZwKtkuf7GiZ/0/8eU8OpLKKQL0O95oPOY1szrWIKofQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Debug": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "r/A0ahpXmZH/8ltPjrFFWp12BIizK9cCVJXPcHyOad8e4eIX7P/geW+uBYdczkeCAaMebT4jEU7snOm4GnmKfA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.EventLog": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "goAl30/WwmdnWDPRwATaDPIK0iuDBnQSMTH2XYGVB1SwReg7hglhvDNjjpNhT25US3GF4I5q6BhTNs6nFYzEfg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "System.Diagnostics.EventLog": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.EventSource": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "tHynPVHbTicuaDpS2JVTxX0qA5VTg15CXgVKTwWvvudb5BvW5aVew8MMyek6LrDGAom7UbON1jf1T5GhpTilFA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.ObjectPool": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "KZENCkfqO7Ciax6goUWQHDSxKH+x763hkBWMz9KpE87EyKW+EKEas9EFe9i1KgtQShG8KwKxaeJ5gd9sj6TuTQ=="
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "hyNdX4c2UwkRkzb9byw0H2DQkRzwBM3mzY2sCM9egwzTyg8dvQJmp5noQHGEaaCORQrNK3DD2gREBsc2DlXS4A==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Options.ConfigurationExtensions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Y4E24zffF/aPS0igNvY6ZzAQfbxd6AYdC9L4brnH+uK0yYYHIR6FeGVQVVjAOo8wub1EQDl2B90lCcpqoTF7Yw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "fmEbAUFsaIKirgLt/lYhuFRBwhcSJN31jjHgCdbQxJiWOum6EdLjkbgGuukSP9z/a+9LibaxII/kF+GwOXgC4g=="
+ },
+ "Microsoft.Extensions.Resilience": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "ldUrtRzWSnfe5945xoSxDXxoWXnIKn19E74Huieyp76XW/BjRk3bhkILSSib1NKdZ2lpi/ReTvOpNGcJ8hkOxw==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics": "10.0.9",
+ "Microsoft.Extensions.Diagnostics.ExceptionSummarization": "10.7.0",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9",
+ "Microsoft.Extensions.Telemetry.Abstractions": "10.7.0",
+ "Polly.Extensions": "8.4.2",
+ "Polly.RateLimiting": "8.4.2"
+ }
+ },
+ "Microsoft.Extensions.ServiceDiscovery.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "1a/tCYg7+5HdJRQ0BQDDGzANBaw/1fony7eNsMwQ5n9FZmO3K5JCls02o8fwQc296l0szNBwroLRtXf94OZw9A==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Features": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Telemetry": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "vZFNVvkz+7IABEv4klzPX/ZdmZQ6TrcReKUfeYIrQ2bbnvEcgZtG1RmOGeWkc1hFg8cq9sAgUc2lHCqlXSqf5A==",
+ "dependencies": {
+ "Microsoft.Extensions.AmbientMetadata.Application": "10.7.0",
+ "Microsoft.Extensions.DependencyInjection.AutoActivation": "10.7.0",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.9",
+ "Microsoft.Extensions.ObjectPool": "10.0.9",
+ "Microsoft.Extensions.Telemetry.Abstractions": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.Telemetry.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "ir1QKShZzfEmqO9LUWESVMUDZdnxYBSKQyulYPMeaye531lAuT8YTotthx+htrrS8hZY52HANeqowLQyCYBCZg==",
+ "dependencies": {
+ "Microsoft.Extensions.Compliance.Abstractions": "10.7.0",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.ObjectPool": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Npgsql": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "7nb5YzXuvWWJxB0J8DiyL3we+X4FOctZrt0fIBnucOIaIevFEEwGQVZKtiu9olXdlNAK1eNgqSral6r/jlhI4w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.0"
+ }
+ },
+ "Npgsql.DependencyInjection": {
+ "type": "Transitive",
+ "resolved": "10.0.2",
+ "contentHash": "/Efri6iP5Z2kj3amM/WPMoa0pzOBaIM+C+uMXltaBMu2hVZciNluuK51Mn2FmWKhqwTcMZdwHYUfbm8LbKRJMQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
+ "Npgsql": "10.0.2"
+ }
+ },
+ "OpenTelemetry": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "nE/Px3MUvQC8c0UG0DOP5OJE7vMtiMaPYi/6TkSS/o/O0s/oPq+8WaPYTVEPzb7lwu/QyLgknc+sFm2FjPXe2A==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.0",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.0",
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Api": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "WZP8Eb6vZTeNqeV+fjBitc7iefBoTHIhaWorqg/h/YiQBlcQJu0bICuTqKV0XRyjiE0eWs80yLlnUtHAFSkFWA=="
+ },
+ "OpenTelemetry.Api.ProviderBuilderExtensions": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "hZwaHAkXvUNn9+cS+vEvYBgIrIQOQRz2cIRUODZ5gxHsDsLeNCueLgZFkybopjE0jUhLut6lm5eL3LTqbW0hMg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
+ "OpenTelemetry.Api": "1.16.0"
+ }
+ },
+ "Polly.Core": {
+ "type": "Transitive",
+ "resolved": "8.4.2",
+ "contentHash": "BpE2I6HBYYA5tF0Vn4eoQOGYTYIK1BlF5EXVgkWGn3mqUUjbXAr13J6fZVbp7Q3epRR8yshacBMlsHMhpOiV3g=="
+ },
+ "Polly.Extensions": {
+ "type": "Transitive",
+ "resolved": "8.4.2",
+ "contentHash": "GZ9vRVmR0jV2JtZavt+pGUsQ1O1cuRKG7R7VOZI6ZDy9y6RNPvRvXK1tuS4ffUrv8L0FTea59oEuQzgS0R7zSA==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Options": "8.0.0",
+ "Polly.Core": "8.4.2"
+ }
+ },
+ "Polly.RateLimiting": {
+ "type": "Transitive",
+ "resolved": "8.4.2",
+ "contentHash": "ehTImQ/eUyO07VYW2WvwSmU9rRH200SKJ/3jku9rOkyWE0A2JxNFmAVms8dSn49QLSjmjFRRSgfNyOgr/2PSmA==",
+ "dependencies": {
+ "Polly.Core": "8.4.2",
+ "System.Threading.RateLimiting": "8.0.0"
+ }
+ },
+ "System.Diagnostics.EventLog": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "s2PcxHK4IYQ6gmD3VSBkym9tWGkFisKjcjWBdl7a+n4Yy66ae4beJ1ZdjDp060SSll4W3Rt4H2LW87dWckv+QQ=="
+ },
+ "System.Security.Cryptography.Pkcs": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "CoCRHFym33aUSf/NtWSVSZa99dkd0Hm7OCZUxORBjRB16LNhIEOf8THPqzIYlvKM0nNDAPTRBa1FxEECrgaxxA=="
+ },
+ "System.Threading.RateLimiting": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "7mu9v0QDv66ar3DpGSZHg9NuNcxDaaAcnMULuZlaTpP9+hwXhrxNGsF5GmLkSHxFdb5bBc1TzeujsRgTrPWi+Q=="
+ },
+ "adminassistant.aspire.servicedefaults": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Extensions.Http.Resilience": "[10.7.0, )",
+ "Microsoft.Extensions.ServiceDiscovery": "[10.7.0, )",
+ "Npgsql.OpenTelemetry": "[10.0.3, )",
+ "OpenTelemetry.Exporter.Console": "[1.16.0, )",
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": "[1.16.0, )",
+ "OpenTelemetry.Extensions.Hosting": "[1.16.0, )",
+ "OpenTelemetry.Instrumentation.AspNetCore": "[1.16.0, )",
+ "OpenTelemetry.Instrumentation.EntityFrameworkCore": "[1.0.0-beta.8, )",
+ "OpenTelemetry.Instrumentation.GrpcNetClient": "[1.6.0-beta.3, )",
+ "OpenTelemetry.Instrumentation.Http": "[1.16.0, )",
+ "OpenTelemetry.Instrumentation.Runtime": "[1.15.1, )",
+ "OpenTelemetry.Instrumentation.SqlClient": "[1.16.0, )"
+ }
+ },
+ "adminassistant.domainmodel": {
+ "type": "Project",
+ "dependencies": {
+ "Ardalis.Extensions": "[0.9.4, )",
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "Ardalis.Result": "[10.1.0, )",
+ "FluentValidation": "[12.1.1, )",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )",
+ "SimonGeering.Framework": "[1.0.0, )"
+ }
+ },
+ "adminassistant.infrastructure": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.DomainModel": "[1.0.0, )",
+ "AdminAssistant.Infrastructure.ClientSide": "[1.0.0, )",
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "Ardalis.Result": "[10.1.0, )",
+ "Ardalis.Specification.EntityFrameworkCore": "[9.3.1, )",
+ "Aspire.Npgsql.EntityFrameworkCore.PostgreSQL": "[13.4.6, )",
+ "Mediator.Abstractions": "[3.0.2, )",
+ "Microsoft.EntityFrameworkCore.Relational": "[10.0.9, )",
+ "Microsoft.Extensions.Hosting": "[10.0.9, )",
+ "Npgsql.EntityFrameworkCore.PostgreSQL": "[10.0.2, )",
+ "SimonGeering.Framework": "[1.0.0, )"
+ }
+ },
+ "adminassistant.infrastructure.clientside": {
+ "type": "Project",
+ "dependencies": {
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "PDFsharp": "[6.2.4, )"
+ }
+ },
+ "simongeering.framework": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )"
+ }
+ },
+ "Ardalis.Extensions": {
+ "type": "CentralTransitive",
+ "requested": "[0.9.4, )",
+ "resolved": "0.9.4",
+ "contentHash": "5JDKpMiEsxbz9N1yynsMFc2rBXDQ5iHLockW8lxahqlj9B5gxbENTAXBY2Jswp4vcGG+cNQxv81KrUqd4mXQSA==",
+ "dependencies": {
+ "Ardalis.GuardClauses": "3.2.0"
+ }
+ },
+ "Ardalis.GuardClauses": {
+ "type": "CentralTransitive",
+ "requested": "[5.0.0, )",
+ "resolved": "5.0.0",
+ "contentHash": "jVPRvLw0xIUFto2cMrKgRYADWIHbEEfzZHGiU/swwNgl1zo28Q1zfSa3VUC3C0s9DyhFDPSaF4dEDQRyTZUcyQ=="
+ },
+ "Ardalis.Result": {
+ "type": "CentralTransitive",
+ "requested": "[10.1.0, )",
+ "resolved": "10.1.0",
+ "contentHash": "+WgsXh+JRm0d8BZPlBUc5w0+FTda4vbWRa/IF2q4zDoRsU5BXr8w4rTbYEklZIMNgQQZTcNouR/QfBV5I/4XYQ=="
+ },
+ "Ardalis.Specification.EntityFrameworkCore": {
+ "type": "CentralTransitive",
+ "requested": "[9.3.1, )",
+ "resolved": "9.3.1",
+ "contentHash": "QbOo4E6HWdKXZ9QUrqcgiGN4EKtzt0kzGzqr2zc32q5QESzBrceJ3GX1ymWVdCCOzJO1+GPm+/a/5ovSkfrLoQ==",
+ "dependencies": {
+ "Ardalis.Specification": "9.3.1",
+ "Microsoft.EntityFrameworkCore": "9.0.8",
+ "Microsoft.EntityFrameworkCore.Relational": "9.0.8"
+ }
+ },
+ "FluentValidation": {
+ "type": "CentralTransitive",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "EPpkIe1yh1a0OXyC100oOA8WMbZvqUu5plwhvYcb7oSELfyUZzfxV48BLhvs3kKo4NwG7MGLNgy1RJiYtT8Dpw=="
+ },
+ "Mediator.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[3.0.2, )",
+ "resolved": "3.0.2",
+ "contentHash": "TytjnyN8gLObZBxkM7HHPFJF3LHtk6Y8mHW56ONuXRuVEK6Fmed3f0z79H9TpmoZQP2zQAIS4/0O9R2w0v02qw==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
+ }
+ },
+ "Microsoft.Extensions.Configuration.UserSecrets": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "ockJRreRW/HbGwoyHzYOxMucFBimvAZ8lKNwQLMHrS6mwkDUaCJMWzzeE+Rm9vgFlv2o/xqk8fm+FpqrDCnkTA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Json": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "NijozhERJDIaJ4k5TSMy1jOi0cSC2HfkvRD/Sl+kGSSKgVbFnF4GxgtMN/MrzHB8D1JxIrD4xSer9Blh9v3axQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "g41l/30G3K4B/d/L8kjux0+30e27c8D0FVQ/PFCpbekgfDpj9mnDhieP67EqXWvl1EWNeZh2rpR4F5B/jcDOHA=="
+ },
+ "Microsoft.Extensions.Http": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "5jdmuLRg1HO7x/v8McOf6ndhkMQWImkRBtJpXM8+xIocXNdLqCItyyFLKusdILc62TDzHuLlqaWoxtOA5FFOPg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Diagnostics": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Http.Resilience": {
+ "type": "CentralTransitive",
+ "requested": "[10.7.0, )",
+ "resolved": "10.7.0",
+ "contentHash": "3Lip0MkBVPtqU1wCM2M2Y8CzsqxA1BanVNMV9LQYMTwBgy25NDe6U9nSk6SfmsxXlh77iwSQuPsyjt5mxrOGmQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Http.Diagnostics": "10.7.0",
+ "Microsoft.Extensions.ObjectPool": "10.0.9",
+ "Microsoft.Extensions.Resilience": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.ServiceDiscovery": {
+ "type": "CentralTransitive",
+ "requested": "[10.7.0, )",
+ "resolved": "10.7.0",
+ "contentHash": "UgBfP98NmKDjx/2jbLGkckSlc8XG4ubkjPrqACE2i9LPmrgoYGWTh9snybRUGBm0sTchsq3on81XRxfvX+XC5g==",
+ "dependencies": {
+ "Microsoft.Extensions.Http": "10.0.9",
+ "Microsoft.Extensions.ServiceDiscovery.Abstractions": "10.7.0"
+ }
+ },
+ "Npgsql.EntityFrameworkCore.PostgreSQL": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.2, )",
+ "resolved": "10.0.2",
+ "contentHash": "PsNYgPOSW41Xx19gin7y4EdZAPteWr9Cb01XkdObxOsPzi+mgBupBEN7J7+erXFsROPOILM7MlIoO9QzL8+LGQ==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore": "[10.0.4, 11.0.0)",
+ "Microsoft.EntityFrameworkCore.Relational": "[10.0.4, 11.0.0)",
+ "Npgsql": "10.0.3"
+ }
+ },
+ "Npgsql.OpenTelemetry": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "ShsdG/FHxJ2VuWM6tebJL/mCWkcxymmvtENN59c85EsJdT4TStWwwtgZoBu/9UvC0qi1jpFZ6bOfl9ijiWD+vA==",
+ "dependencies": {
+ "Npgsql": "10.0.3",
+ "OpenTelemetry.API": "1.15.3"
+ }
+ },
+ "OpenTelemetry.Exporter.Console": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "cv3pKEn3KyJUNz9o8kvu5UN0NJEUoNSo5hJR4rgbfvqM6oA3moj+tkpbbQrE3bDvetBvYBes17ZxQxBBTvnJ+w==",
+ "dependencies": {
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "gzYLY8sVDY5FYtVlCYSzBYX53xslRlvBLxwFYOdNIhc76SgKdFYUoDQXOeQI3WPBCrZp51QNcP6fZHh1+HtpIQ==",
+ "dependencies": {
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Extensions.Hosting": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "/YfrO5MRaA156vhNanYGPX2JjOwKUrA0+Jf7ltT2eD3VkfHqXcEJY5Oxt/nWH8lqBOTc1nJpn2soBtD5Cml8Dg==",
+ "dependencies": {
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.0",
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Instrumentation.AspNetCore": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "vSC5EsmBVNcqXMh9BGkkq8zkoUjrg8ghBDb9zbKR8Bqjd05utjVgVft+fqsqQVsvlV5olGj1pBliHBngcIGSIg==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.EntityFrameworkCore": {
+ "type": "CentralTransitive",
+ "requested": "[1.0.0-beta.8, )",
+ "resolved": "1.0.0-beta.8",
+ "contentHash": "ilfbH1bDPm9YytgspAnQRVy3Hw0rNkYhjNJSNeT9QFWrwXAjCYVPVGTpHOgzM9gB5bS/u+04IgQainDzthUnVA==",
+ "dependencies": {
+ "Microsoft.Extensions.Options": "3.1.0",
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.6.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.GrpcNetClient": {
+ "type": "CentralTransitive",
+ "requested": "[1.6.0-beta.3, )",
+ "resolved": "1.6.0-beta.3",
+ "contentHash": "nzw8D5in6Hg/GbjNlq2FETP4GjSckae9hPGTxAUO7UiOS1lqkyxZJ7f4ntIjFKbiS3wuA9wPfQVH/3CaPV6EvQ==",
+ "dependencies": {
+ "OpenTelemetry": "1.6.0"
+ }
+ },
+ "OpenTelemetry.Instrumentation.Http": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "+Sz3lfvMXwWE8s/sMruHCDlO/+cArFVc6oBg1tCb70BKlL9FCC7uK4Ar2/VP9Hhwvs+UwaW1vGzE/uiByVHXiA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.0",
+ "Microsoft.Extensions.Options": "10.0.0",
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.Runtime": {
+ "type": "CentralTransitive",
+ "requested": "[1.15.1, )",
+ "resolved": "1.15.1",
+ "contentHash": "cpPwlUT5HXcLGPaIgsbSy0W9eFYAPGVbTP1p8/uyQ4Osvf5BJuPpEXE7crL09SmEd44r0DGNKDtsqxaAz0HxQw==",
+ "dependencies": {
+ "OpenTelemetry.Api": "[1.15.3, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.SqlClient": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "gZCmdQN24ty9FNLKYUR0VAojTByO650HgN89Ddoi9AIA2L3XqIHyUadNnFuIOKNo6+Pgrn4NgehvOzcmYhcl7A==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.0",
+ "Microsoft.Extensions.Options": "10.0.0",
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ },
+ "PDFsharp": {
+ "type": "CentralTransitive",
+ "requested": "[6.2.4, )",
+ "resolved": "6.2.4",
+ "contentHash": "GhTr9F1uOYXHCIEOB5PXIgqn5a8WLsJL2m0eewTA0IvY1j6N4HGXHKKmEyB90/N6vrjmYamf41V9zbmdW2HY3g==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.3",
+ "System.Security.Cryptography.Pkcs": "8.0.1"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AdminAssistant.Aspire.ServiceDefaults/packages.lock.json b/src/AdminAssistant.Aspire.ServiceDefaults/packages.lock.json
new file mode 100644
index 00000000..f8e153a2
--- /dev/null
+++ b/src/AdminAssistant.Aspire.ServiceDefaults/packages.lock.json
@@ -0,0 +1,232 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Microsoft.Extensions.Http.Resilience": {
+ "type": "Direct",
+ "requested": "[10.7.0, )",
+ "resolved": "10.7.0",
+ "contentHash": "3Lip0MkBVPtqU1wCM2M2Y8CzsqxA1BanVNMV9LQYMTwBgy25NDe6U9nSk6SfmsxXlh77iwSQuPsyjt5mxrOGmQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Http.Diagnostics": "10.7.0",
+ "Microsoft.Extensions.Resilience": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.ServiceDiscovery": {
+ "type": "Direct",
+ "requested": "[10.7.0, )",
+ "resolved": "10.7.0",
+ "contentHash": "UgBfP98NmKDjx/2jbLGkckSlc8XG4ubkjPrqACE2i9LPmrgoYGWTh9snybRUGBm0sTchsq3on81XRxfvX+XC5g==",
+ "dependencies": {
+ "Microsoft.Extensions.ServiceDiscovery.Abstractions": "10.7.0"
+ }
+ },
+ "Npgsql.OpenTelemetry": {
+ "type": "Direct",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "ShsdG/FHxJ2VuWM6tebJL/mCWkcxymmvtENN59c85EsJdT4TStWwwtgZoBu/9UvC0qi1jpFZ6bOfl9ijiWD+vA==",
+ "dependencies": {
+ "Npgsql": "10.0.3",
+ "OpenTelemetry.API": "1.15.3"
+ }
+ },
+ "OpenTelemetry.Exporter.Console": {
+ "type": "Direct",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "cv3pKEn3KyJUNz9o8kvu5UN0NJEUoNSo5hJR4rgbfvqM6oA3moj+tkpbbQrE3bDvetBvYBes17ZxQxBBTvnJ+w==",
+ "dependencies": {
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": {
+ "type": "Direct",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "gzYLY8sVDY5FYtVlCYSzBYX53xslRlvBLxwFYOdNIhc76SgKdFYUoDQXOeQI3WPBCrZp51QNcP6fZHh1+HtpIQ==",
+ "dependencies": {
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Extensions.Hosting": {
+ "type": "Direct",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "/YfrO5MRaA156vhNanYGPX2JjOwKUrA0+Jf7ltT2eD3VkfHqXcEJY5Oxt/nWH8lqBOTc1nJpn2soBtD5Cml8Dg==",
+ "dependencies": {
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Instrumentation.AspNetCore": {
+ "type": "Direct",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "vSC5EsmBVNcqXMh9BGkkq8zkoUjrg8ghBDb9zbKR8Bqjd05utjVgVft+fqsqQVsvlV5olGj1pBliHBngcIGSIg==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.EntityFrameworkCore": {
+ "type": "Direct",
+ "requested": "[1.0.0-beta.8, )",
+ "resolved": "1.0.0-beta.8",
+ "contentHash": "ilfbH1bDPm9YytgspAnQRVy3Hw0rNkYhjNJSNeT9QFWrwXAjCYVPVGTpHOgzM9gB5bS/u+04IgQainDzthUnVA==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.6.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.GrpcNetClient": {
+ "type": "Direct",
+ "requested": "[1.6.0-beta.3, )",
+ "resolved": "1.6.0-beta.3",
+ "contentHash": "nzw8D5in6Hg/GbjNlq2FETP4GjSckae9hPGTxAUO7UiOS1lqkyxZJ7f4ntIjFKbiS3wuA9wPfQVH/3CaPV6EvQ==",
+ "dependencies": {
+ "OpenTelemetry": "1.6.0"
+ }
+ },
+ "OpenTelemetry.Instrumentation.Http": {
+ "type": "Direct",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "+Sz3lfvMXwWE8s/sMruHCDlO/+cArFVc6oBg1tCb70BKlL9FCC7uK4Ar2/VP9Hhwvs+UwaW1vGzE/uiByVHXiA==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.Runtime": {
+ "type": "Direct",
+ "requested": "[1.15.1, )",
+ "resolved": "1.15.1",
+ "contentHash": "cpPwlUT5HXcLGPaIgsbSy0W9eFYAPGVbTP1p8/uyQ4Osvf5BJuPpEXE7crL09SmEd44r0DGNKDtsqxaAz0HxQw==",
+ "dependencies": {
+ "OpenTelemetry.Api": "[1.15.3, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.SqlClient": {
+ "type": "Direct",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "gZCmdQN24ty9FNLKYUR0VAojTByO650HgN89Ddoi9AIA2L3XqIHyUadNnFuIOKNo6+Pgrn4NgehvOzcmYhcl7A==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ },
+ "SonarAnalyzer.CSharp": {
+ "type": "Direct",
+ "requested": "[10.28.0.143324, )",
+ "resolved": "10.28.0.143324",
+ "contentHash": "ZnmYHFiQw2Aph2ft9c7UqVrqe79aZR5l7oeG59+sgrSAO9J159meglP1Zo34+Mcw4etIUTC9btYnP0Ar/rQIyg=="
+ },
+ "Microsoft.Extensions.AmbientMetadata.Application": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "yZ0818pVYQvUFW/1m+f8A1+lIAeSeQxEOdUCMIC+tqcRRKlqNjKPRKvGHPp8xLRbZBLaHfBtDslJa/sofn7J/Q=="
+ },
+ "Microsoft.Extensions.Compliance.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "qbi6lg6dyvydBvpjXeBx3wLPvmgXWn3nwkKBOsgEck6w++BEsBcv8YhdcczME16Oq+a6wkdtna9/qCEkxsNw5A=="
+ },
+ "Microsoft.Extensions.DependencyInjection.AutoActivation": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "WrSK0FGHSjSY4Pg4kd9Du8CUDwrgFTwHH1Y+N7sjyT6RFMU+G3coQ/Uq9PMGdQcy+DVKSMGHjfmWY47ZoYvhNA=="
+ },
+ "Microsoft.Extensions.Diagnostics.ExceptionSummarization": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "Kc4XbbxtCzvn2P/fKF48xLWPbp3N5DV0MkJlgPJHEb47PUqCJ6kEl/JTKfpmP7QLuwYjx2QxKTdtwXfpjgA6KQ=="
+ },
+ "Microsoft.Extensions.Http.Diagnostics": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "1m1zdBGW5J8MOxdZpJ5mUqdSaamRrYkpmfnEfeDmlZnglpfgDztcKOBU6cVsmn90AB7Ji2w8USvEsJ8PahbBWQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Telemetry": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.Resilience": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "ldUrtRzWSnfe5945xoSxDXxoWXnIKn19E74Huieyp76XW/BjRk3bhkILSSib1NKdZ2lpi/ReTvOpNGcJ8hkOxw==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.ExceptionSummarization": "10.7.0",
+ "Microsoft.Extensions.Telemetry.Abstractions": "10.7.0",
+ "Polly.Extensions": "8.4.2",
+ "Polly.RateLimiting": "8.4.2"
+ }
+ },
+ "Microsoft.Extensions.ServiceDiscovery.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "1a/tCYg7+5HdJRQ0BQDDGzANBaw/1fony7eNsMwQ5n9FZmO3K5JCls02o8fwQc296l0szNBwroLRtXf94OZw9A=="
+ },
+ "Microsoft.Extensions.Telemetry": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "vZFNVvkz+7IABEv4klzPX/ZdmZQ6TrcReKUfeYIrQ2bbnvEcgZtG1RmOGeWkc1hFg8cq9sAgUc2lHCqlXSqf5A==",
+ "dependencies": {
+ "Microsoft.Extensions.AmbientMetadata.Application": "10.7.0",
+ "Microsoft.Extensions.DependencyInjection.AutoActivation": "10.7.0",
+ "Microsoft.Extensions.Telemetry.Abstractions": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.Telemetry.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "ir1QKShZzfEmqO9LUWESVMUDZdnxYBSKQyulYPMeaye531lAuT8YTotthx+htrrS8hZY52HANeqowLQyCYBCZg==",
+ "dependencies": {
+ "Microsoft.Extensions.Compliance.Abstractions": "10.7.0"
+ }
+ },
+ "Npgsql": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "7nb5YzXuvWWJxB0J8DiyL3we+X4FOctZrt0fIBnucOIaIevFEEwGQVZKtiu9olXdlNAK1eNgqSral6r/jlhI4w=="
+ },
+ "OpenTelemetry": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "nE/Px3MUvQC8c0UG0DOP5OJE7vMtiMaPYi/6TkSS/o/O0s/oPq+8WaPYTVEPzb7lwu/QyLgknc+sFm2FjPXe2A==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Api": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "WZP8Eb6vZTeNqeV+fjBitc7iefBoTHIhaWorqg/h/YiQBlcQJu0bICuTqKV0XRyjiE0eWs80yLlnUtHAFSkFWA=="
+ },
+ "OpenTelemetry.Api.ProviderBuilderExtensions": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "hZwaHAkXvUNn9+cS+vEvYBgIrIQOQRz2cIRUODZ5gxHsDsLeNCueLgZFkybopjE0jUhLut6lm5eL3LTqbW0hMg==",
+ "dependencies": {
+ "OpenTelemetry.Api": "1.16.0"
+ }
+ },
+ "Polly.Core": {
+ "type": "Transitive",
+ "resolved": "8.4.2",
+ "contentHash": "BpE2I6HBYYA5tF0Vn4eoQOGYTYIK1BlF5EXVgkWGn3mqUUjbXAr13J6fZVbp7Q3epRR8yshacBMlsHMhpOiV3g=="
+ },
+ "Polly.Extensions": {
+ "type": "Transitive",
+ "resolved": "8.4.2",
+ "contentHash": "GZ9vRVmR0jV2JtZavt+pGUsQ1O1cuRKG7R7VOZI6ZDy9y6RNPvRvXK1tuS4ffUrv8L0FTea59oEuQzgS0R7zSA==",
+ "dependencies": {
+ "Polly.Core": "8.4.2"
+ }
+ },
+ "Polly.RateLimiting": {
+ "type": "Transitive",
+ "resolved": "8.4.2",
+ "contentHash": "ehTImQ/eUyO07VYW2WvwSmU9rRH200SKJ/3jku9rOkyWE0A2JxNFmAVms8dSn49QLSjmjFRRSgfNyOgr/2PSmA==",
+ "dependencies": {
+ "Polly.Core": "8.4.2"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AdminAssistant.AvaloniaApp/packages.lock.json b/src/AdminAssistant.AvaloniaApp/packages.lock.json
new file mode 100644
index 00000000..a1641cfc
--- /dev/null
+++ b/src/AdminAssistant.AvaloniaApp/packages.lock.json
@@ -0,0 +1,668 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Avalonia": {
+ "type": "Direct",
+ "requested": "[12.0.5, )",
+ "resolved": "12.0.5",
+ "contentHash": "eGDbwos1AMlOaXnGN5IQ+JGG3RViFFuyN3GP70irOSbqZt4H9A6quIP6uVFVni/bBczmt5ELGuHzN+lkLQSD1A==",
+ "dependencies": {
+ "Avalonia.BuildServices": "11.3.2",
+ "Avalonia.Remote.Protocol": "12.0.5",
+ "MicroCom.Runtime": "0.11.4"
+ }
+ },
+ "Avalonia.Desktop": {
+ "type": "Direct",
+ "requested": "[12.0.5, )",
+ "resolved": "12.0.5",
+ "contentHash": "L4bTMshYrhjSKu09Q60OHN1+Lfr9z7JsyRL6rfj3iQfjWm+5gsTl2viz5gyzDUgc/U5A7gf57e1spEX+nE/7zg==",
+ "dependencies": {
+ "Avalonia": "12.0.5",
+ "Avalonia.HarfBuzz": "12.0.5",
+ "Avalonia.Native": "12.0.5",
+ "Avalonia.Skia": "12.0.5",
+ "Avalonia.Win32": "12.0.5",
+ "Avalonia.X11": "12.0.5"
+ }
+ },
+ "Avalonia.Fonts.Inter": {
+ "type": "Direct",
+ "requested": "[12.0.5, )",
+ "resolved": "12.0.5",
+ "contentHash": "50zhPwYVIaqE0vVyHQxqjclObXYBT23Vt8QhsZ11vKSXddMAgPMd6zEEGGG83s1b3xXH1hZukBFqGgVAkjyZtA==",
+ "dependencies": {
+ "Avalonia": "12.0.5"
+ }
+ },
+ "Avalonia.Themes.Fluent": {
+ "type": "Direct",
+ "requested": "[12.0.5, )",
+ "resolved": "12.0.5",
+ "contentHash": "QfbziOuzNQzMd0uCbe//p4o1u6EAesEpX41fUCULBaLENd5OAT6iU0GiN9gzhSzVfSjHuxDcafXqJMxi3H3IhA==",
+ "dependencies": {
+ "Avalonia": "12.0.5"
+ }
+ },
+ "CommunityToolkit.Mvvm": {
+ "type": "Direct",
+ "requested": "[8.4.2, )",
+ "resolved": "8.4.2",
+ "contentHash": "WadCzGEc2U+3e20avRLng4qNtt4zoOGWrdUISqJWrHe3/FSnrYjuM5Sb4yQb09LhkBXrrI4Zt3dLKgRMbItsrg=="
+ },
+ "SonarAnalyzer.CSharp": {
+ "type": "Direct",
+ "requested": "[10.28.0.143324, )",
+ "resolved": "10.28.0.143324",
+ "contentHash": "ZnmYHFiQw2Aph2ft9c7UqVrqe79aZR5l7oeG59+sgrSAO9J159meglP1Zo34+Mcw4etIUTC9btYnP0Ar/rQIyg=="
+ },
+ "Avalonia.Angle.Windows.Natives": {
+ "type": "Transitive",
+ "resolved": "2.1.27548.20260419",
+ "contentHash": "l17nI3XVDN3oMnpjf2pnmJg0YTwK4m6NLsn/itAjDMdObTFxN77D5F1M9sRMSfViSY3KKcse1ROczwgoWLJsnA=="
+ },
+ "Avalonia.BuildServices": {
+ "type": "Transitive",
+ "resolved": "11.3.2",
+ "contentHash": "qHDToxto1e3hci5YqbG9n0Ty8mlp3zBUN5wT66wKqaDVzXyQ0do3EnRILd4Ke9jpvsktaPpgE0YjEk7hornryQ=="
+ },
+ "Avalonia.FreeDesktop": {
+ "type": "Transitive",
+ "resolved": "12.0.5",
+ "contentHash": "51IiLrfyJdMtmVTiXiEi1q1nXS5KAMYvFNeovlwKSuTgY/agBevnfBTY+DnKnIjZMdXWWKVGJJh7MldMkPc14w==",
+ "dependencies": {
+ "Avalonia": "12.0.5",
+ "Tmds.DBus.Protocol": "0.92.0"
+ }
+ },
+ "Avalonia.FreeDesktop.AtSpi": {
+ "type": "Transitive",
+ "resolved": "12.0.5",
+ "contentHash": "IrsjB1QpzXwgdnkpG6ejGxSaHp0sRrq3rZlrzRyhwEGllAxcOeUuQpq8/OrO3OUJLxXtxlsM4ku17v+7q7xGKQ==",
+ "dependencies": {
+ "Avalonia": "12.0.5"
+ }
+ },
+ "Avalonia.HarfBuzz": {
+ "type": "Transitive",
+ "resolved": "12.0.5",
+ "contentHash": "jR8i/fgrmAKEp0T3iLqfKCoEDJV9ODVzN+8bofM2guEr05eaXbx6iXZxcjh0nDK4UbK0akYDgBfAgyHoatqGjg==",
+ "dependencies": {
+ "Avalonia": "12.0.5",
+ "HarfBuzzSharp": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.Linux": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.WebAssembly": "8.3.1.3"
+ }
+ },
+ "Avalonia.Native": {
+ "type": "Transitive",
+ "resolved": "12.0.5",
+ "contentHash": "m6qn0UGMI/b4cFfJ8id8sPYLotc7szhZdexPCKY+kIvGlx6Ln0VjNejRMiJDZ4S91q6nbKJL/YmfPd8UruTNjQ==",
+ "dependencies": {
+ "Avalonia": "12.0.5"
+ }
+ },
+ "Avalonia.Remote.Protocol": {
+ "type": "Transitive",
+ "resolved": "12.0.5",
+ "contentHash": "/S4T1uZzXvPpN0Sqs44u3Rl5/qCZHHefRK7xyORONHH1w60IfsfsE5RbwFSku7qmib1DsGZZXxtweJq24ERfbg=="
+ },
+ "Avalonia.Skia": {
+ "type": "Transitive",
+ "resolved": "12.0.5",
+ "contentHash": "cSLTpvzsm5JpUA1tQvuht3qN6oiy1PNRgbrp1g7jCSzAFf+OKZecSne+KT1apBQUkevciaHxwtAxLolPGD9izg==",
+ "dependencies": {
+ "Avalonia": "12.0.5",
+ "HarfBuzzSharp": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.Linux": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.WebAssembly": "8.3.1.3",
+ "SkiaSharp": "3.119.4",
+ "SkiaSharp.NativeAssets.Linux": "3.119.4",
+ "SkiaSharp.NativeAssets.WebAssembly": "3.119.4"
+ }
+ },
+ "Avalonia.Win32": {
+ "type": "Transitive",
+ "resolved": "12.0.5",
+ "contentHash": "ZY1ZLXQdQqlz9GUZGXK+73kTFgKzygPbGk/gHfROUWLr2aBh1kOA1KY5xB7/cSSY+egDr+IGSjsQbgS8eSu9Tg==",
+ "dependencies": {
+ "Avalonia": "12.0.5",
+ "Avalonia.Angle.Windows.Natives": "2.1.27548.20260419"
+ }
+ },
+ "Avalonia.X11": {
+ "type": "Transitive",
+ "resolved": "12.0.5",
+ "contentHash": "6OyZa5ehNbzd7JWiVbGdjuzdsgy2Rgibtwczmh7hKnePxLmOqeSL+hQ6vHanSx246TpSBKDPvjqwW7NuQrmAJg==",
+ "dependencies": {
+ "Avalonia": "12.0.5",
+ "Avalonia.FreeDesktop": "12.0.5",
+ "Avalonia.FreeDesktop.AtSpi": "12.0.5",
+ "Avalonia.Skia": "12.0.5"
+ }
+ },
+ "HarfBuzzSharp": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "NGZ2+ZVNPM+NdHB/asW0/ykWngyHWwcqjrbN2nDeH1B/aptPGlCUl8wkQ2cSJxw5fdWgdmIPmNuTPWpLwNVXWg==",
+ "dependencies": {
+ "HarfBuzzSharp.NativeAssets.Win32": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.macOS": "8.3.1.3"
+ }
+ },
+ "HarfBuzzSharp.NativeAssets.Linux": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "RI6A1LgmooU30+4QIyFt5rmBCzP0VzTR+587IJSGvYIsHHWlahFufihYxtraLfsIhW7I8dn6+xX+DZGygOPKWQ=="
+ },
+ "HarfBuzzSharp.NativeAssets.macOS": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "KPTq0xnslkI6nAo0jh3ptcQPJvZZr7MWYXa2jUe4SnHc9q+JlHElmNXp0sfFoiTgoCX7WOYpYsurypuH9Gehxw=="
+ },
+ "HarfBuzzSharp.NativeAssets.WebAssembly": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "w2QfdNm9Uz/sUa0B5D+OnVQhyq3G/fBq6ibQMdWBlQqqwh0g0/5j3RFvYqZAmRZ5+RzvjVe8o8SFFnWYUSkuxA=="
+ },
+ "HarfBuzzSharp.NativeAssets.Win32": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "bx8CE8Js+XGX8PUxAHCBDEORt5aaBYtMN4Hr9QFs57Xithh6yjUyYqksizH6eRDhJkwsGI+SXWmPmMm8lZC9Pw=="
+ },
+ "MicroCom.Runtime": {
+ "type": "Transitive",
+ "resolved": "0.11.4",
+ "contentHash": "yZ8+Lgwo+KtRI29TB2mIOEMzV+csMJ+pKZg4YHReAP3vRewWLKKeYfrBDo5FS69rWnEbCfU3sbM+ZEQr+GDLtg=="
+ },
+ "Microsoft.Extensions.AmbientMetadata.Application": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "yZ0818pVYQvUFW/1m+f8A1+lIAeSeQxEOdUCMIC+tqcRRKlqNjKPRKvGHPp8xLRbZBLaHfBtDslJa/sofn7J/Q==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Compliance.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "qbi6lg6dyvydBvpjXeBx3wLPvmgXWn3nwkKBOsgEck6w++BEsBcv8YhdcczME16Oq+a6wkdtna9/qCEkxsNw5A==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.ObjectPool": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "woZsWLhOQsASuxbmgiZJqiGUBNo3IjRdXC92xt8rRokza+P6/nIsnzq7sm9Or6ZYcRl2kL1ufj8HVzp1QlPTXw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "qGhRPd3VxfLV9UqatVOiD9mAeUbj2KiMwGFYC5uXlzExiZQoe4X/hdmzGIU7BQjNLTqCnnbTHVyBglG3668/HA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Tp/+LPb70RyjjtLg9m5C959eP4KrUpJHThZfAegZVpsfmGvzfuNkuYbI/ft+LvXhMSyUcAeOPaN6rzTccwnZAg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.AutoActivation": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "WrSK0FGHSjSY4Pg4kd9Du8CUDwrgFTwHH1Y+N7sjyT6RFMU+G3coQ/Uq9PMGdQcy+DVKSMGHjfmWY47ZoYvhNA==",
+ "dependencies": {
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "NLXI3PbTe39q6/sgs7JYhmfPf7bMzReUoAJ0q9Po6yhfM+0anZa7PrEva4W2SdiLWGyB9eKZS9THGt2BP40xJg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "86RgyFsmVslW4Nu28IXgt8tLglynGQrwjk/xhGZaTe8j6YIeR1Ywoc42hSHsBSl920CQdfqq2dBohZiGm3AkUA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.ExceptionSummarization": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "Kc4XbbxtCzvn2P/fKF48xLWPbp3N5DV0MkJlgPJHEb47PUqCJ6kEl/JTKfpmP7QLuwYjx2QxKTdtwXfpjgA6KQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Features": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "ohU5761fyZq7eSg0nLQMzHvCrGGGmyzgRzAGebHZlQ4D7/9v9uzPYJ/AUYcD5kNSiOWR34Ma4qGgKs0PUPrYZw=="
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Oxn4vqDk+EwceTMpZxVm7L/UZEAM1qIQlNP1+7tBZckD+P4SKrm/5X4gMTPCTdpnau/xY8Sb4/0d6onomSg4ZA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Xd/2F+uWblTiUp+ssaDZN2ea4vmnHmW6PXugmqBHumyhqVkyeh6RJ3S2Zo/F+1bXIL/KuGqe2pKv6UiGOc1KeQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Http.Diagnostics": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "1m1zdBGW5J8MOxdZpJ5mUqdSaamRrYkpmfnEfeDmlZnglpfgDztcKOBU6cVsmn90AB7Ji2w8USvEsJ8PahbBWQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Http": "10.0.9",
+ "Microsoft.Extensions.Telemetry": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "N7Gm9SjugYjmmnhwbBKC9DFqGqjfJvh6YfOJgtwh0AW0Xpok3dIVors1ik050XmUxKAgAc7nNngDIJyFb06K2g==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "9S/DFt4cohlMPpzIxjG6kk0L8MuN2vDm9pbMCulxtJzzk82oJHVLBd8vuQxaPskaYQwKqmFmbannf5eoChgjYg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Configuration": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "bUth5ip7YsZMXWZS42IRTI0zDrPEqdE+xnsmcL0Pk784grWKApDvc5UoMi2tP2qYJ5ylFzeVDuDu08sFATq1bg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.ObjectPool": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "KZENCkfqO7Ciax6goUWQHDSxKH+x763hkBWMz9KpE87EyKW+EKEas9EFe9i1KgtQShG8KwKxaeJ5gd9sj6TuTQ=="
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "hyNdX4c2UwkRkzb9byw0H2DQkRzwBM3mzY2sCM9egwzTyg8dvQJmp5noQHGEaaCORQrNK3DD2gREBsc2DlXS4A==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Options.ConfigurationExtensions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Y4E24zffF/aPS0igNvY6ZzAQfbxd6AYdC9L4brnH+uK0yYYHIR6FeGVQVVjAOo8wub1EQDl2B90lCcpqoTF7Yw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "fmEbAUFsaIKirgLt/lYhuFRBwhcSJN31jjHgCdbQxJiWOum6EdLjkbgGuukSP9z/a+9LibaxII/kF+GwOXgC4g=="
+ },
+ "Microsoft.Extensions.Resilience": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "ldUrtRzWSnfe5945xoSxDXxoWXnIKn19E74Huieyp76XW/BjRk3bhkILSSib1NKdZ2lpi/ReTvOpNGcJ8hkOxw==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics": "10.0.9",
+ "Microsoft.Extensions.Diagnostics.ExceptionSummarization": "10.7.0",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9",
+ "Microsoft.Extensions.Telemetry.Abstractions": "10.7.0",
+ "Polly.Extensions": "8.4.2",
+ "Polly.RateLimiting": "8.4.2"
+ }
+ },
+ "Microsoft.Extensions.ServiceDiscovery.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "1a/tCYg7+5HdJRQ0BQDDGzANBaw/1fony7eNsMwQ5n9FZmO3K5JCls02o8fwQc296l0szNBwroLRtXf94OZw9A==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Features": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Telemetry": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "vZFNVvkz+7IABEv4klzPX/ZdmZQ6TrcReKUfeYIrQ2bbnvEcgZtG1RmOGeWkc1hFg8cq9sAgUc2lHCqlXSqf5A==",
+ "dependencies": {
+ "Microsoft.Extensions.AmbientMetadata.Application": "10.7.0",
+ "Microsoft.Extensions.DependencyInjection.AutoActivation": "10.7.0",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.9",
+ "Microsoft.Extensions.ObjectPool": "10.0.9",
+ "Microsoft.Extensions.Telemetry.Abstractions": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.Telemetry.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "ir1QKShZzfEmqO9LUWESVMUDZdnxYBSKQyulYPMeaye531lAuT8YTotthx+htrrS8hZY52HANeqowLQyCYBCZg==",
+ "dependencies": {
+ "Microsoft.Extensions.Compliance.Abstractions": "10.7.0",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.ObjectPool": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Npgsql": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "7nb5YzXuvWWJxB0J8DiyL3we+X4FOctZrt0fIBnucOIaIevFEEwGQVZKtiu9olXdlNAK1eNgqSral6r/jlhI4w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.0"
+ }
+ },
+ "OpenTelemetry": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "nE/Px3MUvQC8c0UG0DOP5OJE7vMtiMaPYi/6TkSS/o/O0s/oPq+8WaPYTVEPzb7lwu/QyLgknc+sFm2FjPXe2A==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.0",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.0",
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Api": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "WZP8Eb6vZTeNqeV+fjBitc7iefBoTHIhaWorqg/h/YiQBlcQJu0bICuTqKV0XRyjiE0eWs80yLlnUtHAFSkFWA=="
+ },
+ "OpenTelemetry.Api.ProviderBuilderExtensions": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "hZwaHAkXvUNn9+cS+vEvYBgIrIQOQRz2cIRUODZ5gxHsDsLeNCueLgZFkybopjE0jUhLut6lm5eL3LTqbW0hMg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
+ "OpenTelemetry.Api": "1.16.0"
+ }
+ },
+ "Polly.Core": {
+ "type": "Transitive",
+ "resolved": "8.4.2",
+ "contentHash": "BpE2I6HBYYA5tF0Vn4eoQOGYTYIK1BlF5EXVgkWGn3mqUUjbXAr13J6fZVbp7Q3epRR8yshacBMlsHMhpOiV3g=="
+ },
+ "Polly.Extensions": {
+ "type": "Transitive",
+ "resolved": "8.4.2",
+ "contentHash": "GZ9vRVmR0jV2JtZavt+pGUsQ1O1cuRKG7R7VOZI6ZDy9y6RNPvRvXK1tuS4ffUrv8L0FTea59oEuQzgS0R7zSA==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Options": "8.0.0",
+ "Polly.Core": "8.4.2"
+ }
+ },
+ "Polly.RateLimiting": {
+ "type": "Transitive",
+ "resolved": "8.4.2",
+ "contentHash": "ehTImQ/eUyO07VYW2WvwSmU9rRH200SKJ/3jku9rOkyWE0A2JxNFmAVms8dSn49QLSjmjFRRSgfNyOgr/2PSmA==",
+ "dependencies": {
+ "Polly.Core": "8.4.2",
+ "System.Threading.RateLimiting": "8.0.0"
+ }
+ },
+ "SkiaSharp": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "53NOSUZ1Us+91Sm0uCkIivh/k7jOowRErZT2sIWwPFN9mLUvdxnE6rS4sWo4255+Rd2MWUSF+j0NMZHD6Cke+Q==",
+ "dependencies": {
+ "SkiaSharp.NativeAssets.Win32": "3.119.4",
+ "SkiaSharp.NativeAssets.macOS": "3.119.4"
+ }
+ },
+ "SkiaSharp.NativeAssets.Linux": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "UAyVzbqNfZsZbKbzj68zXLyUyF/SbTKmzTfOO6qDu++dtIUMMTzPBe8oOuzU/DiewpfKoUUlOSsJmqWc6blxBw=="
+ },
+ "SkiaSharp.NativeAssets.macOS": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "fgBOWEqbY012x7gMfJU4ezgz6dfhJb30Z6YdW35h85Zoe39+a8YNbAAwL29ihPfWoppg5AjvyKNzD1oCvlqWwA=="
+ },
+ "SkiaSharp.NativeAssets.WebAssembly": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "S1HOxtBbD4bYDtA2e9WH5TX+lxqRrTPvKjrjttRhxnHNNu7YY8VFo/LeCP7tNqoTA6PV+8vsvNbmRUEC2ip8RQ=="
+ },
+ "SkiaSharp.NativeAssets.Win32": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "XOpbx/4CReO2wYsq2s6rbvdauc6dntG4Zv499sHGTJ87bwZaFXszFkwql3+FIZMc8kUPeaj3Mx2ezIJmo8a1Kg=="
+ },
+ "System.Threading.RateLimiting": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "7mu9v0QDv66ar3DpGSZHg9NuNcxDaaAcnMULuZlaTpP9+hwXhrxNGsF5GmLkSHxFdb5bBc1TzeujsRgTrPWi+Q=="
+ },
+ "Tmds.DBus.Protocol": {
+ "type": "Transitive",
+ "resolved": "0.92.0",
+ "contentHash": "h7IMakm0PF2jxiagoysoAjrzzLQ0UBdnSXQL5kb17YW0Fvyo12Tg96A99QkzwktWRrd7H+Uw9EzjasNLUfGYlA=="
+ },
+ "adminassistant.aspire.servicedefaults": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Extensions.Http.Resilience": "[10.7.0, )",
+ "Microsoft.Extensions.ServiceDiscovery": "[10.7.0, )",
+ "Npgsql.OpenTelemetry": "[10.0.3, )",
+ "OpenTelemetry.Exporter.Console": "[1.16.0, )",
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": "[1.16.0, )",
+ "OpenTelemetry.Extensions.Hosting": "[1.16.0, )",
+ "OpenTelemetry.Instrumentation.AspNetCore": "[1.16.0, )",
+ "OpenTelemetry.Instrumentation.EntityFrameworkCore": "[1.0.0-beta.8, )",
+ "OpenTelemetry.Instrumentation.GrpcNetClient": "[1.6.0-beta.3, )",
+ "OpenTelemetry.Instrumentation.Http": "[1.16.0, )",
+ "OpenTelemetry.Instrumentation.Runtime": "[1.15.1, )",
+ "OpenTelemetry.Instrumentation.SqlClient": "[1.16.0, )"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "NijozhERJDIaJ4k5TSMy1jOi0cSC2HfkvRD/Sl+kGSSKgVbFnF4GxgtMN/MrzHB8D1JxIrD4xSer9Blh9v3axQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "g41l/30G3K4B/d/L8kjux0+30e27c8D0FVQ/PFCpbekgfDpj9mnDhieP67EqXWvl1EWNeZh2rpR4F5B/jcDOHA=="
+ },
+ "Microsoft.Extensions.Http": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "5jdmuLRg1HO7x/v8McOf6ndhkMQWImkRBtJpXM8+xIocXNdLqCItyyFLKusdILc62TDzHuLlqaWoxtOA5FFOPg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Diagnostics": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Http.Resilience": {
+ "type": "CentralTransitive",
+ "requested": "[10.7.0, )",
+ "resolved": "10.7.0",
+ "contentHash": "3Lip0MkBVPtqU1wCM2M2Y8CzsqxA1BanVNMV9LQYMTwBgy25NDe6U9nSk6SfmsxXlh77iwSQuPsyjt5mxrOGmQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Http.Diagnostics": "10.7.0",
+ "Microsoft.Extensions.ObjectPool": "10.0.9",
+ "Microsoft.Extensions.Resilience": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.ServiceDiscovery": {
+ "type": "CentralTransitive",
+ "requested": "[10.7.0, )",
+ "resolved": "10.7.0",
+ "contentHash": "UgBfP98NmKDjx/2jbLGkckSlc8XG4ubkjPrqACE2i9LPmrgoYGWTh9snybRUGBm0sTchsq3on81XRxfvX+XC5g==",
+ "dependencies": {
+ "Microsoft.Extensions.Http": "10.0.9",
+ "Microsoft.Extensions.ServiceDiscovery.Abstractions": "10.7.0"
+ }
+ },
+ "Npgsql.OpenTelemetry": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "ShsdG/FHxJ2VuWM6tebJL/mCWkcxymmvtENN59c85EsJdT4TStWwwtgZoBu/9UvC0qi1jpFZ6bOfl9ijiWD+vA==",
+ "dependencies": {
+ "Npgsql": "10.0.3",
+ "OpenTelemetry.API": "1.15.3"
+ }
+ },
+ "OpenTelemetry.Exporter.Console": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "cv3pKEn3KyJUNz9o8kvu5UN0NJEUoNSo5hJR4rgbfvqM6oA3moj+tkpbbQrE3bDvetBvYBes17ZxQxBBTvnJ+w==",
+ "dependencies": {
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "gzYLY8sVDY5FYtVlCYSzBYX53xslRlvBLxwFYOdNIhc76SgKdFYUoDQXOeQI3WPBCrZp51QNcP6fZHh1+HtpIQ==",
+ "dependencies": {
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Extensions.Hosting": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "/YfrO5MRaA156vhNanYGPX2JjOwKUrA0+Jf7ltT2eD3VkfHqXcEJY5Oxt/nWH8lqBOTc1nJpn2soBtD5Cml8Dg==",
+ "dependencies": {
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.0",
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Instrumentation.AspNetCore": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "vSC5EsmBVNcqXMh9BGkkq8zkoUjrg8ghBDb9zbKR8Bqjd05utjVgVft+fqsqQVsvlV5olGj1pBliHBngcIGSIg==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.EntityFrameworkCore": {
+ "type": "CentralTransitive",
+ "requested": "[1.0.0-beta.8, )",
+ "resolved": "1.0.0-beta.8",
+ "contentHash": "ilfbH1bDPm9YytgspAnQRVy3Hw0rNkYhjNJSNeT9QFWrwXAjCYVPVGTpHOgzM9gB5bS/u+04IgQainDzthUnVA==",
+ "dependencies": {
+ "Microsoft.Extensions.Options": "3.1.0",
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.6.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.GrpcNetClient": {
+ "type": "CentralTransitive",
+ "requested": "[1.6.0-beta.3, )",
+ "resolved": "1.6.0-beta.3",
+ "contentHash": "nzw8D5in6Hg/GbjNlq2FETP4GjSckae9hPGTxAUO7UiOS1lqkyxZJ7f4ntIjFKbiS3wuA9wPfQVH/3CaPV6EvQ==",
+ "dependencies": {
+ "OpenTelemetry": "1.6.0"
+ }
+ },
+ "OpenTelemetry.Instrumentation.Http": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "+Sz3lfvMXwWE8s/sMruHCDlO/+cArFVc6oBg1tCb70BKlL9FCC7uK4Ar2/VP9Hhwvs+UwaW1vGzE/uiByVHXiA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.0",
+ "Microsoft.Extensions.Options": "10.0.0",
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.Runtime": {
+ "type": "CentralTransitive",
+ "requested": "[1.15.1, )",
+ "resolved": "1.15.1",
+ "contentHash": "cpPwlUT5HXcLGPaIgsbSy0W9eFYAPGVbTP1p8/uyQ4Osvf5BJuPpEXE7crL09SmEd44r0DGNKDtsqxaAz0HxQw==",
+ "dependencies": {
+ "OpenTelemetry.Api": "[1.15.3, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.SqlClient": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "gZCmdQN24ty9FNLKYUR0VAojTByO650HgN89Ddoi9AIA2L3XqIHyUadNnFuIOKNo6+Pgrn4NgehvOzcmYhcl7A==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.0",
+ "Microsoft.Extensions.Options": "10.0.0",
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AdminAssistant.DomainModel/packages.lock.json b/src/AdminAssistant.DomainModel/packages.lock.json
new file mode 100644
index 00000000..6b89c9e3
--- /dev/null
+++ b/src/AdminAssistant.DomainModel/packages.lock.json
@@ -0,0 +1,52 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Ardalis.Extensions": {
+ "type": "Direct",
+ "requested": "[0.9.4, )",
+ "resolved": "0.9.4",
+ "contentHash": "5JDKpMiEsxbz9N1yynsMFc2rBXDQ5iHLockW8lxahqlj9B5gxbENTAXBY2Jswp4vcGG+cNQxv81KrUqd4mXQSA==",
+ "dependencies": {
+ "Ardalis.GuardClauses": "3.2.0"
+ }
+ },
+ "Ardalis.GuardClauses": {
+ "type": "Direct",
+ "requested": "[5.0.0, )",
+ "resolved": "5.0.0",
+ "contentHash": "jVPRvLw0xIUFto2cMrKgRYADWIHbEEfzZHGiU/swwNgl1zo28Q1zfSa3VUC3C0s9DyhFDPSaF4dEDQRyTZUcyQ=="
+ },
+ "Ardalis.Result": {
+ "type": "Direct",
+ "requested": "[10.1.0, )",
+ "resolved": "10.1.0",
+ "contentHash": "+WgsXh+JRm0d8BZPlBUc5w0+FTda4vbWRa/IF2q4zDoRsU5BXr8w4rTbYEklZIMNgQQZTcNouR/QfBV5I/4XYQ=="
+ },
+ "FluentValidation": {
+ "type": "Direct",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "EPpkIe1yh1a0OXyC100oOA8WMbZvqUu5plwhvYcb7oSELfyUZzfxV48BLhvs3kKo4NwG7MGLNgy1RJiYtT8Dpw=="
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "g41l/30G3K4B/d/L8kjux0+30e27c8D0FVQ/PFCpbekgfDpj9mnDhieP67EqXWvl1EWNeZh2rpR4F5B/jcDOHA=="
+ },
+ "SonarAnalyzer.CSharp": {
+ "type": "Direct",
+ "requested": "[10.28.0.143324, )",
+ "resolved": "10.28.0.143324",
+ "contentHash": "ZnmYHFiQw2Aph2ft9c7UqVrqe79aZR5l7oeG59+sgrSAO9J159meglP1Zo34+Mcw4etIUTC9btYnP0Ar/rQIyg=="
+ },
+ "simongeering.framework": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AdminAssistant.Infrastructure.ClientSide/packages.lock.json b/src/AdminAssistant.Infrastructure.ClientSide/packages.lock.json
new file mode 100644
index 00000000..5f44618b
--- /dev/null
+++ b/src/AdminAssistant.Infrastructure.ClientSide/packages.lock.json
@@ -0,0 +1,48 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Ardalis.GuardClauses": {
+ "type": "Direct",
+ "requested": "[5.0.0, )",
+ "resolved": "5.0.0",
+ "contentHash": "jVPRvLw0xIUFto2cMrKgRYADWIHbEEfzZHGiU/swwNgl1zo28Q1zfSa3VUC3C0s9DyhFDPSaF4dEDQRyTZUcyQ=="
+ },
+ "PDFsharp": {
+ "type": "Direct",
+ "requested": "[6.2.4, )",
+ "resolved": "6.2.4",
+ "contentHash": "GhTr9F1uOYXHCIEOB5PXIgqn5a8WLsJL2m0eewTA0IvY1j6N4HGXHKKmEyB90/N6vrjmYamf41V9zbmdW2HY3g==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.3",
+ "System.Security.Cryptography.Pkcs": "8.0.1"
+ }
+ },
+ "SonarAnalyzer.CSharp": {
+ "type": "Direct",
+ "requested": "[10.28.0.143324, )",
+ "resolved": "10.28.0.143324",
+ "contentHash": "ZnmYHFiQw2Aph2ft9c7UqVrqe79aZR5l7oeG59+sgrSAO9J159meglP1Zo34+Mcw4etIUTC9btYnP0Ar/rQIyg=="
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "8.0.3",
+ "contentHash": "dL0QGToTxggRLMYY4ZYX5AMwBb+byQBd/5dMiZE07Nv73o6I5Are3C7eQTh7K2+A4ct0PVISSr7TZANbiNb2yQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2"
+ }
+ },
+ "System.Security.Cryptography.Pkcs": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "CoCRHFym33aUSf/NtWSVSZa99dkd0Hm7OCZUxORBjRB16LNhIEOf8THPqzIYlvKM0nNDAPTRBa1FxEECrgaxxA=="
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "8.0.2",
+ "contentHash": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AdminAssistant.Infrastructure/packages.lock.json b/src/AdminAssistant.Infrastructure/packages.lock.json
new file mode 100644
index 00000000..664f8f22
--- /dev/null
+++ b/src/AdminAssistant.Infrastructure/packages.lock.json
@@ -0,0 +1,739 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Ardalis.GuardClauses": {
+ "type": "Direct",
+ "requested": "[5.0.0, )",
+ "resolved": "5.0.0",
+ "contentHash": "jVPRvLw0xIUFto2cMrKgRYADWIHbEEfzZHGiU/swwNgl1zo28Q1zfSa3VUC3C0s9DyhFDPSaF4dEDQRyTZUcyQ=="
+ },
+ "Ardalis.Result": {
+ "type": "Direct",
+ "requested": "[10.1.0, )",
+ "resolved": "10.1.0",
+ "contentHash": "+WgsXh+JRm0d8BZPlBUc5w0+FTda4vbWRa/IF2q4zDoRsU5BXr8w4rTbYEklZIMNgQQZTcNouR/QfBV5I/4XYQ=="
+ },
+ "Ardalis.Specification.EntityFrameworkCore": {
+ "type": "Direct",
+ "requested": "[9.3.1, )",
+ "resolved": "9.3.1",
+ "contentHash": "QbOo4E6HWdKXZ9QUrqcgiGN4EKtzt0kzGzqr2zc32q5QESzBrceJ3GX1ymWVdCCOzJO1+GPm+/a/5ovSkfrLoQ==",
+ "dependencies": {
+ "Ardalis.Specification": "9.3.1",
+ "Microsoft.EntityFrameworkCore": "9.0.8",
+ "Microsoft.EntityFrameworkCore.Relational": "9.0.8"
+ }
+ },
+ "Aspire.Npgsql.EntityFrameworkCore.PostgreSQL": {
+ "type": "Direct",
+ "requested": "[13.4.6, )",
+ "resolved": "13.4.6",
+ "contentHash": "Lt92FuyX4JkKwrAgrOsVARpmk3U9vBGBq784ZEO3hR2vC74o8VS/VWBJHYrRBYTXapuj+mwwPzvcUICmbB43Zg==",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Memory": "10.0.8",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8",
+ "Npgsql.DependencyInjection": "10.0.2",
+ "Npgsql.EntityFrameworkCore.PostgreSQL": "10.0.0",
+ "Npgsql.OpenTelemetry": "10.0.2",
+ "OpenTelemetry.Extensions.Hosting": "1.15.3"
+ }
+ },
+ "Mediator.Abstractions": {
+ "type": "Direct",
+ "requested": "[3.0.2, )",
+ "resolved": "3.0.2",
+ "contentHash": "TytjnyN8gLObZBxkM7HHPFJF3LHtk6Y8mHW56ONuXRuVEK6Fmed3f0z79H9TpmoZQP2zQAIS4/0O9R2w0v02qw==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
+ }
+ },
+ "Microsoft.EntityFrameworkCore.Analyzers": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "aiEFB+C5EsZGqxvMPazE07hbWsp4iPaufJpanGt5O+lrwv7mJLrqma5haVIgFAPCyhQkmk75XSCEubT1zUjxtA=="
+ },
+ "Microsoft.EntityFrameworkCore.Design": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "NxgqhpB89S6BViMku9B476KopBumtk0IQ4/iVn2GeeUBW9SyzLvWwOR0zPgcooAtRlR0UVzXkaUs71gYHSAbHg==",
+ "dependencies": {
+ "Humanizer.Core": "2.14.1",
+ "Microsoft.Build.Framework": "18.0.2",
+ "Microsoft.CodeAnalysis.CSharp": "5.0.0",
+ "Microsoft.CodeAnalysis.CSharp.Workspaces": "5.0.0",
+ "Microsoft.CodeAnalysis.Workspaces.MSBuild": "5.0.0",
+ "Microsoft.EntityFrameworkCore.Relational": "10.0.9",
+ "Microsoft.Extensions.Caching.Memory": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.DependencyModel": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Mono.TextTemplating": "3.0.0",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "Microsoft.EntityFrameworkCore.Relational": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "dEoyYKgiaZHHgOFm1WMWm1sFEsEuhPWufX4L9PekKtqd/RaIcPjkCjvbrVvJtApErb5wPSJhYvnTlxhH+p9h2g==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore": "10.0.9",
+ "Microsoft.Extensions.Caching.Memory": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Hosting": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "HTgnvmK0ubesUFO16pLC+i9+RS8lEGd6TmDouuy75FsAgIFrSwUVhYCqG2IENzBJwgxGc/6Rsulfsvd9ZG/XkA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.Configuration.CommandLine": "10.0.9",
+ "Microsoft.Extensions.Configuration.EnvironmentVariables": "10.0.9",
+ "Microsoft.Extensions.Configuration.FileExtensions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Json": "10.0.9",
+ "Microsoft.Extensions.Configuration.UserSecrets": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Diagnostics": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.9",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.9",
+ "Microsoft.Extensions.Logging.Console": "10.0.9",
+ "Microsoft.Extensions.Logging.Debug": "10.0.9",
+ "Microsoft.Extensions.Logging.EventLog": "10.0.9",
+ "Microsoft.Extensions.Logging.EventSource": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Npgsql.EntityFrameworkCore.PostgreSQL": {
+ "type": "Direct",
+ "requested": "[10.0.2, )",
+ "resolved": "10.0.2",
+ "contentHash": "PsNYgPOSW41Xx19gin7y4EdZAPteWr9Cb01XkdObxOsPzi+mgBupBEN7J7+erXFsROPOILM7MlIoO9QzL8+LGQ==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore": "[10.0.4, 11.0.0)",
+ "Microsoft.EntityFrameworkCore.Relational": "[10.0.4, 11.0.0)",
+ "Npgsql": "10.0.3"
+ }
+ },
+ "SonarAnalyzer.CSharp": {
+ "type": "Direct",
+ "requested": "[10.28.0.143324, )",
+ "resolved": "10.28.0.143324",
+ "contentHash": "ZnmYHFiQw2Aph2ft9c7UqVrqe79aZR5l7oeG59+sgrSAO9J159meglP1Zo34+Mcw4etIUTC9btYnP0Ar/rQIyg=="
+ },
+ "Ardalis.Specification": {
+ "type": "Transitive",
+ "resolved": "9.3.1",
+ "contentHash": "GWrE6BA0smWFLbN+XPU2l5rDF9Uzelfbb3w35jJ0CGIat+p1ChbtLcbkvYRMEculBHOAo12omwAAOm3VFWkoJQ=="
+ },
+ "Humanizer.Core": {
+ "type": "Transitive",
+ "resolved": "2.14.1",
+ "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw=="
+ },
+ "Microsoft.Build.Framework": {
+ "type": "Transitive",
+ "resolved": "18.0.2",
+ "contentHash": "sOSb+0J4G/jCBW/YqmRuL0eOMXgfw1KQLdC9TkbvfA5xs7uNm+PBQXJCOzSJGXtZcZrtXozcwxPmUiRUbmd7FA=="
+ },
+ "Microsoft.CodeAnalysis.Analyzers": {
+ "type": "Transitive",
+ "resolved": "3.11.0",
+ "contentHash": "v/EW3UE8/lbEYHoC2Qq7AR/DnmvpgdtAMndfQNmpuIMx/Mto8L5JnuCfdBYtgvalQOtfNCnxFejxuRrryvUTsg=="
+ },
+ "Microsoft.CodeAnalysis.Common": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ZXRAdvH6GiDeHRyd3q/km8Z44RoM6FBWHd+gen/la81mVnAdHTEsEkO5J0TCNXBymAcx5UYKt5TvgKBhaLJEow==",
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "3.11.0"
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "5DSyJ9bk+ATuDy7fp2Zt0mJStDVKbBoiz1DyfAwSa+k4H4IwykAUcV3URelw5b8/iVbfSaOwkwmPUZH6opZKCw==",
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "3.11.0",
+ "Microsoft.CodeAnalysis.Common": "[5.0.0]"
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp.Workspaces": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "Al/Q8B+yO8odSqGVpSvrShMFDvlQdIBU//F3E6Rb0YdiLSALE9wh/pvozPNnfmh5HDnvU+mkmSjpz4hQO++jaA==",
+ "dependencies": {
+ "Humanizer.Core": "2.14.1",
+ "Microsoft.CodeAnalysis.Analyzers": "3.11.0",
+ "Microsoft.CodeAnalysis.CSharp": "[5.0.0]",
+ "Microsoft.CodeAnalysis.Common": "[5.0.0]",
+ "Microsoft.CodeAnalysis.Workspaces.Common": "[5.0.0]",
+ "System.Composition": "9.0.0"
+ }
+ },
+ "Microsoft.CodeAnalysis.Workspaces.Common": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ZbUmIvT6lqTNKiv06Jl5wf0MTMi1vQ1oH7ou4CLcs2C/no/L7EhP3T8y3XXvn9VbqMcJaJnEsNA1jwYUMgc5jg==",
+ "dependencies": {
+ "Humanizer.Core": "2.14.1",
+ "Microsoft.CodeAnalysis.Analyzers": "3.11.0",
+ "Microsoft.CodeAnalysis.Common": "[5.0.0]",
+ "System.Composition": "9.0.0"
+ }
+ },
+ "Microsoft.CodeAnalysis.Workspaces.MSBuild": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "/G+LVoAGMz6Ae8nm+PGLxSw+F5RjYx/J7irbTO5uKAPw1bxHyQJLc/YOnpDxt+EpPtYxvC9wvBsg/kETZp1F9Q==",
+ "dependencies": {
+ "Humanizer.Core": "2.14.1",
+ "Microsoft.Build.Framework": "17.11.31",
+ "Microsoft.CodeAnalysis.Analyzers": "3.11.0",
+ "Microsoft.CodeAnalysis.Workspaces.Common": "[5.0.0]",
+ "Microsoft.Extensions.DependencyInjection": "9.0.0",
+ "Microsoft.Extensions.Logging": "9.0.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "Microsoft.Extensions.Options": "9.0.0",
+ "Microsoft.Extensions.Primitives": "9.0.0",
+ "Microsoft.VisualStudio.SolutionPersistence": "1.0.52",
+ "Newtonsoft.Json": "13.0.3",
+ "System.Composition": "9.0.0"
+ }
+ },
+ "Microsoft.EntityFrameworkCore.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "GRMaiPkqYna/gCsyDffYDWmefGPC3hDrdMw+2rrGcQwhs6uZOsaMQXMJnoXQ35tx9SkBV2ieRRU9N/jLOO6BZw=="
+ },
+ "Microsoft.Extensions.Caching.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "5fGxcw2vuYp8s0wio9H1ECiuk4iKSdTIlNuigdLIrkhg+5XAwgFVDB/5Ots3pfN/QhABLYXutA79JFtnUKDSHA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Caching.Memory": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "G9mregdatGWMCQWeCw012LDeJVP7G/XIxH8Ddbjc8bD1//dA+8VVQdcRE9jI1moyoJxSSZhHITUnNQ8FUDl5+Q==",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Abstractions": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "woZsWLhOQsASuxbmgiZJqiGUBNo3IjRdXC92xt8rRokza+P6/nIsnzq7sm9Or6ZYcRl2kL1ufj8HVzp1QlPTXw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "qGhRPd3VxfLV9UqatVOiD9mAeUbj2KiMwGFYC5uXlzExiZQoe4X/hdmzGIU7BQjNLTqCnnbTHVyBglG3668/HA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Tp/+LPb70RyjjtLg9m5C959eP4KrUpJHThZfAegZVpsfmGvzfuNkuYbI/ft+LvXhMSyUcAeOPaN6rzTccwnZAg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.CommandLine": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "8D4HaqxWdm5M/nuhQffjPoR1ekhlpyKTXjFMAT5KlP0dvxkJe5JLAP6MAsuUEUxKWG09Bi5aAUaYMFKrMqWHqA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.EnvironmentVariables": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "JhKySWIL8+N4yFt4HPm1rGKCHooze+MBdTdpXc0bd/PGm31TrSUi2m0Nek1y441Wlv/RE6VH0W/DCv2xnmy8FA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.FileExtensions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "NgLB9cYnIb0/djSDcnqo4GIGGWooxGmr/gCUe3/CRXcKqLizOFui8MyW4EVkTB/KNJL+oXdMXnD6ZRm3Y+qkrQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Json": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "LiFKJgc9jZEW+7RhcSfsvCwoikt1lDdOqOn+whZC5zVHyg/gExftHl2QPtmfiHsEdDNg+Y+BDr6835tOfj8Y7A==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.FileExtensions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.DependencyModel": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "SCDTQ6HubnRvTUjR7dgMKHZvNoCb03t44ttHL8trlFTGgfDteWn/0nRdOxDhcI+lTWhKgd/flCVJEtAOPhSLNg=="
+ },
+ "Microsoft.Extensions.Diagnostics": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "NLXI3PbTe39q6/sgs7JYhmfPf7bMzReUoAJ0q9Po6yhfM+0anZa7PrEva4W2SdiLWGyB9eKZS9THGt2BP40xJg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "86RgyFsmVslW4Nu28IXgt8tLglynGQrwjk/xhGZaTe8j6YIeR1Ywoc42hSHsBSl920CQdfqq2dBohZiGm3AkUA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "IlXZUZIA9b99yQURc8jOLmmS6GD42vj6t+LqWs6Dd+naggObSbEXDw8DU8DUu2tL8CnyG96F4pDLhjd7BmZPAQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "0j06qq5I1YGSIi4M86UaVITBprvn3bTWKmQiLDNEqnZ2d+UxaFb+tVqemxVzr5lkr6GTR83ExUfSIpCnBaTZFA=="
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "VyjlpOHGpT9xoNFKNd/27FBF4eBimMcCCIfMxkeju/8uUnugwsxHfzZX2iP+ilYeoYB4HeT5gAoswTIKD6SYJw==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Relational": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Oxn4vqDk+EwceTMpZxVm7L/UZEAM1qIQlNP1+7tBZckD+P4SKrm/5X4gMTPCTdpnau/xY8Sb4/0d6onomSg4ZA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.FileProviders.Physical": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "zm8WVod4swgprGrkxkuSILlbXqdDRqF+3y6U0I7jlmj4PMyKN6d8pzXZHUn5lr/gZVULzk/+FeTYlTupt6akpg==",
+ "dependencies": {
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileSystemGlobbing": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.FileSystemGlobbing": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "mvRf9qOH/LslWIee/h+lsElnoUyKotEwoPL31soqScmO/eoxObaTCLCdx2DdqPdRi9LnB+7qKZ49jfyrLZuc+w=="
+ },
+ "Microsoft.Extensions.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Xd/2F+uWblTiUp+ssaDZN2ea4vmnHmW6PXugmqBHumyhqVkyeh6RJ3S2Zo/F+1bXIL/KuGqe2pKv6UiGOc1KeQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "N7Gm9SjugYjmmnhwbBKC9DFqGqjfJvh6YfOJgtwh0AW0Xpok3dIVors1ik050XmUxKAgAc7nNngDIJyFb06K2g==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "9S/DFt4cohlMPpzIxjG6kk0L8MuN2vDm9pbMCulxtJzzk82oJHVLBd8vuQxaPskaYQwKqmFmbannf5eoChgjYg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Configuration": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "bUth5ip7YsZMXWZS42IRTI0zDrPEqdE+xnsmcL0Pk784grWKApDvc5UoMi2tP2qYJ5ylFzeVDuDu08sFATq1bg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Console": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "WyZEG/O8jKqBOBF6/M6IJqiEyWFBUv6PDyzNoXDA0mBZwKtkuf7GiZ/0/8eU8OpLKKQL0O95oPOY1szrWIKofQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Debug": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "r/A0ahpXmZH/8ltPjrFFWp12BIizK9cCVJXPcHyOad8e4eIX7P/geW+uBYdczkeCAaMebT4jEU7snOm4GnmKfA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.EventLog": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "goAl30/WwmdnWDPRwATaDPIK0iuDBnQSMTH2XYGVB1SwReg7hglhvDNjjpNhT25US3GF4I5q6BhTNs6nFYzEfg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "System.Diagnostics.EventLog": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.EventSource": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "tHynPVHbTicuaDpS2JVTxX0qA5VTg15CXgVKTwWvvudb5BvW5aVew8MMyek6LrDGAom7UbON1jf1T5GhpTilFA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "hyNdX4c2UwkRkzb9byw0H2DQkRzwBM3mzY2sCM9egwzTyg8dvQJmp5noQHGEaaCORQrNK3DD2gREBsc2DlXS4A==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Options.ConfigurationExtensions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Y4E24zffF/aPS0igNvY6ZzAQfbxd6AYdC9L4brnH+uK0yYYHIR6FeGVQVVjAOo8wub1EQDl2B90lCcpqoTF7Yw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "fmEbAUFsaIKirgLt/lYhuFRBwhcSJN31jjHgCdbQxJiWOum6EdLjkbgGuukSP9z/a+9LibaxII/kF+GwOXgC4g=="
+ },
+ "Microsoft.VisualStudio.SolutionPersistence": {
+ "type": "Transitive",
+ "resolved": "1.0.52",
+ "contentHash": "oNv2JtYXhpdJrX63nibx1JT3uCESOBQ1LAk7Dtz/sr0+laW0KRM6eKp4CZ3MHDR2siIkKsY8MmUkeP5DKkQQ5w=="
+ },
+ "Mono.TextTemplating": {
+ "type": "Transitive",
+ "resolved": "3.0.0",
+ "contentHash": "YqueG52R/Xej4VVbKuRIodjiAhV0HR/XVbLbNrJhCZnzjnSjgMJ/dCdV0akQQxavX6hp/LC6rqLGLcXeQYU7XA==",
+ "dependencies": {
+ "System.CodeDom": "6.0.0"
+ }
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "Npgsql": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "7nb5YzXuvWWJxB0J8DiyL3we+X4FOctZrt0fIBnucOIaIevFEEwGQVZKtiu9olXdlNAK1eNgqSral6r/jlhI4w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.0"
+ }
+ },
+ "Npgsql.DependencyInjection": {
+ "type": "Transitive",
+ "resolved": "10.0.2",
+ "contentHash": "/Efri6iP5Z2kj3amM/WPMoa0pzOBaIM+C+uMXltaBMu2hVZciNluuK51Mn2FmWKhqwTcMZdwHYUfbm8LbKRJMQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
+ "Npgsql": "10.0.2"
+ }
+ },
+ "OpenTelemetry": {
+ "type": "Transitive",
+ "resolved": "1.15.3",
+ "contentHash": "N0i6WjPoHPbZyms1ugbDIFAJFuGlpeExJMU/+XSL0lQRUkg/D0utFkDoLXf8Z1km5B+xVZ2GyMXXiX8qdeNmPg==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.0",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.0",
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "1.15.3"
+ }
+ },
+ "OpenTelemetry.Api": {
+ "type": "Transitive",
+ "resolved": "1.15.3",
+ "contentHash": "fX+fkCysfPut+qCcT3bKqyX4QN9Saf4CgX8HLOHywEVD+Xr7sULtfuypITpoDysjx8R59dn/3mWhgimMH8cm/g=="
+ },
+ "OpenTelemetry.Api.ProviderBuilderExtensions": {
+ "type": "Transitive",
+ "resolved": "1.15.3",
+ "contentHash": "SYn0lqYDwLMWhv/zlNGsQcl2yX++yTumanX46bmOZE/ZDOd1WjPBO2kZaZgKLEZTZk48pavIFGJ6vOvxXgWVFQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
+ "OpenTelemetry.Api": "1.15.3"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "CPc6tWO1LAer3IzfZufDBRL+UZQcj5uS207NHALQzP84Vp/z6wF0Aa0YZImOQY8iStY0A2zI/e3ihKNPfUm8XA=="
+ },
+ "System.Composition": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "3Djj70fFTraOarSKmRnmRy/zm4YurICm+kiCtI0dYRqGJnLX6nJ+G3WYuFJ173cAPax/gh96REcbNiVqcrypFQ==",
+ "dependencies": {
+ "System.Composition.AttributedModel": "9.0.0",
+ "System.Composition.Convention": "9.0.0",
+ "System.Composition.Hosting": "9.0.0",
+ "System.Composition.Runtime": "9.0.0",
+ "System.Composition.TypedParts": "9.0.0"
+ }
+ },
+ "System.Composition.AttributedModel": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "iri00l/zIX9g4lHMY+Nz0qV1n40+jFYAmgsaiNn16xvt2RDwlqByNG4wgblagnDYxm3YSQQ0jLlC/7Xlk9CzyA=="
+ },
+ "System.Composition.Convention": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "+vuqVP6xpi582XIjJi6OCsIxuoTZfR0M7WWufk3uGDeCl3wGW6KnpylUJ3iiXdPByPE0vR5TjJgR6hDLez4FQg==",
+ "dependencies": {
+ "System.Composition.AttributedModel": "9.0.0"
+ }
+ },
+ "System.Composition.Hosting": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "OFqSeFeJYr7kHxDfaViGM1ymk7d4JxK//VSoNF9Ux0gpqkLsauDZpu89kTHHNdCWfSljbFcvAafGyBoY094btQ==",
+ "dependencies": {
+ "System.Composition.Runtime": "9.0.0"
+ }
+ },
+ "System.Composition.Runtime": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "w1HOlQY1zsOWYussjFGZCEYF2UZXgvoYnS94NIu2CBnAGMbXFAX8PY8c92KwUItPmowal68jnVLBCzdrWLeEKA=="
+ },
+ "System.Composition.TypedParts": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "aRZlojCCGEHDKqh43jaDgaVpYETsgd7Nx4g1zwLKMtv4iTo0627715ajEFNpEEBTgLmvZuv8K0EVxc3sM4NWJA==",
+ "dependencies": {
+ "System.Composition.AttributedModel": "9.0.0",
+ "System.Composition.Hosting": "9.0.0",
+ "System.Composition.Runtime": "9.0.0"
+ }
+ },
+ "System.Diagnostics.EventLog": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "s2PcxHK4IYQ6gmD3VSBkym9tWGkFisKjcjWBdl7a+n4Yy66ae4beJ1ZdjDp060SSll4W3Rt4H2LW87dWckv+QQ=="
+ },
+ "System.Security.Cryptography.Pkcs": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "CoCRHFym33aUSf/NtWSVSZa99dkd0Hm7OCZUxORBjRB16LNhIEOf8THPqzIYlvKM0nNDAPTRBa1FxEECrgaxxA=="
+ },
+ "adminassistant.domainmodel": {
+ "type": "Project",
+ "dependencies": {
+ "Ardalis.Extensions": "[0.9.4, )",
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "Ardalis.Result": "[10.1.0, )",
+ "FluentValidation": "[12.1.1, )",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )",
+ "SimonGeering.Framework": "[1.0.0, )"
+ }
+ },
+ "adminassistant.infrastructure.clientside": {
+ "type": "Project",
+ "dependencies": {
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "PDFsharp": "[6.2.4, )"
+ }
+ },
+ "simongeering.framework": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )"
+ }
+ },
+ "Ardalis.Extensions": {
+ "type": "CentralTransitive",
+ "requested": "[0.9.4, )",
+ "resolved": "0.9.4",
+ "contentHash": "5JDKpMiEsxbz9N1yynsMFc2rBXDQ5iHLockW8lxahqlj9B5gxbENTAXBY2Jswp4vcGG+cNQxv81KrUqd4mXQSA==",
+ "dependencies": {
+ "Ardalis.GuardClauses": "3.2.0"
+ }
+ },
+ "FluentValidation": {
+ "type": "CentralTransitive",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "EPpkIe1yh1a0OXyC100oOA8WMbZvqUu5plwhvYcb7oSELfyUZzfxV48BLhvs3kKo4NwG7MGLNgy1RJiYtT8Dpw=="
+ },
+ "Microsoft.EntityFrameworkCore": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "tu85SRzOT021V7EQlViCiAE7TqldVn469Y6lt5TEn/+XC4/MeNCHgMRSxqYuWqvF4zAQZUhCmtNEZuM3ss4LeA==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Abstractions": "10.0.9",
+ "Microsoft.EntityFrameworkCore.Analyzers": "10.0.9",
+ "Microsoft.Extensions.Caching.Memory": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.UserSecrets": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "ockJRreRW/HbGwoyHzYOxMucFBimvAZ8lKNwQLMHrS6mwkDUaCJMWzzeE+Rm9vgFlv2o/xqk8fm+FpqrDCnkTA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Json": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "NijozhERJDIaJ4k5TSMy1jOi0cSC2HfkvRD/Sl+kGSSKgVbFnF4GxgtMN/MrzHB8D1JxIrD4xSer9Blh9v3axQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "g41l/30G3K4B/d/L8kjux0+30e27c8D0FVQ/PFCpbekgfDpj9mnDhieP67EqXWvl1EWNeZh2rpR4F5B/jcDOHA=="
+ },
+ "Npgsql.OpenTelemetry": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.2",
+ "contentHash": "kjc+3DzqjaFk0L3cmR92emyJd7GAgwSiiyuzvumHFEp0EVp6GbrtdIe0jD8NANdPVqYM8prH9ND8GQsQAFXCKA==",
+ "dependencies": {
+ "Npgsql": "10.0.2",
+ "OpenTelemetry.API": "1.14.0"
+ }
+ },
+ "OpenTelemetry.Extensions.Hosting": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.15.3",
+ "contentHash": "u8n/W8yIlqv0BXZmvId1iVaeWXG42tGKdTkuLYg5g57Y/r9CeUNzqtrSHNdG5IoO8iPX79w3v+WsbAHgUQbfeg==",
+ "dependencies": {
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.0",
+ "OpenTelemetry": "1.15.3"
+ }
+ },
+ "PDFsharp": {
+ "type": "CentralTransitive",
+ "requested": "[6.2.4, )",
+ "resolved": "6.2.4",
+ "contentHash": "GhTr9F1uOYXHCIEOB5PXIgqn5a8WLsJL2m0eewTA0IvY1j6N4HGXHKKmEyB90/N6vrjmYamf41V9zbmdW2HY3g==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.3",
+ "System.Security.Cryptography.Pkcs": "8.0.1"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AdminAssistant.IntegrationTests/packages.lock.json b/src/AdminAssistant.IntegrationTests/packages.lock.json
new file mode 100644
index 00000000..8c241077
--- /dev/null
+++ b/src/AdminAssistant.IntegrationTests/packages.lock.json
@@ -0,0 +1,1077 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Aspire.Hosting.Testing": {
+ "type": "Direct",
+ "requested": "[13.4.6, )",
+ "resolved": "13.4.6",
+ "contentHash": "ETvzLx362Ntj4vHhnlgFK1h3coW7Cs37O8rkIv/ma12MZQEwNvNqpEd2AKMGEdcxDn8FTGQMHHXPTyKvIRdlFA==",
+ "dependencies": {
+ "AspNetCore.HealthChecks.Uris": "9.0.0",
+ "Aspire.Hosting": "13.4.6",
+ "Aspire.Hosting.AppHost": "13.4.6",
+ "Google.Protobuf": "3.34.1",
+ "Grpc.AspNetCore": "2.80.0",
+ "Grpc.Net.ClientFactory": "2.80.0",
+ "Grpc.Tools": "2.80.0",
+ "Humanizer.Core": "3.0.10",
+ "JsonPatch.Net": "3.3.0",
+ "KubernetesClient": "19.0.2",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.AutoActivation": "10.6.0",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "10.0.8",
+ "Microsoft.Extensions.FileSystemGlobbing": "10.0.8",
+ "Microsoft.Extensions.Hosting": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Http": "10.0.8",
+ "Microsoft.Extensions.Http.Resilience": "10.6.0",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8",
+ "ModelContextProtocol": "1.3.0",
+ "Newtonsoft.Json": "13.0.4",
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": "1.15.3",
+ "OpenTelemetry.Extensions.Hosting": "1.15.3",
+ "Polly.Core": "8.6.6",
+ "Polly.Extensions": "8.6.6",
+ "Semver": "3.0.0",
+ "StreamJsonRpc": "2.25.29",
+ "System.IO.Hashing": "10.0.8"
+ }
+ },
+ "coverlet.collector": {
+ "type": "Direct",
+ "requested": "[10.0.1, )",
+ "resolved": "10.0.1",
+ "contentHash": "27jXSV/0DbVqF5jDrAxuQFZ9oaz6gmG03p8ttxAFk+X0M4woFYj7MoWDLCna5EGLb0CE6OE7X6ZH3Wt5smTtaA=="
+ },
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[18.7.0, )",
+ "resolved": "18.7.0",
+ "contentHash": "49xH9j4UzCh2hMohJp53g3wUTvyycECw7CtVht4gfCz5ykudB1uBcF6D0TtgJPjCtP76UPW53bQElKdCeX+dUg==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "18.7.0",
+ "Microsoft.TestPlatform.TestHost": "18.7.0"
+ }
+ },
+ "SonarAnalyzer.CSharp": {
+ "type": "Direct",
+ "requested": "[10.28.0.143324, )",
+ "resolved": "10.28.0.143324",
+ "contentHash": "ZnmYHFiQw2Aph2ft9c7UqVrqe79aZR5l7oeG59+sgrSAO9J159meglP1Zo34+Mcw4etIUTC9btYnP0Ar/rQIyg=="
+ },
+ "xunit": {
+ "type": "Direct",
+ "requested": "[2.9.3, )",
+ "resolved": "2.9.3",
+ "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==",
+ "dependencies": {
+ "xunit.analyzers": "1.18.0",
+ "xunit.assert": "2.9.3",
+ "xunit.core": "[2.9.3]"
+ }
+ },
+ "xunit.runner.visualstudio": {
+ "type": "Direct",
+ "requested": "[3.1.5, )",
+ "resolved": "3.1.5",
+ "contentHash": "tKi7dSTwP4m5m9eXPM2Ime4Kn7xNf4x4zT9sdLO/G4hZVnQCRiMTWoSZqI/pYTVeI27oPPqHBKYI/DjJ9GsYgA=="
+ },
+ "Aspire.Hosting": {
+ "type": "Transitive",
+ "resolved": "13.4.6",
+ "contentHash": "YJEvsrgcVLPQ88aJ3aFMIEJue0ZFmyH8RfyQu0PnHdZzjBAiK0c8BaYUAycWu35QpTe4hHxEYaY0wW4gpy/kwg==",
+ "dependencies": {
+ "AspNetCore.HealthChecks.Uris": "9.0.0",
+ "Google.Protobuf": "3.34.1",
+ "Grpc.AspNetCore": "2.80.0",
+ "Grpc.Net.ClientFactory": "2.80.0",
+ "Humanizer.Core": "3.0.10",
+ "JsonPatch.Net": "3.3.0",
+ "KubernetesClient": "19.0.2",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.27",
+ "Microsoft.Extensions.FileSystemGlobbing": "10.0.8",
+ "Microsoft.Extensions.Hosting": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Http": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8",
+ "ModelContextProtocol": "1.3.0",
+ "Newtonsoft.Json": "13.0.4",
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": "1.15.3",
+ "OpenTelemetry.Extensions.Hosting": "1.15.3",
+ "Polly.Core": "8.6.6",
+ "Semver": "3.0.0",
+ "StreamJsonRpc": "2.25.29",
+ "System.IO.Hashing": "10.0.8"
+ }
+ },
+ "Aspire.Hosting.AppHost": {
+ "type": "Transitive",
+ "resolved": "13.4.6",
+ "contentHash": "+4BxGpb2JQDk3+uOmk5eDpK0Brg2d3hwqrK/7d/aDBAUoHYbjfwbItIfdYJjKjbxUkBiaotokcWdVbLNsMo9Nw==",
+ "dependencies": {
+ "AspNetCore.HealthChecks.Uris": "9.0.0",
+ "Aspire.Hosting": "13.4.6",
+ "Google.Protobuf": "3.34.1",
+ "Grpc.AspNetCore": "2.80.0",
+ "Grpc.Net.ClientFactory": "2.80.0",
+ "Grpc.Tools": "2.80.0",
+ "Humanizer.Core": "3.0.10",
+ "JsonPatch.Net": "3.3.0",
+ "KubernetesClient": "19.0.2",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "10.0.8",
+ "Microsoft.Extensions.FileSystemGlobbing": "10.0.8",
+ "Microsoft.Extensions.Hosting": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Http": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8",
+ "ModelContextProtocol": "1.3.0",
+ "Newtonsoft.Json": "13.0.4",
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": "1.15.3",
+ "OpenTelemetry.Extensions.Hosting": "1.15.3",
+ "Polly.Core": "8.6.6",
+ "Semver": "3.0.0",
+ "StreamJsonRpc": "2.25.29",
+ "System.IO.Hashing": "10.0.8"
+ }
+ },
+ "AspNetCore.HealthChecks.Uris": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "XYdNlA437KeF8p9qOpZFyNqAN+c0FXt/JjTvzH/Qans0q0O3pPE8KPnn39ucQQjR/Roum1vLTP3kXiUs8VHyuA==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.11",
+ "Microsoft.Extensions.Http": "8.0.0"
+ }
+ },
+ "Fractions": {
+ "type": "Transitive",
+ "resolved": "7.3.0",
+ "contentHash": "2bETFWLBc8b7Ut2SVi+bxhGVwiSpknHYGBh2PADyGWONLkTxT7bKyDRhF8ao+XUv90tq8Fl7GTPxSI5bacIRJw=="
+ },
+ "Google.Protobuf": {
+ "type": "Transitive",
+ "resolved": "3.34.1",
+ "contentHash": "212vdYxRuVopGE5bess6Jg5oXWyizA6hcLPTI7G+qA4PthQEvfeof3njT+7VSY5v/+O0P22xTydiP5fSJJpGEA=="
+ },
+ "Grpc.AspNetCore": {
+ "type": "Transitive",
+ "resolved": "2.80.0",
+ "contentHash": "ASbJbdtCUlGiKxe9NsN/QeG1PdibYoN0pEgP9U87cvS6HV0XsT+VdO/g2M6Ri8zZURfX5c7MBTaFVP/YCrC72A==",
+ "dependencies": {
+ "Google.Protobuf": "3.31.1",
+ "Grpc.AspNetCore.Server.ClientFactory": "2.80.0",
+ "Grpc.Tools": "2.80.0"
+ }
+ },
+ "Grpc.AspNetCore.Server": {
+ "type": "Transitive",
+ "resolved": "2.80.0",
+ "contentHash": "lbK7z1sZP5imPdQ035f/CZ61iIaBWouY6A580E9JNo7vzXYX/Qo+GQtSjOzhP9VFbxk7mtLoMhn/v1fT2U7kTw==",
+ "dependencies": {
+ "Grpc.Net.Common": "2.80.0"
+ }
+ },
+ "Grpc.AspNetCore.Server.ClientFactory": {
+ "type": "Transitive",
+ "resolved": "2.80.0",
+ "contentHash": "7JdfxQZv/pO9qU5Ild2mrkzYA7PmVGDKVmWqKVCZNRSDN/RluRN4S4utYgBSwAcYgUBWQDHNb1Ll7wm3BdHfqw==",
+ "dependencies": {
+ "Grpc.AspNetCore.Server": "2.80.0",
+ "Grpc.Net.ClientFactory": "2.80.0"
+ }
+ },
+ "Grpc.Core.Api": {
+ "type": "Transitive",
+ "resolved": "2.80.0",
+ "contentHash": "i/8s+MOrYa6n7BmZ5bilcbHk+EMJDQHm2MKLhwGAT+urQqlZ6cpjvSivYvuULjebuX+UKieLYZbLRCmVQxFRkw=="
+ },
+ "Grpc.Net.Client": {
+ "type": "Transitive",
+ "resolved": "2.80.0",
+ "contentHash": "I1Aa24nTRMHqx0pmQfvthFsOpejquDjiJV6092KBqjw6EEr3wA9CMXlrdkoEgHartOiJrpKyZiQRl7n0NVlfBg==",
+ "dependencies": {
+ "Grpc.Net.Common": "2.80.0",
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.0"
+ }
+ },
+ "Grpc.Net.ClientFactory": {
+ "type": "Transitive",
+ "resolved": "2.80.0",
+ "contentHash": "YtY1DWID2phwiGc8qBG7+wf00Do5jE7BkJgCc6nbu5b50OsD89mSd73oCE8fCnUo7IjtDAEYFOYI3NSzgn28gw==",
+ "dependencies": {
+ "Grpc.Net.Client": "2.80.0",
+ "Microsoft.Extensions.Http": "8.0.0"
+ }
+ },
+ "Grpc.Net.Common": {
+ "type": "Transitive",
+ "resolved": "2.80.0",
+ "contentHash": "E2ERsx+9IXlry4yjBl8btx0XMIKzymGNSvX5jmBS/uSwYyYDoKIDcIREyLqFLvd8vcJdcoRlycpvn9YRXutFpQ==",
+ "dependencies": {
+ "Grpc.Core.Api": "2.80.0"
+ }
+ },
+ "Grpc.Tools": {
+ "type": "Transitive",
+ "resolved": "2.80.0",
+ "contentHash": "NS1AxwVZnrdbBoMf5L5ruGjBjoLBej9avhqxWNsgfu2GU6FhpxEVJOwLJsdljlDCjvquJiAH2zf/WodIWMvf2w=="
+ },
+ "Humanizer.Core": {
+ "type": "Transitive",
+ "resolved": "3.0.10",
+ "contentHash": "yZIhtw8sYuvsONzQbZxWpR60tMWYHXoo0DL6nyOqSFiU5POjBTSEyWFpTQtJEZuy+oqiYTXKXY/Mjx7KnqIQFw=="
+ },
+ "Json.More.Net": {
+ "type": "Transitive",
+ "resolved": "2.1.0",
+ "contentHash": "qtwsyAsL55y2vB2/sK4Pjg3ZyVzD5KKSpV3lOAMHlnjFfsjQ/86eHJfQT9aV1YysVXzF4+xyHOZbh7Iu3YQ7Lg=="
+ },
+ "JsonPatch.Net": {
+ "type": "Transitive",
+ "resolved": "3.3.0",
+ "contentHash": "GIcMMDtzfzVfIpQgey8w7dhzcw6jG5nD4DDAdQCTmHfblkCvN7mI8K03to8YyUhKMl4PTR6D6nLSvWmyOGFNTg==",
+ "dependencies": {
+ "JsonPointer.Net": "5.2.0"
+ }
+ },
+ "JsonPointer.Net": {
+ "type": "Transitive",
+ "resolved": "5.2.0",
+ "contentHash": "qe1F7Tr/p4mgwLPU9P60MbYkp+xnL2uCPnWXGgzfR/AZCunAZIC0RZ32dLGJJEhSuLEfm0YF/1R3u5C7mEVq+w==",
+ "dependencies": {
+ "Humanizer.Core": "2.14.1",
+ "Json.More.Net": "2.1.0"
+ }
+ },
+ "KubernetesClient": {
+ "type": "Transitive",
+ "resolved": "19.0.2",
+ "contentHash": "0m8FuzCDBygaXMbsb7qVapNZzTm4ftM7ECp/waTRh/XOUQziRF2rKJCRmsvYbBXgJkQvU+FBbkoa40hexzDC+g==",
+ "dependencies": {
+ "Fractions": "7.3.0",
+ "YamlDotNet": "16.3.0"
+ }
+ },
+ "MessagePack.Annotations": {
+ "type": "Transitive",
+ "resolved": "2.5.302",
+ "contentHash": "PTHQHbMJzx1VtUUCpnvPavD7o5X9s2dAJ4uQHAP2kBCwJKICpPTZq0qxzbB4/6iJJiIxem8zlxyfldGAx1SjSQ=="
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "18.7.0",
+ "contentHash": "+wFfx9s7D9wegM0RziXMj2kvYDT4qcqXXtyjiQwSZOGQ2wwcOAJQcD6eQXk02jt0MvRNawtp8TJxTrV+wD8X1g=="
+ },
+ "Microsoft.Extensions.AI.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.5.2",
+ "contentHash": "Ei+YWV9Ybnps7pR1dgjlG29gelXEwZkhLVAcWmKe6HvXS6LNBYgSdWiY3Hk9OZXYtK34rv/NtLWBQYQGOBQYPQ=="
+ },
+ "Microsoft.Extensions.AmbientMetadata.Application": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "yZ0818pVYQvUFW/1m+f8A1+lIAeSeQxEOdUCMIC+tqcRRKlqNjKPRKvGHPp8xLRbZBLaHfBtDslJa/sofn7J/Q==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Caching.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.7",
+ "contentHash": "pUDgQKEqNUFlerDIFRg7zzoDVRPEWIG7nR40h8Gzg8RXza4Ry0lWZ7u91bmwu3iUDCxw3Dv6TLHVFoAgY0gy7Q==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.7"
+ }
+ },
+ "Microsoft.Extensions.Compliance.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "qbi6lg6dyvydBvpjXeBx3wLPvmgXWn3nwkKBOsgEck6w++BEsBcv8YhdcczME16Oq+a6wkdtna9/qCEkxsNw5A==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.ObjectPool": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "woZsWLhOQsASuxbmgiZJqiGUBNo3IjRdXC92xt8rRokza+P6/nIsnzq7sm9Or6ZYcRl2kL1ufj8HVzp1QlPTXw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "qGhRPd3VxfLV9UqatVOiD9mAeUbj2KiMwGFYC5uXlzExiZQoe4X/hdmzGIU7BQjNLTqCnnbTHVyBglG3668/HA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Tp/+LPb70RyjjtLg9m5C959eP4KrUpJHThZfAegZVpsfmGvzfuNkuYbI/ft+LvXhMSyUcAeOPaN6rzTccwnZAg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.CommandLine": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "nQXq1a4MiInYh+0VF9fguxAl06q2ftmOyYQ+5e933s4rk57xjgkbTjUdFUySzjrcrvDeWsSqlZB+TE8+TbM2HA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.8",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Configuration.EnvironmentVariables": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "bVGqctAfPGfTxJvNp8pMshtvpsUj6r6JkeiCNVIGVYO5gBxuxdN0Lbr25kEvE/zXdctkEc44g8HssnPgDnFGVA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.8",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Configuration.FileExtensions": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "1g9mzuu8gIHkjYb0jLxOTQVl/QDG5nn0b0JzgT/gbgNKr6gXZzxOHRAsdYRc1eDApB7LdHR8uK5vQrNjIQdRrQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.8",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.8",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Json": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "KLtAZ6A38s1pIfCO2ns6aG14NNGMYNZ4PBYfFK4M+R4A+xuSc6oklhqDcpHZxvDpyBWeFtR5C8iQBw2ng8tUHQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.8",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.FileExtensions": "10.0.8",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.AutoActivation": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "WrSK0FGHSjSY4Pg4kd9Du8CUDwrgFTwHH1Y+N7sjyT6RFMU+G3coQ/Uq9PMGdQcy+DVKSMGHjfmWY47ZoYvhNA==",
+ "dependencies": {
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "NLXI3PbTe39q6/sgs7JYhmfPf7bMzReUoAJ0q9Po6yhfM+0anZa7PrEva4W2SdiLWGyB9eKZS9THGt2BP40xJg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "86RgyFsmVslW4Nu28IXgt8tLglynGQrwjk/xhGZaTe8j6YIeR1Ywoc42hSHsBSl920CQdfqq2dBohZiGm3AkUA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.ExceptionSummarization": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "Kc4XbbxtCzvn2P/fKF48xLWPbp3N5DV0MkJlgPJHEb47PUqCJ6kEl/JTKfpmP7QLuwYjx2QxKTdtwXfpjgA6KQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "IlXZUZIA9b99yQURc8jOLmmS6GD42vj6t+LqWs6Dd+naggObSbEXDw8DU8DUu2tL8CnyG96F4pDLhjd7BmZPAQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "0j06qq5I1YGSIi4M86UaVITBprvn3bTWKmQiLDNEqnZ2d+UxaFb+tVqemxVzr5lkr6GTR83ExUfSIpCnBaTZFA=="
+ },
+ "Microsoft.Extensions.Features": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "ohU5761fyZq7eSg0nLQMzHvCrGGGmyzgRzAGebHZlQ4D7/9v9uzPYJ/AUYcD5kNSiOWR34Ma4qGgKs0PUPrYZw=="
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Oxn4vqDk+EwceTMpZxVm7L/UZEAM1qIQlNP1+7tBZckD+P4SKrm/5X4gMTPCTdpnau/xY8Sb4/0d6onomSg4ZA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.FileProviders.Physical": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "GkPvQe6IdidLu6Q3Lw6+B8NJpW8feW8czZ5mBKt5rXM/x8MvZfEp5WvAsjznzDGd23chIDrW0b2mmt+ScnEgiw==",
+ "dependencies": {
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.8",
+ "Microsoft.Extensions.FileSystemGlobbing": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.FileSystemGlobbing": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "IUQet3SY51xIFcFZKtAB6a54/Zdxs7T3SQ84kJtOD6yeXfZgiOMksACWD5qtTmXGQGFH4QYGBOT0KIO8Uy/dJw=="
+ },
+ "Microsoft.Extensions.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Xd/2F+uWblTiUp+ssaDZN2ea4vmnHmW6PXugmqBHumyhqVkyeh6RJ3S2Zo/F+1bXIL/KuGqe2pKv6UiGOc1KeQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Http.Diagnostics": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "1m1zdBGW5J8MOxdZpJ5mUqdSaamRrYkpmfnEfeDmlZnglpfgDztcKOBU6cVsmn90AB7Ji2w8USvEsJ8PahbBWQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Http": "10.0.9",
+ "Microsoft.Extensions.Telemetry": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "N7Gm9SjugYjmmnhwbBKC9DFqGqjfJvh6YfOJgtwh0AW0Xpok3dIVors1ik050XmUxKAgAc7nNngDIJyFb06K2g==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "9S/DFt4cohlMPpzIxjG6kk0L8MuN2vDm9pbMCulxtJzzk82oJHVLBd8vuQxaPskaYQwKqmFmbannf5eoChgjYg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Configuration": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "bUth5ip7YsZMXWZS42IRTI0zDrPEqdE+xnsmcL0Pk784grWKApDvc5UoMi2tP2qYJ5ylFzeVDuDu08sFATq1bg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Console": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "6cv53sHsPnFS56PJw8X4GbNcjeX1KGyFJRxJWvxOgK63cnqeSB1k1eRwjUdkse0tBhwlH6qc9EOYDlan+CYTuw==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Logging.Debug": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "4HW3M1lGHHDwEYcDZHRNptBQ48LCI2yW+XV4vuxdfQUqafTpVT8j9RqAsez08krZKhIiaArWu8iQq5uRKZ9Ffg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Logging.EventLog": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "kK/C3SLIoGrcZvddYQw4eMm6YaROiSYBO7YgUR5Hdv5l+GIjBmbvQK5cST2FqjeubiAOPqFEimBT2N/8wVI+3A==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "System.Diagnostics.EventLog": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Logging.EventSource": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "HX2M0MgzwQM8jpLe3AYAEMd0YsUfOP5RgGrDuk+Ki9n7HSuMbvLm9TEV3qRI3Pg9aqxc56GfgK/KdMRBhfWwKw==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.ObjectPool": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "KZENCkfqO7Ciax6goUWQHDSxKH+x763hkBWMz9KpE87EyKW+EKEas9EFe9i1KgtQShG8KwKxaeJ5gd9sj6TuTQ=="
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "hyNdX4c2UwkRkzb9byw0H2DQkRzwBM3mzY2sCM9egwzTyg8dvQJmp5noQHGEaaCORQrNK3DD2gREBsc2DlXS4A==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Options.ConfigurationExtensions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Y4E24zffF/aPS0igNvY6ZzAQfbxd6AYdC9L4brnH+uK0yYYHIR6FeGVQVVjAOo8wub1EQDl2B90lCcpqoTF7Yw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "fmEbAUFsaIKirgLt/lYhuFRBwhcSJN31jjHgCdbQxJiWOum6EdLjkbgGuukSP9z/a+9LibaxII/kF+GwOXgC4g=="
+ },
+ "Microsoft.Extensions.Resilience": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "ldUrtRzWSnfe5945xoSxDXxoWXnIKn19E74Huieyp76XW/BjRk3bhkILSSib1NKdZ2lpi/ReTvOpNGcJ8hkOxw==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics": "10.0.9",
+ "Microsoft.Extensions.Diagnostics.ExceptionSummarization": "10.7.0",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9",
+ "Microsoft.Extensions.Telemetry.Abstractions": "10.7.0",
+ "Polly.Extensions": "8.4.2",
+ "Polly.RateLimiting": "8.4.2"
+ }
+ },
+ "Microsoft.Extensions.ServiceDiscovery.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "1a/tCYg7+5HdJRQ0BQDDGzANBaw/1fony7eNsMwQ5n9FZmO3K5JCls02o8fwQc296l0szNBwroLRtXf94OZw9A==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Features": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Telemetry": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "vZFNVvkz+7IABEv4klzPX/ZdmZQ6TrcReKUfeYIrQ2bbnvEcgZtG1RmOGeWkc1hFg8cq9sAgUc2lHCqlXSqf5A==",
+ "dependencies": {
+ "Microsoft.Extensions.AmbientMetadata.Application": "10.7.0",
+ "Microsoft.Extensions.DependencyInjection.AutoActivation": "10.7.0",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.9",
+ "Microsoft.Extensions.ObjectPool": "10.0.9",
+ "Microsoft.Extensions.Telemetry.Abstractions": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.Telemetry.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "ir1QKShZzfEmqO9LUWESVMUDZdnxYBSKQyulYPMeaye531lAuT8YTotthx+htrrS8hZY52HANeqowLQyCYBCZg==",
+ "dependencies": {
+ "Microsoft.Extensions.Compliance.Abstractions": "10.7.0",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.ObjectPool": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.NET.StringTools": {
+ "type": "Transitive",
+ "resolved": "18.4.0",
+ "contentHash": "iQWOKi3L5QStmWqDjDubcr1KlTDy88qBTe88I0etlUUo1l0zSNebGJXl1Xetyl+ACA+ujP3YUtxo3Nz54JPriw=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "18.7.0",
+ "contentHash": "6rmgU4q3/WOpOPcncI0YW0Q/QpcQtwR2TTEXDR5+4TfSimPBAk6Z/BgKLeGgp1SOun0ROVUCCafXhRLwsHaPpA=="
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "18.7.0",
+ "contentHash": "kYwfmebCs8992zaxEDkvG7S+YEouTeKfYVKUFEkwh1W2dIoOaevBt80XSKVXCUFEhusjOIm1sFfHBnoJgygrRA==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "18.7.0",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "Microsoft.VisualStudio.Threading.Only": {
+ "type": "Transitive",
+ "resolved": "17.14.15",
+ "contentHash": "NqONyw1RXyj9P3k5e1uU2k9kc1ptwuU5NJQzG+MPq7vQVHUzBY8HLuJf/N2Rw5H/myD96CVxziDxmjawPuzntw==",
+ "dependencies": {
+ "Microsoft.VisualStudio.Validation": "17.8.8"
+ }
+ },
+ "Microsoft.VisualStudio.Validation": {
+ "type": "Transitive",
+ "resolved": "17.13.22",
+ "contentHash": "fC20ITOxlUpGQ0ltAxITQbeFxwuB6OjLT3lByC4+/Gm46o/Mwv9hlIVrBhiUhnqdQzUUvr4EHkdiYe7WOSMLmw=="
+ },
+ "ModelContextProtocol": {
+ "type": "Transitive",
+ "resolved": "1.3.0",
+ "contentHash": "WDaD6z9KkkCUHSo15xK7tYBERHy8uqP+cIUp8uIxhR0yrlpJLXTRcJcUUVqpXlBkV7MK9Eo3mTrAnctLnJuHDQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Abstractions": "10.0.7",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.7",
+ "ModelContextProtocol.Core": "1.3.0"
+ }
+ },
+ "ModelContextProtocol.Core": {
+ "type": "Transitive",
+ "resolved": "1.3.0",
+ "contentHash": "OWmdxDSwA7K9pNNg4t98MXNIssHG/wOQEr/G8pG5B7synDdw4MnmZ/IIVeb3yUdeznPqnDHvd3FBCK0jRk4IZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.AI.Abstractions": "10.5.2",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.7"
+ }
+ },
+ "Nerdbank.MessagePack": {
+ "type": "Transitive",
+ "resolved": "1.2.4",
+ "contentHash": "9NKlDsKkOV5zQFkZZnQmssdV6npFNs0Of1Nz5mvAJA4uANxCge2TfXQ9nCYUet58bEWQ00a/aNHdjmcXEI7iuQ==",
+ "dependencies": {
+ "Microsoft.NET.StringTools": "18.4.0",
+ "Microsoft.VisualStudio.Validation": "17.13.22",
+ "PolyType": "1.3.1"
+ }
+ },
+ "Nerdbank.Streams": {
+ "type": "Transitive",
+ "resolved": "2.13.16",
+ "contentHash": "GjifQ5M4IpQWjGNNbIrsj8M/M7ESb2328OeoGeqxk5rOJiuaAJ5zFc6CyqB+5UWKr1KEGK23hKoxA+z1gooAKA==",
+ "dependencies": {
+ "Microsoft.VisualStudio.Threading.Only": "17.13.61",
+ "Microsoft.VisualStudio.Validation": "17.8.8"
+ }
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.4",
+ "contentHash": "pdgNNMai3zv51W5aq268sujXUyx7SNdE2bj1wZcWjAQrKMFZV260lbqYop1d2GM67JI1huLRwxo9ZqnfF/lC6A=="
+ },
+ "Npgsql": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "7nb5YzXuvWWJxB0J8DiyL3we+X4FOctZrt0fIBnucOIaIevFEEwGQVZKtiu9olXdlNAK1eNgqSral6r/jlhI4w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.0"
+ }
+ },
+ "OpenTelemetry": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "nE/Px3MUvQC8c0UG0DOP5OJE7vMtiMaPYi/6TkSS/o/O0s/oPq+8WaPYTVEPzb7lwu/QyLgknc+sFm2FjPXe2A==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.0",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.0",
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Api": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "WZP8Eb6vZTeNqeV+fjBitc7iefBoTHIhaWorqg/h/YiQBlcQJu0bICuTqKV0XRyjiE0eWs80yLlnUtHAFSkFWA=="
+ },
+ "OpenTelemetry.Api.ProviderBuilderExtensions": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "hZwaHAkXvUNn9+cS+vEvYBgIrIQOQRz2cIRUODZ5gxHsDsLeNCueLgZFkybopjE0jUhLut6lm5eL3LTqbW0hMg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
+ "OpenTelemetry.Api": "1.16.0"
+ }
+ },
+ "Polly.Core": {
+ "type": "Transitive",
+ "resolved": "8.6.6",
+ "contentHash": "lCBL9mmhF9TZxHG3beVRkyjlLohkIC464xIAq7J7Y59C+z42hmsdUaeCKl2SIAYertOUU5TeBXyQDLDQGIKePQ=="
+ },
+ "Polly.Extensions": {
+ "type": "Transitive",
+ "resolved": "8.6.6",
+ "contentHash": "hUhiTVtJud5PhVmt6bnns164wn5BPLzdzXIu09aZOHf/1NiHYgL+wzpQpvj00Fhcp0OYnFaVMcolMYQjxtVKrg==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Options": "8.0.0",
+ "Polly.Core": "8.6.6"
+ }
+ },
+ "Polly.RateLimiting": {
+ "type": "Transitive",
+ "resolved": "8.4.2",
+ "contentHash": "ehTImQ/eUyO07VYW2WvwSmU9rRH200SKJ/3jku9rOkyWE0A2JxNFmAVms8dSn49QLSjmjFRRSgfNyOgr/2PSmA==",
+ "dependencies": {
+ "Polly.Core": "8.4.2",
+ "System.Threading.RateLimiting": "8.0.0"
+ }
+ },
+ "PolyType": {
+ "type": "Transitive",
+ "resolved": "1.3.1",
+ "contentHash": "GFdJvsN/VczpP0GfdPIi0jDudGH2Emk3rcIJHdqwU2SL2zQm1xSl6OTYvQSUxvzHu3ClWo096ICdWXVkpifQUA=="
+ },
+ "Semver": {
+ "type": "Transitive",
+ "resolved": "3.0.0",
+ "contentHash": "9jZCicsVgTebqkAujRWtC9J1A5EQVlu0TVKHcgoCuv345ve5DYf4D1MjhKEnQjdRZo6x/vdv6QQrYFs7ilGzLA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "5.0.1"
+ }
+ },
+ "StreamJsonRpc": {
+ "type": "Transitive",
+ "resolved": "2.25.29",
+ "contentHash": "ebP0ScWRtbd1EWayLRJ6bjM7aPwYZoJIIU1DApmn/cYl2dydR9f4p6Mj3eY77qzAywy6IbZWB9sJPSWeO5hmrg==",
+ "dependencies": {
+ "MessagePack": "2.5.302",
+ "Microsoft.VisualStudio.Threading.Only": "17.14.15",
+ "Microsoft.VisualStudio.Validation": "17.13.22",
+ "Nerdbank.MessagePack": "1.2.4",
+ "Nerdbank.Streams": "2.13.16",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "System.Diagnostics.EventLog": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "+Ro7WgIom+BDNH+YhTuZKL6QJ0ctfOpTyfUG/h3aU5KwXt3OaNf0wYWrTvoBUj+34Dy5V8dN9yCco1hAJQ4txw=="
+ },
+ "System.IO.Hashing": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "+dJsbPJ3FyUbTZNplFj0RCKePFizmv6ewDV46JE9q/IVH4c3xTCftHfHelLsAKf0jryIPqgMb5GpS0x7TAY3mg=="
+ },
+ "System.Threading.RateLimiting": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "7mu9v0QDv66ar3DpGSZHg9NuNcxDaaAcnMULuZlaTpP9+hwXhrxNGsF5GmLkSHxFdb5bBc1TzeujsRgTrPWi+Q=="
+ },
+ "xunit.abstractions": {
+ "type": "Transitive",
+ "resolved": "2.0.3",
+ "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
+ },
+ "xunit.analyzers": {
+ "type": "Transitive",
+ "resolved": "1.18.0",
+ "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ=="
+ },
+ "xunit.assert": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA=="
+ },
+ "xunit.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]",
+ "xunit.extensibility.execution": "[2.9.3]"
+ }
+ },
+ "xunit.extensibility.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==",
+ "dependencies": {
+ "xunit.abstractions": "2.0.3"
+ }
+ },
+ "xunit.extensibility.execution": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]"
+ }
+ },
+ "YamlDotNet": {
+ "type": "Transitive",
+ "resolved": "16.3.0",
+ "contentHash": "SgMOdxbz8X65z8hraIs6hOEdnkH6hESTAIUa7viEngHOYaH+6q5XJmwr1+yb9vJpNQ19hCQY69xbFsLtXpobQA=="
+ },
+ "adminassistant.aspire.servicedefaults": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Extensions.Http.Resilience": "[10.7.0, )",
+ "Microsoft.Extensions.ServiceDiscovery": "[10.7.0, )",
+ "Npgsql.OpenTelemetry": "[10.0.3, )",
+ "OpenTelemetry.Exporter.Console": "[1.16.0, )",
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": "[1.16.0, )",
+ "OpenTelemetry.Extensions.Hosting": "[1.16.0, )",
+ "OpenTelemetry.Instrumentation.AspNetCore": "[1.16.0, )",
+ "OpenTelemetry.Instrumentation.EntityFrameworkCore": "[1.0.0-beta.8, )",
+ "OpenTelemetry.Instrumentation.GrpcNetClient": "[1.6.0-beta.3, )",
+ "OpenTelemetry.Instrumentation.Http": "[1.16.0, )",
+ "OpenTelemetry.Instrumentation.Runtime": "[1.15.1, )",
+ "OpenTelemetry.Instrumentation.SqlClient": "[1.16.0, )"
+ }
+ },
+ "MessagePack": {
+ "type": "CentralTransitive",
+ "requested": "[2.6.100, )",
+ "resolved": "2.5.302",
+ "contentHash": "5DZsKli4dMEpm/glcMAheuO8/IesfaTskbfsuvgnQwWFKS5FN7Z6yNx+5F+UW94E+9N2qt8Zs63/XVzpLsElgA==",
+ "dependencies": {
+ "MessagePack.Annotations": "2.5.302",
+ "Microsoft.NET.StringTools": "17.6.3"
+ }
+ },
+ "Microsoft.Extensions.Configuration.UserSecrets": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.8",
+ "contentHash": "6XTfFOnf27WY8kEeZkTZ4YNn0t+imgvdQ0YaAdR4vgURKATo9bCaVJ1KB71IOJAQtJP7Elb53VHlTNXg2CtSsA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Json": "10.0.8",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.8",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "NijozhERJDIaJ4k5TSMy1jOi0cSC2HfkvRD/Sl+kGSSKgVbFnF4GxgtMN/MrzHB8D1JxIrD4xSer9Blh9v3axQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "g41l/30G3K4B/d/L8kjux0+30e27c8D0FVQ/PFCpbekgfDpj9mnDhieP67EqXWvl1EWNeZh2rpR4F5B/jcDOHA=="
+ },
+ "Microsoft.Extensions.Hosting": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.8",
+ "contentHash": "VfEyM2BipThcSd0GG/FS2ZPCVCTiosVq2zLKEDsfeMIg78sOVZPEmS7CgWlb+dqTlgXvLSL4OG2q6sM4xRhHNg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.8",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.Configuration.CommandLine": "10.0.8",
+ "Microsoft.Extensions.Configuration.EnvironmentVariables": "10.0.8",
+ "Microsoft.Extensions.Configuration.FileExtensions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Json": "10.0.8",
+ "Microsoft.Extensions.Configuration.UserSecrets": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Diagnostics": "10.0.8",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.8",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.8",
+ "Microsoft.Extensions.Logging.Console": "10.0.8",
+ "Microsoft.Extensions.Logging.Debug": "10.0.8",
+ "Microsoft.Extensions.Logging.EventLog": "10.0.8",
+ "Microsoft.Extensions.Logging.EventSource": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Http": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "5jdmuLRg1HO7x/v8McOf6ndhkMQWImkRBtJpXM8+xIocXNdLqCItyyFLKusdILc62TDzHuLlqaWoxtOA5FFOPg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Diagnostics": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Http.Resilience": {
+ "type": "CentralTransitive",
+ "requested": "[10.7.0, )",
+ "resolved": "10.7.0",
+ "contentHash": "3Lip0MkBVPtqU1wCM2M2Y8CzsqxA1BanVNMV9LQYMTwBgy25NDe6U9nSk6SfmsxXlh77iwSQuPsyjt5mxrOGmQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Http.Diagnostics": "10.7.0",
+ "Microsoft.Extensions.ObjectPool": "10.0.9",
+ "Microsoft.Extensions.Resilience": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.ServiceDiscovery": {
+ "type": "CentralTransitive",
+ "requested": "[10.7.0, )",
+ "resolved": "10.7.0",
+ "contentHash": "UgBfP98NmKDjx/2jbLGkckSlc8XG4ubkjPrqACE2i9LPmrgoYGWTh9snybRUGBm0sTchsq3on81XRxfvX+XC5g==",
+ "dependencies": {
+ "Microsoft.Extensions.Http": "10.0.9",
+ "Microsoft.Extensions.ServiceDiscovery.Abstractions": "10.7.0"
+ }
+ },
+ "Npgsql.OpenTelemetry": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "ShsdG/FHxJ2VuWM6tebJL/mCWkcxymmvtENN59c85EsJdT4TStWwwtgZoBu/9UvC0qi1jpFZ6bOfl9ijiWD+vA==",
+ "dependencies": {
+ "Npgsql": "10.0.3",
+ "OpenTelemetry.API": "1.15.3"
+ }
+ },
+ "OpenTelemetry.Exporter.Console": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "cv3pKEn3KyJUNz9o8kvu5UN0NJEUoNSo5hJR4rgbfvqM6oA3moj+tkpbbQrE3bDvetBvYBes17ZxQxBBTvnJ+w==",
+ "dependencies": {
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "gzYLY8sVDY5FYtVlCYSzBYX53xslRlvBLxwFYOdNIhc76SgKdFYUoDQXOeQI3WPBCrZp51QNcP6fZHh1+HtpIQ==",
+ "dependencies": {
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Extensions.Hosting": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "/YfrO5MRaA156vhNanYGPX2JjOwKUrA0+Jf7ltT2eD3VkfHqXcEJY5Oxt/nWH8lqBOTc1nJpn2soBtD5Cml8Dg==",
+ "dependencies": {
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.0",
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Instrumentation.AspNetCore": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "vSC5EsmBVNcqXMh9BGkkq8zkoUjrg8ghBDb9zbKR8Bqjd05utjVgVft+fqsqQVsvlV5olGj1pBliHBngcIGSIg==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.EntityFrameworkCore": {
+ "type": "CentralTransitive",
+ "requested": "[1.0.0-beta.8, )",
+ "resolved": "1.0.0-beta.8",
+ "contentHash": "ilfbH1bDPm9YytgspAnQRVy3Hw0rNkYhjNJSNeT9QFWrwXAjCYVPVGTpHOgzM9gB5bS/u+04IgQainDzthUnVA==",
+ "dependencies": {
+ "Microsoft.Extensions.Options": "3.1.0",
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.6.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.GrpcNetClient": {
+ "type": "CentralTransitive",
+ "requested": "[1.6.0-beta.3, )",
+ "resolved": "1.6.0-beta.3",
+ "contentHash": "nzw8D5in6Hg/GbjNlq2FETP4GjSckae9hPGTxAUO7UiOS1lqkyxZJ7f4ntIjFKbiS3wuA9wPfQVH/3CaPV6EvQ==",
+ "dependencies": {
+ "OpenTelemetry": "1.6.0"
+ }
+ },
+ "OpenTelemetry.Instrumentation.Http": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "+Sz3lfvMXwWE8s/sMruHCDlO/+cArFVc6oBg1tCb70BKlL9FCC7uK4Ar2/VP9Hhwvs+UwaW1vGzE/uiByVHXiA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.0",
+ "Microsoft.Extensions.Options": "10.0.0",
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.Runtime": {
+ "type": "CentralTransitive",
+ "requested": "[1.15.1, )",
+ "resolved": "1.15.1",
+ "contentHash": "cpPwlUT5HXcLGPaIgsbSy0W9eFYAPGVbTP1p8/uyQ4Osvf5BJuPpEXE7crL09SmEd44r0DGNKDtsqxaAz0HxQw==",
+ "dependencies": {
+ "OpenTelemetry.Api": "[1.15.3, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.SqlClient": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "gZCmdQN24ty9FNLKYUR0VAojTByO650HgN89Ddoi9AIA2L3XqIHyUadNnFuIOKNo6+Pgrn4NgehvOzcmYhcl7A==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.0",
+ "Microsoft.Extensions.Options": "10.0.0",
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AdminAssistant.Retro/packages.lock.json b/src/AdminAssistant.Retro/packages.lock.json
new file mode 100644
index 00000000..2eb74c84
--- /dev/null
+++ b/src/AdminAssistant.Retro/packages.lock.json
@@ -0,0 +1,733 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "FluentValidation.DependencyInjectionExtensions": {
+ "type": "Direct",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "D0VXh4dtjjX2aQizuaa0g6R8X3U1JaVqJPfGCvLwZX9t/O2h7tkpbitbadQMfwcgSPdDbI2vDxuwRMv/Uf9dHA==",
+ "dependencies": {
+ "FluentValidation": "12.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.0"
+ }
+ },
+ "Microsoft.Extensions.Configuration.UserSecrets": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "ockJRreRW/HbGwoyHzYOxMucFBimvAZ8lKNwQLMHrS6mwkDUaCJMWzzeE+Rm9vgFlv2o/xqk8fm+FpqrDCnkTA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Json": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Hosting": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "HTgnvmK0ubesUFO16pLC+i9+RS8lEGd6TmDouuy75FsAgIFrSwUVhYCqG2IENzBJwgxGc/6Rsulfsvd9ZG/XkA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.Configuration.CommandLine": "10.0.9",
+ "Microsoft.Extensions.Configuration.EnvironmentVariables": "10.0.9",
+ "Microsoft.Extensions.Configuration.FileExtensions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Json": "10.0.9",
+ "Microsoft.Extensions.Configuration.UserSecrets": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Diagnostics": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.9",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.9",
+ "Microsoft.Extensions.Logging.Console": "10.0.9",
+ "Microsoft.Extensions.Logging.Debug": "10.0.9",
+ "Microsoft.Extensions.Logging.EventLog": "10.0.9",
+ "Microsoft.Extensions.Logging.EventSource": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Http": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "5jdmuLRg1HO7x/v8McOf6ndhkMQWImkRBtJpXM8+xIocXNdLqCItyyFLKusdILc62TDzHuLlqaWoxtOA5FFOPg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Diagnostics": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "SonarAnalyzer.CSharp": {
+ "type": "Direct",
+ "requested": "[10.28.0.143324, )",
+ "resolved": "10.28.0.143324",
+ "contentHash": "ZnmYHFiQw2Aph2ft9c7UqVrqe79aZR5l7oeG59+sgrSAO9J159meglP1Zo34+Mcw4etIUTC9btYnP0Ar/rQIyg=="
+ },
+ "Terminal.Gui": {
+ "type": "Direct",
+ "requested": "[1.19.0, )",
+ "resolved": "1.19.0",
+ "contentHash": "Pgdlgout2KsBX+tO4t4mmg3YAL0vhT8falV4T77ohuQECel0q9agGKDWEfB0Cs1EnsGlrs7kCxocwphguKOVww==",
+ "dependencies": {
+ "NStack.Core": "1.1.1",
+ "System.Management": "9.0.4"
+ }
+ },
+ "Ardalis.Specification": {
+ "type": "Transitive",
+ "resolved": "9.3.1",
+ "contentHash": "GWrE6BA0smWFLbN+XPU2l5rDF9Uzelfbb3w35jJ0CGIat+p1ChbtLcbkvYRMEculBHOAo12omwAAOm3VFWkoJQ=="
+ },
+ "Microsoft.EntityFrameworkCore.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "GRMaiPkqYna/gCsyDffYDWmefGPC3hDrdMw+2rrGcQwhs6uZOsaMQXMJnoXQ35tx9SkBV2ieRRU9N/jLOO6BZw=="
+ },
+ "Microsoft.Extensions.Caching.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "5fGxcw2vuYp8s0wio9H1ECiuk4iKSdTIlNuigdLIrkhg+5XAwgFVDB/5Ots3pfN/QhABLYXutA79JFtnUKDSHA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Caching.Memory": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "G9mregdatGWMCQWeCw012LDeJVP7G/XIxH8Ddbjc8bD1//dA+8VVQdcRE9jI1moyoJxSSZhHITUnNQ8FUDl5+Q==",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Abstractions": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "woZsWLhOQsASuxbmgiZJqiGUBNo3IjRdXC92xt8rRokza+P6/nIsnzq7sm9Or6ZYcRl2kL1ufj8HVzp1QlPTXw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "qGhRPd3VxfLV9UqatVOiD9mAeUbj2KiMwGFYC5uXlzExiZQoe4X/hdmzGIU7BQjNLTqCnnbTHVyBglG3668/HA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Tp/+LPb70RyjjtLg9m5C959eP4KrUpJHThZfAegZVpsfmGvzfuNkuYbI/ft+LvXhMSyUcAeOPaN6rzTccwnZAg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.CommandLine": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "8D4HaqxWdm5M/nuhQffjPoR1ekhlpyKTXjFMAT5KlP0dvxkJe5JLAP6MAsuUEUxKWG09Bi5aAUaYMFKrMqWHqA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.EnvironmentVariables": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "JhKySWIL8+N4yFt4HPm1rGKCHooze+MBdTdpXc0bd/PGm31TrSUi2m0Nek1y441Wlv/RE6VH0W/DCv2xnmy8FA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.FileExtensions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "NgLB9cYnIb0/djSDcnqo4GIGGWooxGmr/gCUe3/CRXcKqLizOFui8MyW4EVkTB/KNJL+oXdMXnD6ZRm3Y+qkrQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Json": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "LiFKJgc9jZEW+7RhcSfsvCwoikt1lDdOqOn+whZC5zVHyg/gExftHl2QPtmfiHsEdDNg+Y+BDr6835tOfj8Y7A==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.FileExtensions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "NLXI3PbTe39q6/sgs7JYhmfPf7bMzReUoAJ0q9Po6yhfM+0anZa7PrEva4W2SdiLWGyB9eKZS9THGt2BP40xJg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "86RgyFsmVslW4Nu28IXgt8tLglynGQrwjk/xhGZaTe8j6YIeR1Ywoc42hSHsBSl920CQdfqq2dBohZiGm3AkUA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "IlXZUZIA9b99yQURc8jOLmmS6GD42vj6t+LqWs6Dd+naggObSbEXDw8DU8DUu2tL8CnyG96F4pDLhjd7BmZPAQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "0j06qq5I1YGSIi4M86UaVITBprvn3bTWKmQiLDNEqnZ2d+UxaFb+tVqemxVzr5lkr6GTR83ExUfSIpCnBaTZFA=="
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "VyjlpOHGpT9xoNFKNd/27FBF4eBimMcCCIfMxkeju/8uUnugwsxHfzZX2iP+ilYeoYB4HeT5gAoswTIKD6SYJw==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Relational": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Oxn4vqDk+EwceTMpZxVm7L/UZEAM1qIQlNP1+7tBZckD+P4SKrm/5X4gMTPCTdpnau/xY8Sb4/0d6onomSg4ZA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.FileProviders.Physical": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "zm8WVod4swgprGrkxkuSILlbXqdDRqF+3y6U0I7jlmj4PMyKN6d8pzXZHUn5lr/gZVULzk/+FeTYlTupt6akpg==",
+ "dependencies": {
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileSystemGlobbing": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.FileSystemGlobbing": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "mvRf9qOH/LslWIee/h+lsElnoUyKotEwoPL31soqScmO/eoxObaTCLCdx2DdqPdRi9LnB+7qKZ49jfyrLZuc+w=="
+ },
+ "Microsoft.Extensions.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Xd/2F+uWblTiUp+ssaDZN2ea4vmnHmW6PXugmqBHumyhqVkyeh6RJ3S2Zo/F+1bXIL/KuGqe2pKv6UiGOc1KeQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "N7Gm9SjugYjmmnhwbBKC9DFqGqjfJvh6YfOJgtwh0AW0Xpok3dIVors1ik050XmUxKAgAc7nNngDIJyFb06K2g==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "9S/DFt4cohlMPpzIxjG6kk0L8MuN2vDm9pbMCulxtJzzk82oJHVLBd8vuQxaPskaYQwKqmFmbannf5eoChgjYg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Configuration": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "bUth5ip7YsZMXWZS42IRTI0zDrPEqdE+xnsmcL0Pk784grWKApDvc5UoMi2tP2qYJ5ylFzeVDuDu08sFATq1bg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Console": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "WyZEG/O8jKqBOBF6/M6IJqiEyWFBUv6PDyzNoXDA0mBZwKtkuf7GiZ/0/8eU8OpLKKQL0O95oPOY1szrWIKofQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Debug": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "r/A0ahpXmZH/8ltPjrFFWp12BIizK9cCVJXPcHyOad8e4eIX7P/geW+uBYdczkeCAaMebT4jEU7snOm4GnmKfA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.EventLog": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "goAl30/WwmdnWDPRwATaDPIK0iuDBnQSMTH2XYGVB1SwReg7hglhvDNjjpNhT25US3GF4I5q6BhTNs6nFYzEfg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "System.Diagnostics.EventLog": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.EventSource": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "tHynPVHbTicuaDpS2JVTxX0qA5VTg15CXgVKTwWvvudb5BvW5aVew8MMyek6LrDGAom7UbON1jf1T5GhpTilFA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "hyNdX4c2UwkRkzb9byw0H2DQkRzwBM3mzY2sCM9egwzTyg8dvQJmp5noQHGEaaCORQrNK3DD2gREBsc2DlXS4A==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Options.ConfigurationExtensions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Y4E24zffF/aPS0igNvY6ZzAQfbxd6AYdC9L4brnH+uK0yYYHIR6FeGVQVVjAOo8wub1EQDl2B90lCcpqoTF7Yw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "fmEbAUFsaIKirgLt/lYhuFRBwhcSJN31jjHgCdbQxJiWOum6EdLjkbgGuukSP9z/a+9LibaxII/kF+GwOXgC4g=="
+ },
+ "Microsoft.OpenApi": {
+ "type": "Transitive",
+ "resolved": "2.7.5",
+ "contentHash": "0FA67RSnRM4tcBKqiqVu/HPdZ9+QOKbmeRjxRUGTCjPU4C0bmUhd97Dso7Yild5P7nOV6GxJ2xrK0Kv/O9xp0w=="
+ },
+ "Npgsql": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "7nb5YzXuvWWJxB0J8DiyL3we+X4FOctZrt0fIBnucOIaIevFEEwGQVZKtiu9olXdlNAK1eNgqSral6r/jlhI4w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.0"
+ }
+ },
+ "Npgsql.DependencyInjection": {
+ "type": "Transitive",
+ "resolved": "10.0.2",
+ "contentHash": "/Efri6iP5Z2kj3amM/WPMoa0pzOBaIM+C+uMXltaBMu2hVZciNluuK51Mn2FmWKhqwTcMZdwHYUfbm8LbKRJMQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
+ "Npgsql": "10.0.2"
+ }
+ },
+ "NStack.Core": {
+ "type": "Transitive",
+ "resolved": "1.1.1",
+ "contentHash": "5LhlYsmAe3A55zl8xCSD7AbuhDqZODpsfdMGgtygeBlHZmlb0tHmK5/PeKODnwYUhC6EbL2qHKGskPNvpY+z3w=="
+ },
+ "OpenTelemetry": {
+ "type": "Transitive",
+ "resolved": "1.15.3",
+ "contentHash": "N0i6WjPoHPbZyms1ugbDIFAJFuGlpeExJMU/+XSL0lQRUkg/D0utFkDoLXf8Z1km5B+xVZ2GyMXXiX8qdeNmPg==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.0",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.0",
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "1.15.3"
+ }
+ },
+ "OpenTelemetry.Api": {
+ "type": "Transitive",
+ "resolved": "1.15.3",
+ "contentHash": "fX+fkCysfPut+qCcT3bKqyX4QN9Saf4CgX8HLOHywEVD+Xr7sULtfuypITpoDysjx8R59dn/3mWhgimMH8cm/g=="
+ },
+ "OpenTelemetry.Api.ProviderBuilderExtensions": {
+ "type": "Transitive",
+ "resolved": "1.15.3",
+ "contentHash": "SYn0lqYDwLMWhv/zlNGsQcl2yX++yTumanX46bmOZE/ZDOd1WjPBO2kZaZgKLEZTZk48pavIFGJ6vOvxXgWVFQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
+ "OpenTelemetry.Api": "1.15.3"
+ }
+ },
+ "ReactiveUI.Disposables": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "+4SXyR40eHcCoAeLZWWMM4SE6uxxJgJSStMrRkbFVIFd3n8Pqzd/wCkVDt2q6Z9VC4TTF2HRDa3M6BY73iyS2g=="
+ },
+ "ReactiveUI.Primitives": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "LHJCaF4dmmLCyl7pyBYTx3BuV17uwQj5oqR3yCIN+M0abd5536eH+KW4Fu9Bc+rFe4x6LD5YioKO27ytPUXy5A==",
+ "dependencies": {
+ "ReactiveUI.Disposables": "6.0.0",
+ "ReactiveUI.Primitives.Core": "6.0.0"
+ }
+ },
+ "ReactiveUI.Primitives.Core": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "Ffky9BPfRbWJYeUWVLjno07/GcvFFnkXZ+NnrXmAkNnmGfKmSDGYvz2xvmaoUECucT7UBSUr7WO2+X/4fRpPDw==",
+ "dependencies": {
+ "ReactiveUI.Disposables": "6.0.0"
+ }
+ },
+ "Refit": {
+ "type": "Transitive",
+ "resolved": "13.1.0",
+ "contentHash": "Hd0zEcLAm/7Hk8xRRaXftxbLzvQ04La6IZBFYG2g/dC9e6jQBYEVBEr8OA/iSbLYQFEhTJ3XyjpFSz1MFHpYEg==",
+ "dependencies": {
+ "ReactiveUI.Primitives": "6.0.0"
+ }
+ },
+ "Swashbuckle.AspNetCore.Swagger": {
+ "type": "Transitive",
+ "resolved": "10.2.3",
+ "contentHash": "1jUUs3WQnrS0FUtaZPLSy1yYMEwS1zlvDmvQ2/eldPHUANX0LJSLVZecCMgSMdeGiRqeaRrIXLtSz++TCiTMww==",
+ "dependencies": {
+ "Microsoft.OpenApi": "2.7.5"
+ }
+ },
+ "Swashbuckle.AspNetCore.SwaggerGen": {
+ "type": "Transitive",
+ "resolved": "10.2.3",
+ "contentHash": "y7t4coDRAeFYChmvlMRiH2OjbiRrm9AVIDgt17fQfs3x9PVAI5PiwWYOhg+4F13R4Q36WDc9lqfoOnNa3tNbGg==",
+ "dependencies": {
+ "Swashbuckle.AspNetCore.Swagger": "10.2.3"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.4",
+ "contentHash": "aJdv7Z87PoPW8ijvGIincocooYRbH3Umtlz7OrJKf6GDInbdu1bvk5X1fFlmbl7WP+9ntoIBd7NjKz+siVFdHA=="
+ },
+ "System.Diagnostics.EventLog": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "s2PcxHK4IYQ6gmD3VSBkym9tWGkFisKjcjWBdl7a+n4Yy66ae4beJ1ZdjDp060SSll4W3Rt4H2LW87dWckv+QQ=="
+ },
+ "System.Management": {
+ "type": "Transitive",
+ "resolved": "9.0.4",
+ "contentHash": "MfY9+SrkSvchAoFiChTkhQYCAjBaQQ9u3LwiKmho7oTbujucnxCzORlPgLhId/ChLSptsQ/1UmtPGLZaKYVdsA==",
+ "dependencies": {
+ "System.CodeDom": "9.0.4"
+ }
+ },
+ "System.Security.Cryptography.Pkcs": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "CoCRHFym33aUSf/NtWSVSZa99dkd0Hm7OCZUxORBjRB16LNhIEOf8THPqzIYlvKM0nNDAPTRBa1FxEECrgaxxA=="
+ },
+ "adminassistant.api.client": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.Api.Contracts": "[1.0.0, )",
+ "Refit.HttpClientFactory": "[13.1.0, )"
+ }
+ },
+ "adminassistant.api.contracts": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.DomainModel": "[1.0.0, )",
+ "Swashbuckle.AspNetCore.Annotations": "[10.2.3, )"
+ }
+ },
+ "adminassistant.domainmodel": {
+ "type": "Project",
+ "dependencies": {
+ "Ardalis.Extensions": "[0.9.4, )",
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "Ardalis.Result": "[10.1.0, )",
+ "FluentValidation": "[12.1.1, )",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )",
+ "SimonGeering.Framework": "[1.0.0, )"
+ }
+ },
+ "adminassistant.infrastructure": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.DomainModel": "[1.0.0, )",
+ "AdminAssistant.Infrastructure.ClientSide": "[1.0.0, )",
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "Ardalis.Result": "[10.1.0, )",
+ "Ardalis.Specification.EntityFrameworkCore": "[9.3.1, )",
+ "Aspire.Npgsql.EntityFrameworkCore.PostgreSQL": "[13.4.6, )",
+ "Mediator.Abstractions": "[3.0.2, )",
+ "Microsoft.EntityFrameworkCore.Relational": "[10.0.9, )",
+ "Microsoft.Extensions.Hosting": "[10.0.9, )",
+ "Npgsql.EntityFrameworkCore.PostgreSQL": "[10.0.2, )",
+ "SimonGeering.Framework": "[1.0.0, )"
+ }
+ },
+ "adminassistant.infrastructure.clientside": {
+ "type": "Project",
+ "dependencies": {
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "PDFsharp": "[6.2.4, )"
+ }
+ },
+ "adminassistant.ui": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.Api.Client": "[1.0.0, )",
+ "AdminAssistant.DomainModel": "[1.0.0, )",
+ "AdminAssistant.Infrastructure.ClientSide": "[1.0.0, )",
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "CommunityToolkit.Mvvm": "[8.4.2, )",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )",
+ "Microsoft.Extensions.Http": "[10.0.9, )"
+ }
+ },
+ "simongeering.framework": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )"
+ }
+ },
+ "Ardalis.Extensions": {
+ "type": "CentralTransitive",
+ "requested": "[0.9.4, )",
+ "resolved": "0.9.4",
+ "contentHash": "5JDKpMiEsxbz9N1yynsMFc2rBXDQ5iHLockW8lxahqlj9B5gxbENTAXBY2Jswp4vcGG+cNQxv81KrUqd4mXQSA==",
+ "dependencies": {
+ "Ardalis.GuardClauses": "3.2.0"
+ }
+ },
+ "Ardalis.GuardClauses": {
+ "type": "CentralTransitive",
+ "requested": "[5.0.0, )",
+ "resolved": "5.0.0",
+ "contentHash": "jVPRvLw0xIUFto2cMrKgRYADWIHbEEfzZHGiU/swwNgl1zo28Q1zfSa3VUC3C0s9DyhFDPSaF4dEDQRyTZUcyQ=="
+ },
+ "Ardalis.Result": {
+ "type": "CentralTransitive",
+ "requested": "[10.1.0, )",
+ "resolved": "10.1.0",
+ "contentHash": "+WgsXh+JRm0d8BZPlBUc5w0+FTda4vbWRa/IF2q4zDoRsU5BXr8w4rTbYEklZIMNgQQZTcNouR/QfBV5I/4XYQ=="
+ },
+ "Ardalis.Specification.EntityFrameworkCore": {
+ "type": "CentralTransitive",
+ "requested": "[9.3.1, )",
+ "resolved": "9.3.1",
+ "contentHash": "QbOo4E6HWdKXZ9QUrqcgiGN4EKtzt0kzGzqr2zc32q5QESzBrceJ3GX1ymWVdCCOzJO1+GPm+/a/5ovSkfrLoQ==",
+ "dependencies": {
+ "Ardalis.Specification": "9.3.1",
+ "Microsoft.EntityFrameworkCore": "9.0.8",
+ "Microsoft.EntityFrameworkCore.Relational": "9.0.8"
+ }
+ },
+ "Aspire.Npgsql.EntityFrameworkCore.PostgreSQL": {
+ "type": "CentralTransitive",
+ "requested": "[13.4.6, )",
+ "resolved": "13.4.6",
+ "contentHash": "Lt92FuyX4JkKwrAgrOsVARpmk3U9vBGBq784ZEO3hR2vC74o8VS/VWBJHYrRBYTXapuj+mwwPzvcUICmbB43Zg==",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Memory": "10.0.8",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8",
+ "Npgsql.DependencyInjection": "10.0.2",
+ "Npgsql.EntityFrameworkCore.PostgreSQL": "10.0.0",
+ "Npgsql.OpenTelemetry": "10.0.2",
+ "OpenTelemetry.Extensions.Hosting": "1.15.3"
+ }
+ },
+ "CommunityToolkit.Mvvm": {
+ "type": "CentralTransitive",
+ "requested": "[8.4.2, )",
+ "resolved": "8.4.2",
+ "contentHash": "WadCzGEc2U+3e20avRLng4qNtt4zoOGWrdUISqJWrHe3/FSnrYjuM5Sb4yQb09LhkBXrrI4Zt3dLKgRMbItsrg=="
+ },
+ "FluentValidation": {
+ "type": "CentralTransitive",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "EPpkIe1yh1a0OXyC100oOA8WMbZvqUu5plwhvYcb7oSELfyUZzfxV48BLhvs3kKo4NwG7MGLNgy1RJiYtT8Dpw=="
+ },
+ "Mediator.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[3.0.2, )",
+ "resolved": "3.0.2",
+ "contentHash": "TytjnyN8gLObZBxkM7HHPFJF3LHtk6Y8mHW56ONuXRuVEK6Fmed3f0z79H9TpmoZQP2zQAIS4/0O9R2w0v02qw==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
+ }
+ },
+ "Microsoft.EntityFrameworkCore": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "tu85SRzOT021V7EQlViCiAE7TqldVn469Y6lt5TEn/+XC4/MeNCHgMRSxqYuWqvF4zAQZUhCmtNEZuM3ss4LeA==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Abstractions": "10.0.9",
+ "Microsoft.EntityFrameworkCore.Analyzers": "10.0.9",
+ "Microsoft.Extensions.Caching.Memory": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9"
+ }
+ },
+ "Microsoft.EntityFrameworkCore.Relational": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "dEoyYKgiaZHHgOFm1WMWm1sFEsEuhPWufX4L9PekKtqd/RaIcPjkCjvbrVvJtApErb5wPSJhYvnTlxhH+p9h2g==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore": "10.0.9",
+ "Microsoft.Extensions.Caching.Memory": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "NijozhERJDIaJ4k5TSMy1jOi0cSC2HfkvRD/Sl+kGSSKgVbFnF4GxgtMN/MrzHB8D1JxIrD4xSer9Blh9v3axQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "g41l/30G3K4B/d/L8kjux0+30e27c8D0FVQ/PFCpbekgfDpj9mnDhieP67EqXWvl1EWNeZh2rpR4F5B/jcDOHA=="
+ },
+ "Npgsql.EntityFrameworkCore.PostgreSQL": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.2, )",
+ "resolved": "10.0.2",
+ "contentHash": "PsNYgPOSW41Xx19gin7y4EdZAPteWr9Cb01XkdObxOsPzi+mgBupBEN7J7+erXFsROPOILM7MlIoO9QzL8+LGQ==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore": "[10.0.4, 11.0.0)",
+ "Microsoft.EntityFrameworkCore.Relational": "[10.0.4, 11.0.0)",
+ "Npgsql": "10.0.3"
+ }
+ },
+ "Npgsql.OpenTelemetry": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.2",
+ "contentHash": "kjc+3DzqjaFk0L3cmR92emyJd7GAgwSiiyuzvumHFEp0EVp6GbrtdIe0jD8NANdPVqYM8prH9ND8GQsQAFXCKA==",
+ "dependencies": {
+ "Npgsql": "10.0.2",
+ "OpenTelemetry.API": "1.14.0"
+ }
+ },
+ "OpenTelemetry.Extensions.Hosting": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.15.3",
+ "contentHash": "u8n/W8yIlqv0BXZmvId1iVaeWXG42tGKdTkuLYg5g57Y/r9CeUNzqtrSHNdG5IoO8iPX79w3v+WsbAHgUQbfeg==",
+ "dependencies": {
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.0",
+ "OpenTelemetry": "1.15.3"
+ }
+ },
+ "PDFsharp": {
+ "type": "CentralTransitive",
+ "requested": "[6.2.4, )",
+ "resolved": "6.2.4",
+ "contentHash": "GhTr9F1uOYXHCIEOB5PXIgqn5a8WLsJL2m0eewTA0IvY1j6N4HGXHKKmEyB90/N6vrjmYamf41V9zbmdW2HY3g==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.3",
+ "System.Security.Cryptography.Pkcs": "8.0.1"
+ }
+ },
+ "Refit.HttpClientFactory": {
+ "type": "CentralTransitive",
+ "requested": "[13.1.0, )",
+ "resolved": "13.1.0",
+ "contentHash": "hlAGIM0fXyZ2Vcv/WkkL2j24vi3JI3HAXyxjx0FrLzCbJIAps2RQvfOtE9NwtYGEf5/fa6qQld6k4e0YAHhQTg==",
+ "dependencies": {
+ "Microsoft.Extensions.Http": "10.0.9",
+ "ReactiveUI.Primitives": "6.0.0",
+ "Refit": "13.1.0"
+ }
+ },
+ "Swashbuckle.AspNetCore.Annotations": {
+ "type": "CentralTransitive",
+ "requested": "[10.2.3, )",
+ "resolved": "10.2.3",
+ "contentHash": "plbv/9BrcOQfCop5avxdMzp9Qw3jRPdCDaCkwIAYmEcjPUhNwUKqIYBPcXfAU4Jw5gVGj1bKTUuwYx9M43hPPg==",
+ "dependencies": {
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.2.3"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AdminAssistant.Test/packages.lock.json b/src/AdminAssistant.Test/packages.lock.json
new file mode 100644
index 00000000..f28a9ddf
--- /dev/null
+++ b/src/AdminAssistant.Test/packages.lock.json
@@ -0,0 +1,1265 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Ardalis.GuardClauses": {
+ "type": "Direct",
+ "requested": "[5.0.0, )",
+ "resolved": "5.0.0",
+ "contentHash": "jVPRvLw0xIUFto2cMrKgRYADWIHbEEfzZHGiU/swwNgl1zo28Q1zfSa3VUC3C0s9DyhFDPSaF4dEDQRyTZUcyQ=="
+ },
+ "coverlet.collector": {
+ "type": "Direct",
+ "requested": "[10.0.1, )",
+ "resolved": "10.0.1",
+ "contentHash": "27jXSV/0DbVqF5jDrAxuQFZ9oaz6gmG03p8ttxAFk+X0M4woFYj7MoWDLCna5EGLb0CE6OE7X6ZH3Wt5smTtaA=="
+ },
+ "FluentValidation": {
+ "type": "Direct",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "EPpkIe1yh1a0OXyC100oOA8WMbZvqUu5plwhvYcb7oSELfyUZzfxV48BLhvs3kKo4NwG7MGLNgy1RJiYtT8Dpw=="
+ },
+ "Microsoft.AspNetCore.TestHost": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "mR4y30XFsVbn7EwV3Ic5/KMBO5QGwukTJE2ztGmpAST5ACX+Z+9r+Y6D1eibJojsOIW5KHpM4myo9/aRALJOyg=="
+ },
+ "Microsoft.EntityFrameworkCore.InMemory": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "lvlLJ7kgGivXApixK4FN7pB/aZZJ+bqdNRv2jLR0K0t2ZFIUwNylF1Mo6tMQAN8/2FsNKbv7U4S4FgSdfFtPIQ==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore": "10.0.9",
+ "Microsoft.Extensions.Caching.Memory": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9"
+ }
+ },
+ "Microsoft.EntityFrameworkCore.Relational": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "dEoyYKgiaZHHgOFm1WMWm1sFEsEuhPWufX4L9PekKtqd/RaIcPjkCjvbrVvJtApErb5wPSJhYvnTlxhH+p9h2g==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore": "10.0.9",
+ "Microsoft.Extensions.Caching.Memory": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.UserSecrets": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "ockJRreRW/HbGwoyHzYOxMucFBimvAZ8lKNwQLMHrS6mwkDUaCJMWzzeE+Rm9vgFlv2o/xqk8fm+FpqrDCnkTA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Json": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "NijozhERJDIaJ4k5TSMy1jOi0cSC2HfkvRD/Sl+kGSSKgVbFnF4GxgtMN/MrzHB8D1JxIrD4xSer9Blh9v3axQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Hosting": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "HTgnvmK0ubesUFO16pLC+i9+RS8lEGd6TmDouuy75FsAgIFrSwUVhYCqG2IENzBJwgxGc/6Rsulfsvd9ZG/XkA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.Configuration.CommandLine": "10.0.9",
+ "Microsoft.Extensions.Configuration.EnvironmentVariables": "10.0.9",
+ "Microsoft.Extensions.Configuration.FileExtensions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Json": "10.0.9",
+ "Microsoft.Extensions.Configuration.UserSecrets": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Diagnostics": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.9",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.9",
+ "Microsoft.Extensions.Logging.Console": "10.0.9",
+ "Microsoft.Extensions.Logging.Debug": "10.0.9",
+ "Microsoft.Extensions.Logging.EventLog": "10.0.9",
+ "Microsoft.Extensions.Logging.EventSource": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[18.7.0, )",
+ "resolved": "18.7.0",
+ "contentHash": "49xH9j4UzCh2hMohJp53g3wUTvyycECw7CtVht4gfCz5ykudB1uBcF6D0TtgJPjCtP76UPW53bQElKdCeX+dUg==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "18.7.0",
+ "Microsoft.TestPlatform.TestHost": "18.7.0"
+ }
+ },
+ "MockQueryable.Moq": {
+ "type": "Direct",
+ "requested": "[10.0.8, )",
+ "resolved": "10.0.8",
+ "contentHash": "gkLu+M7E20PuNTnyxU3zxBD+OfA/e5Q9dacshSjA7+nO4ls6JQeDw2SLFYv6G/RQib6uWgVrYzPa5bQfyEvdWg==",
+ "dependencies": {
+ "MockQueryable.EntityFrameworkCore": "10.0.8",
+ "Moq": "4.20.72"
+ }
+ },
+ "Moq": {
+ "type": "Direct",
+ "requested": "[4.20.72, )",
+ "resolved": "4.20.72",
+ "contentHash": "EA55cjyNn8eTNWrgrdZJH5QLFp2L43oxl1tlkoYUKIE9pRwL784OWiTXeCV5ApS+AMYEAlt7Fo03A2XfouvHmQ==",
+ "dependencies": {
+ "Castle.Core": "5.1.1"
+ }
+ },
+ "NetArchTest.Rules": {
+ "type": "Direct",
+ "requested": "[1.3.2, )",
+ "resolved": "1.3.2",
+ "contentHash": "puPyNXkwJq8/UwXhHV8NrzNzkQl4IxEbcP+3PU0xLRiOedsVpaSdpwHhvOZfI0VwTcRvawCNxYQcSRbD4RUg4w==",
+ "dependencies": {
+ "Mono.Cecil": "0.11.3"
+ }
+ },
+ "ObjectCloner.Extensions": {
+ "type": "Direct",
+ "requested": "[2.0.1, )",
+ "resolved": "2.0.1",
+ "contentHash": "RU14X6KTtHKvwAlZEl3DDOA9lXeAaeM5BeRbwq51iLko6Gsng6tcZYuvXRPN6yGIDLlmm3+pzOx5bR87b9N7Zg==",
+ "dependencies": {
+ "ObjectCloner": "2.1.6"
+ }
+ },
+ "Respawn": {
+ "type": "Direct",
+ "requested": "[7.0.0, )",
+ "resolved": "7.0.0",
+ "contentHash": "AyWlducZGOnmlEVz4PaL3Qv8wcY3ClPZS9CrlDnSVahGd/E9tTEgSFiC8yoV/F6o6P6IYm8xnHFa/vmWT8tfcw=="
+ },
+ "Shouldly": {
+ "type": "Direct",
+ "requested": "[4.3.0, )",
+ "resolved": "4.3.0",
+ "contentHash": "sDetrWXrl6YXZ4HeLsdBoNk3uIa7K+V4uvIJ+cqdRa5DrFxeTED7VkjoxCuU1kJWpUuBDZz2QXFzSxBtVXLwRQ==",
+ "dependencies": {
+ "DiffEngine": "11.3.0",
+ "EmptyFiles": "4.4.0"
+ }
+ },
+ "SonarAnalyzer.CSharp": {
+ "type": "Direct",
+ "requested": "[10.28.0.143324, )",
+ "resolved": "10.28.0.143324",
+ "contentHash": "ZnmYHFiQw2Aph2ft9c7UqVrqe79aZR5l7oeG59+sgrSAO9J159meglP1Zo34+Mcw4etIUTC9btYnP0Ar/rQIyg=="
+ },
+ "xunit": {
+ "type": "Direct",
+ "requested": "[2.9.3, )",
+ "resolved": "2.9.3",
+ "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==",
+ "dependencies": {
+ "xunit.analyzers": "1.18.0",
+ "xunit.assert": "2.9.3",
+ "xunit.core": "[2.9.3]"
+ }
+ },
+ "xunit.runner.visualstudio": {
+ "type": "Direct",
+ "requested": "[3.1.5, )",
+ "resolved": "3.1.5",
+ "contentHash": "tKi7dSTwP4m5m9eXPM2Ime4Kn7xNf4x4zT9sdLO/G4hZVnQCRiMTWoSZqI/pYTVeI27oPPqHBKYI/DjJ9GsYgA=="
+ },
+ "Xunit.SkippableFact": {
+ "type": "Direct",
+ "requested": "[1.5.61, )",
+ "resolved": "1.5.61",
+ "contentHash": "ZoahExHGire3U1b9RLUQJuoofMKwJKd6U60cqaomh0llL8ns1evvl8ivXLP1Bw3nPUR0ELfSVZ0giKnMoqPCfQ==",
+ "dependencies": {
+ "Validation": "2.6.68",
+ "xunit.extensibility.execution": "2.4.0"
+ }
+ },
+ "Ardalis.Specification": {
+ "type": "Transitive",
+ "resolved": "9.3.1",
+ "contentHash": "GWrE6BA0smWFLbN+XPU2l5rDF9Uzelfbb3w35jJ0CGIat+p1ChbtLcbkvYRMEculBHOAo12omwAAOm3VFWkoJQ=="
+ },
+ "Castle.Core": {
+ "type": "Transitive",
+ "resolved": "5.1.1",
+ "contentHash": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==",
+ "dependencies": {
+ "System.Diagnostics.EventLog": "6.0.0"
+ }
+ },
+ "DiffEngine": {
+ "type": "Transitive",
+ "resolved": "11.3.0",
+ "contentHash": "k0ZgZqd09jLZQjR8FyQbSQE86Q7QZnjEzq1LPHtj1R2AoWO8sjV5x+jlSisL7NZAbUOI4y+7Bog8gkr9WIRBGw==",
+ "dependencies": {
+ "EmptyFiles": "4.4.0",
+ "System.Management": "6.0.1"
+ }
+ },
+ "EmptyFiles": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "gwJEfIGS7FhykvtZoscwXj/XwW+mJY6UbAZk+qtLKFUGWC95kfKXnj8VkxsZQnWBxJemM/q664rGLN5nf+OHZw=="
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "18.7.0",
+ "contentHash": "+wFfx9s7D9wegM0RziXMj2kvYDT4qcqXXtyjiQwSZOGQ2wwcOAJQcD6eQXk02jt0MvRNawtp8TJxTrV+wD8X1g=="
+ },
+ "Microsoft.EntityFrameworkCore.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "GRMaiPkqYna/gCsyDffYDWmefGPC3hDrdMw+2rrGcQwhs6uZOsaMQXMJnoXQ35tx9SkBV2ieRRU9N/jLOO6BZw=="
+ },
+ "Microsoft.Extensions.AmbientMetadata.Application": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "yZ0818pVYQvUFW/1m+f8A1+lIAeSeQxEOdUCMIC+tqcRRKlqNjKPRKvGHPp8xLRbZBLaHfBtDslJa/sofn7J/Q==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.ApiDescription.Server": {
+ "type": "Transitive",
+ "resolved": "10.0.0",
+ "contentHash": "NCWCGiwRwje8773yzPQhvucYnnfeR+ZoB1VRIrIMp4uaeUNw7jvEPHij3HIbwCDuNCrNcphA00KSAR9yD9qmbg=="
+ },
+ "Microsoft.Extensions.Caching.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "5fGxcw2vuYp8s0wio9H1ECiuk4iKSdTIlNuigdLIrkhg+5XAwgFVDB/5Ots3pfN/QhABLYXutA79JFtnUKDSHA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Caching.Memory": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "G9mregdatGWMCQWeCw012LDeJVP7G/XIxH8Ddbjc8bD1//dA+8VVQdcRE9jI1moyoJxSSZhHITUnNQ8FUDl5+Q==",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Abstractions": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Compliance.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "qbi6lg6dyvydBvpjXeBx3wLPvmgXWn3nwkKBOsgEck6w++BEsBcv8YhdcczME16Oq+a6wkdtna9/qCEkxsNw5A==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.ObjectPool": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "woZsWLhOQsASuxbmgiZJqiGUBNo3IjRdXC92xt8rRokza+P6/nIsnzq7sm9Or6ZYcRl2kL1ufj8HVzp1QlPTXw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "qGhRPd3VxfLV9UqatVOiD9mAeUbj2KiMwGFYC5uXlzExiZQoe4X/hdmzGIU7BQjNLTqCnnbTHVyBglG3668/HA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Tp/+LPb70RyjjtLg9m5C959eP4KrUpJHThZfAegZVpsfmGvzfuNkuYbI/ft+LvXhMSyUcAeOPaN6rzTccwnZAg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.CommandLine": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "8D4HaqxWdm5M/nuhQffjPoR1ekhlpyKTXjFMAT5KlP0dvxkJe5JLAP6MAsuUEUxKWG09Bi5aAUaYMFKrMqWHqA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.EnvironmentVariables": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "JhKySWIL8+N4yFt4HPm1rGKCHooze+MBdTdpXc0bd/PGm31TrSUi2m0Nek1y441Wlv/RE6VH0W/DCv2xnmy8FA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.FileExtensions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "NgLB9cYnIb0/djSDcnqo4GIGGWooxGmr/gCUe3/CRXcKqLizOFui8MyW4EVkTB/KNJL+oXdMXnD6ZRm3Y+qkrQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Physical": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Json": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "LiFKJgc9jZEW+7RhcSfsvCwoikt1lDdOqOn+whZC5zVHyg/gExftHl2QPtmfiHsEdDNg+Y+BDr6835tOfj8Y7A==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.FileExtensions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.AutoActivation": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "WrSK0FGHSjSY4Pg4kd9Du8CUDwrgFTwHH1Y+N7sjyT6RFMU+G3coQ/Uq9PMGdQcy+DVKSMGHjfmWY47ZoYvhNA==",
+ "dependencies": {
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "NLXI3PbTe39q6/sgs7JYhmfPf7bMzReUoAJ0q9Po6yhfM+0anZa7PrEva4W2SdiLWGyB9eKZS9THGt2BP40xJg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "86RgyFsmVslW4Nu28IXgt8tLglynGQrwjk/xhGZaTe8j6YIeR1Ywoc42hSHsBSl920CQdfqq2dBohZiGm3AkUA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.ExceptionSummarization": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "Kc4XbbxtCzvn2P/fKF48xLWPbp3N5DV0MkJlgPJHEb47PUqCJ6kEl/JTKfpmP7QLuwYjx2QxKTdtwXfpjgA6KQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "IlXZUZIA9b99yQURc8jOLmmS6GD42vj6t+LqWs6Dd+naggObSbEXDw8DU8DUu2tL8CnyG96F4pDLhjd7BmZPAQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "0j06qq5I1YGSIi4M86UaVITBprvn3bTWKmQiLDNEqnZ2d+UxaFb+tVqemxVzr5lkr6GTR83ExUfSIpCnBaTZFA=="
+ },
+ "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "VyjlpOHGpT9xoNFKNd/27FBF4eBimMcCCIfMxkeju/8uUnugwsxHfzZX2iP+ilYeoYB4HeT5gAoswTIKD6SYJw==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Relational": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "10.0.8"
+ }
+ },
+ "Microsoft.Extensions.Features": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "ohU5761fyZq7eSg0nLQMzHvCrGGGmyzgRzAGebHZlQ4D7/9v9uzPYJ/AUYcD5kNSiOWR34Ma4qGgKs0PUPrYZw=="
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Oxn4vqDk+EwceTMpZxVm7L/UZEAM1qIQlNP1+7tBZckD+P4SKrm/5X4gMTPCTdpnau/xY8Sb4/0d6onomSg4ZA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.FileProviders.Physical": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "zm8WVod4swgprGrkxkuSILlbXqdDRqF+3y6U0I7jlmj4PMyKN6d8pzXZHUn5lr/gZVULzk/+FeTYlTupt6akpg==",
+ "dependencies": {
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileSystemGlobbing": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.FileSystemGlobbing": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "mvRf9qOH/LslWIee/h+lsElnoUyKotEwoPL31soqScmO/eoxObaTCLCdx2DdqPdRi9LnB+7qKZ49jfyrLZuc+w=="
+ },
+ "Microsoft.Extensions.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Xd/2F+uWblTiUp+ssaDZN2ea4vmnHmW6PXugmqBHumyhqVkyeh6RJ3S2Zo/F+1bXIL/KuGqe2pKv6UiGOc1KeQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.9",
+ "Microsoft.Extensions.FileProviders.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Http.Diagnostics": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "1m1zdBGW5J8MOxdZpJ5mUqdSaamRrYkpmfnEfeDmlZnglpfgDztcKOBU6cVsmn90AB7Ji2w8USvEsJ8PahbBWQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Http": "10.0.9",
+ "Microsoft.Extensions.Telemetry": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "N7Gm9SjugYjmmnhwbBKC9DFqGqjfJvh6YfOJgtwh0AW0Xpok3dIVors1ik050XmUxKAgAc7nNngDIJyFb06K2g==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "9S/DFt4cohlMPpzIxjG6kk0L8MuN2vDm9pbMCulxtJzzk82oJHVLBd8vuQxaPskaYQwKqmFmbannf5eoChgjYg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Configuration": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "bUth5ip7YsZMXWZS42IRTI0zDrPEqdE+xnsmcL0Pk784grWKApDvc5UoMi2tP2qYJ5ylFzeVDuDu08sFATq1bg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Console": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "WyZEG/O8jKqBOBF6/M6IJqiEyWFBUv6PDyzNoXDA0mBZwKtkuf7GiZ/0/8eU8OpLKKQL0O95oPOY1szrWIKofQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Debug": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "r/A0ahpXmZH/8ltPjrFFWp12BIizK9cCVJXPcHyOad8e4eIX7P/geW+uBYdczkeCAaMebT4jEU7snOm4GnmKfA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.EventLog": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "goAl30/WwmdnWDPRwATaDPIK0iuDBnQSMTH2XYGVB1SwReg7hglhvDNjjpNhT25US3GF4I5q6BhTNs6nFYzEfg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "System.Diagnostics.EventLog": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.EventSource": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "tHynPVHbTicuaDpS2JVTxX0qA5VTg15CXgVKTwWvvudb5BvW5aVew8MMyek6LrDGAom7UbON1jf1T5GhpTilFA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.ObjectPool": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "KZENCkfqO7Ciax6goUWQHDSxKH+x763hkBWMz9KpE87EyKW+EKEas9EFe9i1KgtQShG8KwKxaeJ5gd9sj6TuTQ=="
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "hyNdX4c2UwkRkzb9byw0H2DQkRzwBM3mzY2sCM9egwzTyg8dvQJmp5noQHGEaaCORQrNK3DD2gREBsc2DlXS4A==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Options.ConfigurationExtensions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Y4E24zffF/aPS0igNvY6ZzAQfbxd6AYdC9L4brnH+uK0yYYHIR6FeGVQVVjAOo8wub1EQDl2B90lCcpqoTF7Yw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "fmEbAUFsaIKirgLt/lYhuFRBwhcSJN31jjHgCdbQxJiWOum6EdLjkbgGuukSP9z/a+9LibaxII/kF+GwOXgC4g=="
+ },
+ "Microsoft.Extensions.Resilience": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "ldUrtRzWSnfe5945xoSxDXxoWXnIKn19E74Huieyp76XW/BjRk3bhkILSSib1NKdZ2lpi/ReTvOpNGcJ8hkOxw==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics": "10.0.9",
+ "Microsoft.Extensions.Diagnostics.ExceptionSummarization": "10.7.0",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9",
+ "Microsoft.Extensions.Telemetry.Abstractions": "10.7.0",
+ "Polly.Extensions": "8.4.2",
+ "Polly.RateLimiting": "8.4.2"
+ }
+ },
+ "Microsoft.Extensions.ServiceDiscovery.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "1a/tCYg7+5HdJRQ0BQDDGzANBaw/1fony7eNsMwQ5n9FZmO3K5JCls02o8fwQc296l0szNBwroLRtXf94OZw9A==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Features": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Telemetry": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "vZFNVvkz+7IABEv4klzPX/ZdmZQ6TrcReKUfeYIrQ2bbnvEcgZtG1RmOGeWkc1hFg8cq9sAgUc2lHCqlXSqf5A==",
+ "dependencies": {
+ "Microsoft.Extensions.AmbientMetadata.Application": "10.7.0",
+ "Microsoft.Extensions.DependencyInjection.AutoActivation": "10.7.0",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.9",
+ "Microsoft.Extensions.ObjectPool": "10.0.9",
+ "Microsoft.Extensions.Telemetry.Abstractions": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.Telemetry.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "ir1QKShZzfEmqO9LUWESVMUDZdnxYBSKQyulYPMeaye531lAuT8YTotthx+htrrS8hZY52HANeqowLQyCYBCZg==",
+ "dependencies": {
+ "Microsoft.Extensions.Compliance.Abstractions": "10.7.0",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.ObjectPool": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.OpenApi": {
+ "type": "Transitive",
+ "resolved": "2.7.5",
+ "contentHash": "0FA67RSnRM4tcBKqiqVu/HPdZ9+QOKbmeRjxRUGTCjPU4C0bmUhd97Dso7Yild5P7nOV6GxJ2xrK0Kv/O9xp0w=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "18.7.0",
+ "contentHash": "6rmgU4q3/WOpOPcncI0YW0Q/QpcQtwR2TTEXDR5+4TfSimPBAk6Z/BgKLeGgp1SOun0ROVUCCafXhRLwsHaPpA=="
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "18.7.0",
+ "contentHash": "kYwfmebCs8992zaxEDkvG7S+YEouTeKfYVKUFEkwh1W2dIoOaevBt80XSKVXCUFEhusjOIm1sFfHBnoJgygrRA==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "18.7.0",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "MockQueryable.Core": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "PozXIrpclppq3Ye5PcFHQLee8G26szMzd40FCcK+OoTSObHUieDCHdGqQwhE8YzWhXp7GPl7vv9DKkIPJuqWLg=="
+ },
+ "MockQueryable.EntityFrameworkCore": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "9F7GPrrZAOR7XeNq7RnbDXk2kLk4uL/auD7z8SS58pI5iobgUh43zhn9QQ1AX0+bc3zWQawxNylN/Xt2jkET3Q==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore": "10.0.8",
+ "Microsoft.EntityFrameworkCore.Relational": "10.0.8",
+ "MockQueryable.Core": "10.0.8"
+ }
+ },
+ "Mono.Cecil": {
+ "type": "Transitive",
+ "resolved": "0.11.3",
+ "contentHash": "DNYE+io5XfEE8+E+5padThTPHJARJHbz1mhbhMPNrrWGKVKKqj/KEeLvbawAmbIcT73NuxLV7itHZaYCZcVWGg=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "Npgsql": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "7nb5YzXuvWWJxB0J8DiyL3we+X4FOctZrt0fIBnucOIaIevFEEwGQVZKtiu9olXdlNAK1eNgqSral6r/jlhI4w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.0"
+ }
+ },
+ "Npgsql.DependencyInjection": {
+ "type": "Transitive",
+ "resolved": "10.0.2",
+ "contentHash": "/Efri6iP5Z2kj3amM/WPMoa0pzOBaIM+C+uMXltaBMu2hVZciNluuK51Mn2FmWKhqwTcMZdwHYUfbm8LbKRJMQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
+ "Npgsql": "10.0.2"
+ }
+ },
+ "ObjectCloner": {
+ "type": "Transitive",
+ "resolved": "2.1.6",
+ "contentHash": "1eO6sZp3QA0/Bi8YElEgxG1rXUQtgnb2FkJ3TDZMA356H0rWHEX6lYjYI1XXhqDryLd6+bAFBKcqZYIK44TZFQ=="
+ },
+ "OpenTelemetry": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "nE/Px3MUvQC8c0UG0DOP5OJE7vMtiMaPYi/6TkSS/o/O0s/oPq+8WaPYTVEPzb7lwu/QyLgknc+sFm2FjPXe2A==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.0",
+ "Microsoft.Extensions.Logging.Configuration": "10.0.0",
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Api": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "WZP8Eb6vZTeNqeV+fjBitc7iefBoTHIhaWorqg/h/YiQBlcQJu0bICuTqKV0XRyjiE0eWs80yLlnUtHAFSkFWA=="
+ },
+ "OpenTelemetry.Api.ProviderBuilderExtensions": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "hZwaHAkXvUNn9+cS+vEvYBgIrIQOQRz2cIRUODZ5gxHsDsLeNCueLgZFkybopjE0jUhLut6lm5eL3LTqbW0hMg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
+ "OpenTelemetry.Api": "1.16.0"
+ }
+ },
+ "Polly.Core": {
+ "type": "Transitive",
+ "resolved": "8.4.2",
+ "contentHash": "BpE2I6HBYYA5tF0Vn4eoQOGYTYIK1BlF5EXVgkWGn3mqUUjbXAr13J6fZVbp7Q3epRR8yshacBMlsHMhpOiV3g=="
+ },
+ "Polly.Extensions": {
+ "type": "Transitive",
+ "resolved": "8.4.2",
+ "contentHash": "GZ9vRVmR0jV2JtZavt+pGUsQ1O1cuRKG7R7VOZI6ZDy9y6RNPvRvXK1tuS4ffUrv8L0FTea59oEuQzgS0R7zSA==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Options": "8.0.0",
+ "Polly.Core": "8.4.2"
+ }
+ },
+ "Polly.RateLimiting": {
+ "type": "Transitive",
+ "resolved": "8.4.2",
+ "contentHash": "ehTImQ/eUyO07VYW2WvwSmU9rRH200SKJ/3jku9rOkyWE0A2JxNFmAVms8dSn49QLSjmjFRRSgfNyOgr/2PSmA==",
+ "dependencies": {
+ "Polly.Core": "8.4.2",
+ "System.Threading.RateLimiting": "8.0.0"
+ }
+ },
+ "ReactiveUI.Disposables": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "+4SXyR40eHcCoAeLZWWMM4SE6uxxJgJSStMrRkbFVIFd3n8Pqzd/wCkVDt2q6Z9VC4TTF2HRDa3M6BY73iyS2g=="
+ },
+ "ReactiveUI.Primitives": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "LHJCaF4dmmLCyl7pyBYTx3BuV17uwQj5oqR3yCIN+M0abd5536eH+KW4Fu9Bc+rFe4x6LD5YioKO27ytPUXy5A==",
+ "dependencies": {
+ "ReactiveUI.Disposables": "6.0.0",
+ "ReactiveUI.Primitives.Core": "6.0.0"
+ }
+ },
+ "ReactiveUI.Primitives.Core": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "Ffky9BPfRbWJYeUWVLjno07/GcvFFnkXZ+NnrXmAkNnmGfKmSDGYvz2xvmaoUECucT7UBSUr7WO2+X/4fRpPDw==",
+ "dependencies": {
+ "ReactiveUI.Disposables": "6.0.0"
+ }
+ },
+ "Refit": {
+ "type": "Transitive",
+ "resolved": "13.1.0",
+ "contentHash": "Hd0zEcLAm/7Hk8xRRaXftxbLzvQ04La6IZBFYG2g/dC9e6jQBYEVBEr8OA/iSbLYQFEhTJ3XyjpFSz1MFHpYEg==",
+ "dependencies": {
+ "ReactiveUI.Primitives": "6.0.0"
+ }
+ },
+ "Swashbuckle.AspNetCore.Swagger": {
+ "type": "Transitive",
+ "resolved": "10.2.3",
+ "contentHash": "1jUUs3WQnrS0FUtaZPLSy1yYMEwS1zlvDmvQ2/eldPHUANX0LJSLVZecCMgSMdeGiRqeaRrIXLtSz++TCiTMww==",
+ "dependencies": {
+ "Microsoft.OpenApi": "2.7.5"
+ }
+ },
+ "Swashbuckle.AspNetCore.SwaggerGen": {
+ "type": "Transitive",
+ "resolved": "10.2.3",
+ "contentHash": "y7t4coDRAeFYChmvlMRiH2OjbiRrm9AVIDgt17fQfs3x9PVAI5PiwWYOhg+4F13R4Q36WDc9lqfoOnNa3tNbGg==",
+ "dependencies": {
+ "Swashbuckle.AspNetCore.Swagger": "10.2.3"
+ }
+ },
+ "Swashbuckle.AspNetCore.SwaggerUI": {
+ "type": "Transitive",
+ "resolved": "10.2.3",
+ "contentHash": "nthWONRs/FJ4yyG206g1cC52WEG8EqrjuMWjGdR+5XG7lbjFto6NqcI9EMICgVFom/UivIjUVwI76ZHbHwTPfQ=="
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "CPc6tWO1LAer3IzfZufDBRL+UZQcj5uS207NHALQzP84Vp/z6wF0Aa0YZImOQY8iStY0A2zI/e3ihKNPfUm8XA=="
+ },
+ "System.Diagnostics.EventLog": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "s2PcxHK4IYQ6gmD3VSBkym9tWGkFisKjcjWBdl7a+n4Yy66ae4beJ1ZdjDp060SSll4W3Rt4H2LW87dWckv+QQ=="
+ },
+ "System.Management": {
+ "type": "Transitive",
+ "resolved": "6.0.1",
+ "contentHash": "10J1D0h/lioojphfJ4Fuh5ZUThT/xOVHdV9roGBittKKNP2PMjrvibEdbVTGZcPra1399Ja3tqIJLyQrc5Wmhg==",
+ "dependencies": {
+ "System.CodeDom": "6.0.0"
+ }
+ },
+ "System.Security.Cryptography.Pkcs": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "CoCRHFym33aUSf/NtWSVSZa99dkd0Hm7OCZUxORBjRB16LNhIEOf8THPqzIYlvKM0nNDAPTRBa1FxEECrgaxxA=="
+ },
+ "System.Threading.RateLimiting": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "7mu9v0QDv66ar3DpGSZHg9NuNcxDaaAcnMULuZlaTpP9+hwXhrxNGsF5GmLkSHxFdb5bBc1TzeujsRgTrPWi+Q=="
+ },
+ "Validation": {
+ "type": "Transitive",
+ "resolved": "2.6.68",
+ "contentHash": "5mZ+aXsYQnr3Wxz5O2tmbgPaa5kn9R+ZlfnPyGBogXI2sh4uTiHtvU++N4bURtn9vmDYIu2Zu323K9hFz9poXQ=="
+ },
+ "xunit.abstractions": {
+ "type": "Transitive",
+ "resolved": "2.0.3",
+ "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
+ },
+ "xunit.analyzers": {
+ "type": "Transitive",
+ "resolved": "1.18.0",
+ "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ=="
+ },
+ "xunit.assert": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA=="
+ },
+ "xunit.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]",
+ "xunit.extensibility.execution": "[2.9.3]"
+ }
+ },
+ "xunit.extensibility.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==",
+ "dependencies": {
+ "xunit.abstractions": "2.0.3"
+ }
+ },
+ "xunit.extensibility.execution": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]"
+ }
+ },
+ "adminassistant.api": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.Api.Contracts": "[1.0.0, )",
+ "AdminAssistant.Application": "[1.0.0, )",
+ "AdminAssistant.Aspire.ServiceDefaults": "[1.0.0, )",
+ "AdminAssistant.DomainModel": "[1.0.0, )",
+ "AdminAssistant.Infrastructure": "[1.0.0, )",
+ "FluentValidation.DependencyInjectionExtensions": "[12.1.1, )",
+ "Microsoft.AspNetCore.OpenApi": "[10.0.9, )",
+ "Swashbuckle.AspNetCore": "[10.2.3, )",
+ "Swashbuckle.AspNetCore.Annotations": "[10.2.3, )"
+ }
+ },
+ "adminassistant.api.client": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.Api.Contracts": "[1.0.0, )",
+ "Refit.HttpClientFactory": "[13.1.0, )"
+ }
+ },
+ "adminassistant.api.contracts": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.DomainModel": "[1.0.0, )",
+ "Swashbuckle.AspNetCore.Annotations": "[10.2.3, )"
+ }
+ },
+ "adminassistant.application": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.Infrastructure": "[1.0.0, )",
+ "Ardalis.Result": "[10.1.0, )",
+ "Ardalis.Result.FluentValidation": "[10.1.0, )",
+ "Mediator.Abstractions": "[3.0.2, )"
+ }
+ },
+ "adminassistant.aspire.servicedefaults": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Extensions.Http.Resilience": "[10.7.0, )",
+ "Microsoft.Extensions.ServiceDiscovery": "[10.7.0, )",
+ "Npgsql.OpenTelemetry": "[10.0.3, )",
+ "OpenTelemetry.Exporter.Console": "[1.16.0, )",
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": "[1.16.0, )",
+ "OpenTelemetry.Extensions.Hosting": "[1.16.0, )",
+ "OpenTelemetry.Instrumentation.AspNetCore": "[1.16.0, )",
+ "OpenTelemetry.Instrumentation.EntityFrameworkCore": "[1.0.0-beta.8, )",
+ "OpenTelemetry.Instrumentation.GrpcNetClient": "[1.6.0-beta.3, )",
+ "OpenTelemetry.Instrumentation.Http": "[1.16.0, )",
+ "OpenTelemetry.Instrumentation.Runtime": "[1.15.1, )",
+ "OpenTelemetry.Instrumentation.SqlClient": "[1.16.0, )"
+ }
+ },
+ "adminassistant.domainmodel": {
+ "type": "Project",
+ "dependencies": {
+ "Ardalis.Extensions": "[0.9.4, )",
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "Ardalis.Result": "[10.1.0, )",
+ "FluentValidation": "[12.1.1, )",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )",
+ "SimonGeering.Framework": "[1.0.0, )"
+ }
+ },
+ "adminassistant.infrastructure": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.DomainModel": "[1.0.0, )",
+ "AdminAssistant.Infrastructure.ClientSide": "[1.0.0, )",
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "Ardalis.Result": "[10.1.0, )",
+ "Ardalis.Specification.EntityFrameworkCore": "[9.3.1, )",
+ "Aspire.Npgsql.EntityFrameworkCore.PostgreSQL": "[13.4.6, )",
+ "Mediator.Abstractions": "[3.0.2, )",
+ "Microsoft.EntityFrameworkCore.Relational": "[10.0.9, )",
+ "Microsoft.Extensions.Hosting": "[10.0.9, )",
+ "Npgsql.EntityFrameworkCore.PostgreSQL": "[10.0.2, )",
+ "SimonGeering.Framework": "[1.0.0, )"
+ }
+ },
+ "adminassistant.infrastructure.clientside": {
+ "type": "Project",
+ "dependencies": {
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "PDFsharp": "[6.2.4, )"
+ }
+ },
+ "adminassistant.ui": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.Api.Client": "[1.0.0, )",
+ "AdminAssistant.DomainModel": "[1.0.0, )",
+ "AdminAssistant.Infrastructure.ClientSide": "[1.0.0, )",
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "CommunityToolkit.Mvvm": "[8.4.2, )",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )",
+ "Microsoft.Extensions.Http": "[10.0.9, )"
+ }
+ },
+ "simongeering.framework": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )"
+ }
+ },
+ "Ardalis.Extensions": {
+ "type": "CentralTransitive",
+ "requested": "[0.9.4, )",
+ "resolved": "0.9.4",
+ "contentHash": "5JDKpMiEsxbz9N1yynsMFc2rBXDQ5iHLockW8lxahqlj9B5gxbENTAXBY2Jswp4vcGG+cNQxv81KrUqd4mXQSA==",
+ "dependencies": {
+ "Ardalis.GuardClauses": "3.2.0"
+ }
+ },
+ "Ardalis.Result": {
+ "type": "CentralTransitive",
+ "requested": "[10.1.0, )",
+ "resolved": "10.1.0",
+ "contentHash": "+WgsXh+JRm0d8BZPlBUc5w0+FTda4vbWRa/IF2q4zDoRsU5BXr8w4rTbYEklZIMNgQQZTcNouR/QfBV5I/4XYQ=="
+ },
+ "Ardalis.Result.FluentValidation": {
+ "type": "CentralTransitive",
+ "requested": "[10.1.0, )",
+ "resolved": "10.1.0",
+ "contentHash": "OXfIq2LVnc8YjvpDqud1gJGVaoqOTznA2iSCFA1Ee0ScocXVvXmORWKiABCe3MfGyTg748V+Z7bdiQEXBCFoSQ==",
+ "dependencies": {
+ "Ardalis.Result": "10.1.0",
+ "FluentValidation": "11.9.2"
+ }
+ },
+ "Ardalis.Specification.EntityFrameworkCore": {
+ "type": "CentralTransitive",
+ "requested": "[9.3.1, )",
+ "resolved": "9.3.1",
+ "contentHash": "QbOo4E6HWdKXZ9QUrqcgiGN4EKtzt0kzGzqr2zc32q5QESzBrceJ3GX1ymWVdCCOzJO1+GPm+/a/5ovSkfrLoQ==",
+ "dependencies": {
+ "Ardalis.Specification": "9.3.1",
+ "Microsoft.EntityFrameworkCore": "9.0.8",
+ "Microsoft.EntityFrameworkCore.Relational": "9.0.8"
+ }
+ },
+ "Aspire.Npgsql.EntityFrameworkCore.PostgreSQL": {
+ "type": "CentralTransitive",
+ "requested": "[13.4.6, )",
+ "resolved": "13.4.6",
+ "contentHash": "Lt92FuyX4JkKwrAgrOsVARpmk3U9vBGBq784ZEO3hR2vC74o8VS/VWBJHYrRBYTXapuj+mwwPzvcUICmbB43Zg==",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Memory": "10.0.8",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks": "10.0.8",
+ "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore": "10.0.8",
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Logging": "10.0.8",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.8",
+ "Microsoft.Extensions.Options": "10.0.8",
+ "Microsoft.Extensions.Primitives": "10.0.8",
+ "Npgsql.DependencyInjection": "10.0.2",
+ "Npgsql.EntityFrameworkCore.PostgreSQL": "10.0.0",
+ "Npgsql.OpenTelemetry": "10.0.2",
+ "OpenTelemetry.Extensions.Hosting": "1.15.3"
+ }
+ },
+ "CommunityToolkit.Mvvm": {
+ "type": "CentralTransitive",
+ "requested": "[8.4.2, )",
+ "resolved": "8.4.2",
+ "contentHash": "WadCzGEc2U+3e20avRLng4qNtt4zoOGWrdUISqJWrHe3/FSnrYjuM5Sb4yQb09LhkBXrrI4Zt3dLKgRMbItsrg=="
+ },
+ "FluentValidation.DependencyInjectionExtensions": {
+ "type": "CentralTransitive",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "D0VXh4dtjjX2aQizuaa0g6R8X3U1JaVqJPfGCvLwZX9t/O2h7tkpbitbadQMfwcgSPdDbI2vDxuwRMv/Uf9dHA==",
+ "dependencies": {
+ "FluentValidation": "12.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.0"
+ }
+ },
+ "Mediator.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[3.0.2, )",
+ "resolved": "3.0.2",
+ "contentHash": "TytjnyN8gLObZBxkM7HHPFJF3LHtk6Y8mHW56ONuXRuVEK6Fmed3f0z79H9TpmoZQP2zQAIS4/0O9R2w0v02qw==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
+ }
+ },
+ "Microsoft.AspNetCore.OpenApi": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "1ihb8FO9cGgEK1/m3CTtT/SfnynwmiZib0W2pcDVj3KSWk/Sca4VOXEtaptKQc582zpFrzTFiwkGRCglt6H+WQ==",
+ "dependencies": {
+ "Microsoft.OpenApi": "2.0.0"
+ }
+ },
+ "Microsoft.EntityFrameworkCore": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "tu85SRzOT021V7EQlViCiAE7TqldVn469Y6lt5TEn/+XC4/MeNCHgMRSxqYuWqvF4zAQZUhCmtNEZuM3ss4LeA==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Abstractions": "10.0.9",
+ "Microsoft.EntityFrameworkCore.Analyzers": "10.0.9",
+ "Microsoft.Extensions.Caching.Memory": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9"
+ }
+ },
+ "Microsoft.EntityFrameworkCore.Analyzers": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "aiEFB+C5EsZGqxvMPazE07hbWsp4iPaufJpanGt5O+lrwv7mJLrqma5haVIgFAPCyhQkmk75XSCEubT1zUjxtA=="
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "g41l/30G3K4B/d/L8kjux0+30e27c8D0FVQ/PFCpbekgfDpj9mnDhieP67EqXWvl1EWNeZh2rpR4F5B/jcDOHA=="
+ },
+ "Microsoft.Extensions.Http": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "5jdmuLRg1HO7x/v8McOf6ndhkMQWImkRBtJpXM8+xIocXNdLqCItyyFLKusdILc62TDzHuLlqaWoxtOA5FFOPg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Diagnostics": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Http.Resilience": {
+ "type": "CentralTransitive",
+ "requested": "[10.7.0, )",
+ "resolved": "10.7.0",
+ "contentHash": "3Lip0MkBVPtqU1wCM2M2Y8CzsqxA1BanVNMV9LQYMTwBgy25NDe6U9nSk6SfmsxXlh77iwSQuPsyjt5mxrOGmQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Http.Diagnostics": "10.7.0",
+ "Microsoft.Extensions.ObjectPool": "10.0.9",
+ "Microsoft.Extensions.Resilience": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.ServiceDiscovery": {
+ "type": "CentralTransitive",
+ "requested": "[10.7.0, )",
+ "resolved": "10.7.0",
+ "contentHash": "UgBfP98NmKDjx/2jbLGkckSlc8XG4ubkjPrqACE2i9LPmrgoYGWTh9snybRUGBm0sTchsq3on81XRxfvX+XC5g==",
+ "dependencies": {
+ "Microsoft.Extensions.Http": "10.0.9",
+ "Microsoft.Extensions.ServiceDiscovery.Abstractions": "10.7.0"
+ }
+ },
+ "Npgsql.EntityFrameworkCore.PostgreSQL": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.2, )",
+ "resolved": "10.0.2",
+ "contentHash": "PsNYgPOSW41Xx19gin7y4EdZAPteWr9Cb01XkdObxOsPzi+mgBupBEN7J7+erXFsROPOILM7MlIoO9QzL8+LGQ==",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore": "[10.0.4, 11.0.0)",
+ "Microsoft.EntityFrameworkCore.Relational": "[10.0.4, 11.0.0)",
+ "Npgsql": "10.0.3"
+ }
+ },
+ "Npgsql.OpenTelemetry": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "ShsdG/FHxJ2VuWM6tebJL/mCWkcxymmvtENN59c85EsJdT4TStWwwtgZoBu/9UvC0qi1jpFZ6bOfl9ijiWD+vA==",
+ "dependencies": {
+ "Npgsql": "10.0.3",
+ "OpenTelemetry.API": "1.15.3"
+ }
+ },
+ "OpenTelemetry.Exporter.Console": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "cv3pKEn3KyJUNz9o8kvu5UN0NJEUoNSo5hJR4rgbfvqM6oA3moj+tkpbbQrE3bDvetBvYBes17ZxQxBBTvnJ+w==",
+ "dependencies": {
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "gzYLY8sVDY5FYtVlCYSzBYX53xslRlvBLxwFYOdNIhc76SgKdFYUoDQXOeQI3WPBCrZp51QNcP6fZHh1+HtpIQ==",
+ "dependencies": {
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Extensions.Hosting": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "/YfrO5MRaA156vhNanYGPX2JjOwKUrA0+Jf7ltT2eD3VkfHqXcEJY5Oxt/nWH8lqBOTc1nJpn2soBtD5Cml8Dg==",
+ "dependencies": {
+ "Microsoft.Extensions.Hosting.Abstractions": "10.0.0",
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Instrumentation.AspNetCore": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "vSC5EsmBVNcqXMh9BGkkq8zkoUjrg8ghBDb9zbKR8Bqjd05utjVgVft+fqsqQVsvlV5olGj1pBliHBngcIGSIg==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.EntityFrameworkCore": {
+ "type": "CentralTransitive",
+ "requested": "[1.0.0-beta.8, )",
+ "resolved": "1.0.0-beta.8",
+ "contentHash": "ilfbH1bDPm9YytgspAnQRVy3Hw0rNkYhjNJSNeT9QFWrwXAjCYVPVGTpHOgzM9gB5bS/u+04IgQainDzthUnVA==",
+ "dependencies": {
+ "Microsoft.Extensions.Options": "3.1.0",
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.6.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.GrpcNetClient": {
+ "type": "CentralTransitive",
+ "requested": "[1.6.0-beta.3, )",
+ "resolved": "1.6.0-beta.3",
+ "contentHash": "nzw8D5in6Hg/GbjNlq2FETP4GjSckae9hPGTxAUO7UiOS1lqkyxZJ7f4ntIjFKbiS3wuA9wPfQVH/3CaPV6EvQ==",
+ "dependencies": {
+ "OpenTelemetry": "1.6.0"
+ }
+ },
+ "OpenTelemetry.Instrumentation.Http": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "+Sz3lfvMXwWE8s/sMruHCDlO/+cArFVc6oBg1tCb70BKlL9FCC7uK4Ar2/VP9Hhwvs+UwaW1vGzE/uiByVHXiA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.0",
+ "Microsoft.Extensions.Options": "10.0.0",
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.Runtime": {
+ "type": "CentralTransitive",
+ "requested": "[1.15.1, )",
+ "resolved": "1.15.1",
+ "contentHash": "cpPwlUT5HXcLGPaIgsbSy0W9eFYAPGVbTP1p8/uyQ4Osvf5BJuPpEXE7crL09SmEd44r0DGNKDtsqxaAz0HxQw==",
+ "dependencies": {
+ "OpenTelemetry.Api": "[1.15.3, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.SqlClient": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "gZCmdQN24ty9FNLKYUR0VAojTByO650HgN89Ddoi9AIA2L3XqIHyUadNnFuIOKNo6+Pgrn4NgehvOzcmYhcl7A==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.0",
+ "Microsoft.Extensions.Options": "10.0.0",
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ },
+ "PDFsharp": {
+ "type": "CentralTransitive",
+ "requested": "[6.2.4, )",
+ "resolved": "6.2.4",
+ "contentHash": "GhTr9F1uOYXHCIEOB5PXIgqn5a8WLsJL2m0eewTA0IvY1j6N4HGXHKKmEyB90/N6vrjmYamf41V9zbmdW2HY3g==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.3",
+ "System.Security.Cryptography.Pkcs": "8.0.1"
+ }
+ },
+ "Refit.HttpClientFactory": {
+ "type": "CentralTransitive",
+ "requested": "[13.1.0, )",
+ "resolved": "13.1.0",
+ "contentHash": "hlAGIM0fXyZ2Vcv/WkkL2j24vi3JI3HAXyxjx0FrLzCbJIAps2RQvfOtE9NwtYGEf5/fa6qQld6k4e0YAHhQTg==",
+ "dependencies": {
+ "Microsoft.Extensions.Http": "10.0.9",
+ "ReactiveUI.Primitives": "6.0.0",
+ "Refit": "13.1.0"
+ }
+ },
+ "Swashbuckle.AspNetCore": {
+ "type": "CentralTransitive",
+ "requested": "[10.2.3, )",
+ "resolved": "10.2.3",
+ "contentHash": "8KNh1RWvofdU6DVLyBs4Z/OpUMnmf8oNvJQc0QxpwySRbi42bwLfdVMMrXZWANg5U5KQGQq1xW6r/hlcqw99tQ==",
+ "dependencies": {
+ "Microsoft.Extensions.ApiDescription.Server": "10.0.0",
+ "Swashbuckle.AspNetCore.Swagger": "10.2.3",
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.2.3",
+ "Swashbuckle.AspNetCore.SwaggerUI": "10.2.3"
+ }
+ },
+ "Swashbuckle.AspNetCore.Annotations": {
+ "type": "CentralTransitive",
+ "requested": "[10.2.3, )",
+ "resolved": "10.2.3",
+ "contentHash": "plbv/9BrcOQfCop5avxdMzp9Qw3jRPdCDaCkwIAYmEcjPUhNwUKqIYBPcXfAU4Jw5gVGj1bKTUuwYx9M43hPPg==",
+ "dependencies": {
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.2.3"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AdminAssistant.UI/packages.lock.json b/src/AdminAssistant.UI/packages.lock.json
new file mode 100644
index 00000000..532165df
--- /dev/null
+++ b/src/AdminAssistant.UI/packages.lock.json
@@ -0,0 +1,288 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Ardalis.GuardClauses": {
+ "type": "Direct",
+ "requested": "[5.0.0, )",
+ "resolved": "5.0.0",
+ "contentHash": "jVPRvLw0xIUFto2cMrKgRYADWIHbEEfzZHGiU/swwNgl1zo28Q1zfSa3VUC3C0s9DyhFDPSaF4dEDQRyTZUcyQ=="
+ },
+ "CommunityToolkit.Mvvm": {
+ "type": "Direct",
+ "requested": "[8.4.2, )",
+ "resolved": "8.4.2",
+ "contentHash": "WadCzGEc2U+3e20avRLng4qNtt4zoOGWrdUISqJWrHe3/FSnrYjuM5Sb4yQb09LhkBXrrI4Zt3dLKgRMbItsrg=="
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "g41l/30G3K4B/d/L8kjux0+30e27c8D0FVQ/PFCpbekgfDpj9mnDhieP67EqXWvl1EWNeZh2rpR4F5B/jcDOHA=="
+ },
+ "Microsoft.Extensions.Http": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "5jdmuLRg1HO7x/v8McOf6ndhkMQWImkRBtJpXM8+xIocXNdLqCItyyFLKusdILc62TDzHuLlqaWoxtOA5FFOPg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Diagnostics": "10.0.9",
+ "Microsoft.Extensions.Logging": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "SonarAnalyzer.CSharp": {
+ "type": "Direct",
+ "requested": "[10.28.0.143324, )",
+ "resolved": "10.28.0.143324",
+ "contentHash": "ZnmYHFiQw2Aph2ft9c7UqVrqe79aZR5l7oeG59+sgrSAO9J159meglP1Zo34+Mcw4etIUTC9btYnP0Ar/rQIyg=="
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "woZsWLhOQsASuxbmgiZJqiGUBNo3IjRdXC92xt8rRokza+P6/nIsnzq7sm9Or6ZYcRl2kL1ufj8HVzp1QlPTXw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "qGhRPd3VxfLV9UqatVOiD9mAeUbj2KiMwGFYC5uXlzExiZQoe4X/hdmzGIU7BQjNLTqCnnbTHVyBglG3668/HA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Tp/+LPb70RyjjtLg9m5C959eP4KrUpJHThZfAegZVpsfmGvzfuNkuYbI/ft+LvXhMSyUcAeOPaN6rzTccwnZAg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "NLXI3PbTe39q6/sgs7JYhmfPf7bMzReUoAJ0q9Po6yhfM+0anZa7PrEva4W2SdiLWGyB9eKZS9THGt2BP40xJg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "10.0.9",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Diagnostics.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "86RgyFsmVslW4Nu28IXgt8tLglynGQrwjk/xhGZaTe8j6YIeR1Ywoc42hSHsBSl920CQdfqq2dBohZiGm3AkUA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "N7Gm9SjugYjmmnhwbBKC9DFqGqjfJvh6YfOJgtwh0AW0Xpok3dIVors1ik050XmUxKAgAc7nNngDIJyFb06K2g==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection": "10.0.9",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "9S/DFt4cohlMPpzIxjG6kk0L8MuN2vDm9pbMCulxtJzzk82oJHVLBd8vuQxaPskaYQwKqmFmbannf5eoChgjYg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "hyNdX4c2UwkRkzb9byw0H2DQkRzwBM3mzY2sCM9egwzTyg8dvQJmp5noQHGEaaCORQrNK3DD2gREBsc2DlXS4A==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Options.ConfigurationExtensions": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "Y4E24zffF/aPS0igNvY6ZzAQfbxd6AYdC9L4brnH+uK0yYYHIR6FeGVQVVjAOo8wub1EQDl2B90lCcpqoTF7Yw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.9",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9",
+ "Microsoft.Extensions.Options": "10.0.9",
+ "Microsoft.Extensions.Primitives": "10.0.9"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "10.0.9",
+ "contentHash": "fmEbAUFsaIKirgLt/lYhuFRBwhcSJN31jjHgCdbQxJiWOum6EdLjkbgGuukSP9z/a+9LibaxII/kF+GwOXgC4g=="
+ },
+ "Microsoft.OpenApi": {
+ "type": "Transitive",
+ "resolved": "2.7.5",
+ "contentHash": "0FA67RSnRM4tcBKqiqVu/HPdZ9+QOKbmeRjxRUGTCjPU4C0bmUhd97Dso7Yild5P7nOV6GxJ2xrK0Kv/O9xp0w=="
+ },
+ "ReactiveUI.Disposables": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "+4SXyR40eHcCoAeLZWWMM4SE6uxxJgJSStMrRkbFVIFd3n8Pqzd/wCkVDt2q6Z9VC4TTF2HRDa3M6BY73iyS2g=="
+ },
+ "ReactiveUI.Primitives": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "LHJCaF4dmmLCyl7pyBYTx3BuV17uwQj5oqR3yCIN+M0abd5536eH+KW4Fu9Bc+rFe4x6LD5YioKO27ytPUXy5A==",
+ "dependencies": {
+ "ReactiveUI.Disposables": "6.0.0",
+ "ReactiveUI.Primitives.Core": "6.0.0"
+ }
+ },
+ "ReactiveUI.Primitives.Core": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "Ffky9BPfRbWJYeUWVLjno07/GcvFFnkXZ+NnrXmAkNnmGfKmSDGYvz2xvmaoUECucT7UBSUr7WO2+X/4fRpPDw==",
+ "dependencies": {
+ "ReactiveUI.Disposables": "6.0.0"
+ }
+ },
+ "Refit": {
+ "type": "Transitive",
+ "resolved": "13.1.0",
+ "contentHash": "Hd0zEcLAm/7Hk8xRRaXftxbLzvQ04La6IZBFYG2g/dC9e6jQBYEVBEr8OA/iSbLYQFEhTJ3XyjpFSz1MFHpYEg==",
+ "dependencies": {
+ "ReactiveUI.Primitives": "6.0.0"
+ }
+ },
+ "Swashbuckle.AspNetCore.Swagger": {
+ "type": "Transitive",
+ "resolved": "10.2.3",
+ "contentHash": "1jUUs3WQnrS0FUtaZPLSy1yYMEwS1zlvDmvQ2/eldPHUANX0LJSLVZecCMgSMdeGiRqeaRrIXLtSz++TCiTMww==",
+ "dependencies": {
+ "Microsoft.OpenApi": "2.7.5"
+ }
+ },
+ "Swashbuckle.AspNetCore.SwaggerGen": {
+ "type": "Transitive",
+ "resolved": "10.2.3",
+ "contentHash": "y7t4coDRAeFYChmvlMRiH2OjbiRrm9AVIDgt17fQfs3x9PVAI5PiwWYOhg+4F13R4Q36WDc9lqfoOnNa3tNbGg==",
+ "dependencies": {
+ "Swashbuckle.AspNetCore.Swagger": "10.2.3"
+ }
+ },
+ "System.Security.Cryptography.Pkcs": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "CoCRHFym33aUSf/NtWSVSZa99dkd0Hm7OCZUxORBjRB16LNhIEOf8THPqzIYlvKM0nNDAPTRBa1FxEECrgaxxA=="
+ },
+ "adminassistant.api.client": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.Api.Contracts": "[1.0.0, )",
+ "Refit.HttpClientFactory": "[13.1.0, )"
+ }
+ },
+ "adminassistant.api.contracts": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.DomainModel": "[1.0.0, )",
+ "Swashbuckle.AspNetCore.Annotations": "[10.2.3, )"
+ }
+ },
+ "adminassistant.domainmodel": {
+ "type": "Project",
+ "dependencies": {
+ "Ardalis.Extensions": "[0.9.4, )",
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "Ardalis.Result": "[10.1.0, )",
+ "FluentValidation": "[12.1.1, )",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )",
+ "SimonGeering.Framework": "[1.0.0, )"
+ }
+ },
+ "adminassistant.infrastructure.clientside": {
+ "type": "Project",
+ "dependencies": {
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "PDFsharp": "[6.2.4, )"
+ }
+ },
+ "simongeering.framework": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )"
+ }
+ },
+ "Ardalis.Extensions": {
+ "type": "CentralTransitive",
+ "requested": "[0.9.4, )",
+ "resolved": "0.9.4",
+ "contentHash": "5JDKpMiEsxbz9N1yynsMFc2rBXDQ5iHLockW8lxahqlj9B5gxbENTAXBY2Jswp4vcGG+cNQxv81KrUqd4mXQSA==",
+ "dependencies": {
+ "Ardalis.GuardClauses": "3.2.0"
+ }
+ },
+ "Ardalis.Result": {
+ "type": "CentralTransitive",
+ "requested": "[10.1.0, )",
+ "resolved": "10.1.0",
+ "contentHash": "+WgsXh+JRm0d8BZPlBUc5w0+FTda4vbWRa/IF2q4zDoRsU5BXr8w4rTbYEklZIMNgQQZTcNouR/QfBV5I/4XYQ=="
+ },
+ "FluentValidation": {
+ "type": "CentralTransitive",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "EPpkIe1yh1a0OXyC100oOA8WMbZvqUu5plwhvYcb7oSELfyUZzfxV48BLhvs3kKo4NwG7MGLNgy1RJiYtT8Dpw=="
+ },
+ "Microsoft.Extensions.DependencyInjection": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "NijozhERJDIaJ4k5TSMy1jOi0cSC2HfkvRD/Sl+kGSSKgVbFnF4GxgtMN/MrzHB8D1JxIrD4xSer9Blh9v3axQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "PDFsharp": {
+ "type": "CentralTransitive",
+ "requested": "[6.2.4, )",
+ "resolved": "6.2.4",
+ "contentHash": "GhTr9F1uOYXHCIEOB5PXIgqn5a8WLsJL2m0eewTA0IvY1j6N4HGXHKKmEyB90/N6vrjmYamf41V9zbmdW2HY3g==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.3",
+ "System.Security.Cryptography.Pkcs": "8.0.1"
+ }
+ },
+ "Refit.HttpClientFactory": {
+ "type": "CentralTransitive",
+ "requested": "[13.1.0, )",
+ "resolved": "13.1.0",
+ "contentHash": "hlAGIM0fXyZ2Vcv/WkkL2j24vi3JI3HAXyxjx0FrLzCbJIAps2RQvfOtE9NwtYGEf5/fa6qQld6k4e0YAHhQTg==",
+ "dependencies": {
+ "Microsoft.Extensions.Http": "10.0.9",
+ "ReactiveUI.Primitives": "6.0.0",
+ "Refit": "13.1.0"
+ }
+ },
+ "Swashbuckle.AspNetCore.Annotations": {
+ "type": "CentralTransitive",
+ "requested": "[10.2.3, )",
+ "resolved": "10.2.3",
+ "contentHash": "plbv/9BrcOQfCop5avxdMzp9Qw3jRPdCDaCkwIAYmEcjPUhNwUKqIYBPcXfAU4Jw5gVGj1bKTUuwYx9M43hPPg==",
+ "dependencies": {
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.2.3"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AdminAssistant.Web/packages.lock.json b/src/AdminAssistant.Web/packages.lock.json
new file mode 100644
index 00000000..1cd95364
--- /dev/null
+++ b/src/AdminAssistant.Web/packages.lock.json
@@ -0,0 +1,484 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Aspire.StackExchange.Redis.OutputCaching": {
+ "type": "Direct",
+ "requested": "[13.4.6, )",
+ "resolved": "13.4.6",
+ "contentHash": "/QQKDTh+bX/5bCJKpM3l51LCoDnRTO11MyrZiDiv8vXDNnrX16nhX6XANPmqPv99MZJvp/nYt4OGYuj104waHw==",
+ "dependencies": {
+ "AspNetCore.HealthChecks.Redis": "9.0.0",
+ "Aspire.StackExchange.Redis": "13.4.6",
+ "Microsoft.AspNetCore.OutputCaching.StackExchangeRedis": "10.0.8",
+ "Microsoft.Extensions.DependencyInjection.AutoActivation": "10.6.0",
+ "OpenTelemetry.Extensions.Hosting": "1.15.3",
+ "StackExchange.Redis": "2.13.1",
+ "System.IO.Hashing": "10.0.8"
+ }
+ },
+ "Microsoft.AspNetCore.App.Internal.Assets": {
+ "type": "Direct",
+ "requested": "[10.0.0, )",
+ "resolved": "10.0.0",
+ "contentHash": "0gZrESKwnlmbE8Br8XIy3kk7Pj0++9T2Ly+A8BFYYgo5EgfqWEln26cho+l92KOaHUzclhvz314RiwE910s24g=="
+ },
+ "MudBlazor": {
+ "type": "Direct",
+ "requested": "[9.6.0, )",
+ "resolved": "9.6.0",
+ "contentHash": "2bziL5wy8axn82R3hPB0WBlK7o+dKYOOje0Jw7E0oqxAhFll/uqZkvVdFR/rfyA5I7sldyPs6eWO6smkMJbDZQ=="
+ },
+ "SonarAnalyzer.CSharp": {
+ "type": "Direct",
+ "requested": "[10.28.0.143324, )",
+ "resolved": "10.28.0.143324",
+ "contentHash": "ZnmYHFiQw2Aph2ft9c7UqVrqe79aZR5l7oeG59+sgrSAO9J159meglP1Zo34+Mcw4etIUTC9btYnP0Ar/rQIyg=="
+ },
+ "Aspire.StackExchange.Redis": {
+ "type": "Transitive",
+ "resolved": "13.4.6",
+ "contentHash": "eIdqyDrChSFrGInWzY6fp175grYvYVpaiWcymYMDSvrDj8gpGddOqEFKftylOMlxUEBkaxLt1itm0KHBY8DhZg==",
+ "dependencies": {
+ "AspNetCore.HealthChecks.Redis": "9.0.0",
+ "Microsoft.Extensions.DependencyInjection.AutoActivation": "10.6.0",
+ "OpenTelemetry.Extensions.Hosting": "1.15.3",
+ "StackExchange.Redis": "2.13.1",
+ "System.IO.Hashing": "10.0.8"
+ }
+ },
+ "AspNetCore.HealthChecks.Redis": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "yNH0h8GLRbAf+PU5HNVLZ5hNeyq9mDVmRKO9xuZsme/znUYoBJlQvI0gq45gaZNlLncCHkMhR4o90MuT+gxxPw==",
+ "dependencies": {
+ "StackExchange.Redis": "2.7.4"
+ }
+ },
+ "Microsoft.AspNetCore.OutputCaching.StackExchangeRedis": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "+7a3KjrMIBvHpf/KlG1F9tjQzw7EL2MO9prFYi4nfHKeVT+JPdhuRUMIL2wS95cV0meB06BI4WCwoWXVSokkwQ==",
+ "dependencies": {
+ "StackExchange.Redis": "2.7.27"
+ }
+ },
+ "Microsoft.Extensions.AmbientMetadata.Application": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "yZ0818pVYQvUFW/1m+f8A1+lIAeSeQxEOdUCMIC+tqcRRKlqNjKPRKvGHPp8xLRbZBLaHfBtDslJa/sofn7J/Q=="
+ },
+ "Microsoft.Extensions.Compliance.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "qbi6lg6dyvydBvpjXeBx3wLPvmgXWn3nwkKBOsgEck6w++BEsBcv8YhdcczME16Oq+a6wkdtna9/qCEkxsNw5A=="
+ },
+ "Microsoft.Extensions.DependencyInjection.AutoActivation": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "WrSK0FGHSjSY4Pg4kd9Du8CUDwrgFTwHH1Y+N7sjyT6RFMU+G3coQ/Uq9PMGdQcy+DVKSMGHjfmWY47ZoYvhNA=="
+ },
+ "Microsoft.Extensions.Diagnostics.ExceptionSummarization": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "Kc4XbbxtCzvn2P/fKF48xLWPbp3N5DV0MkJlgPJHEb47PUqCJ6kEl/JTKfpmP7QLuwYjx2QxKTdtwXfpjgA6KQ=="
+ },
+ "Microsoft.Extensions.Http.Diagnostics": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "1m1zdBGW5J8MOxdZpJ5mUqdSaamRrYkpmfnEfeDmlZnglpfgDztcKOBU6cVsmn90AB7Ji2w8USvEsJ8PahbBWQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Telemetry": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.Resilience": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "ldUrtRzWSnfe5945xoSxDXxoWXnIKn19E74Huieyp76XW/BjRk3bhkILSSib1NKdZ2lpi/ReTvOpNGcJ8hkOxw==",
+ "dependencies": {
+ "Microsoft.Extensions.Diagnostics.ExceptionSummarization": "10.7.0",
+ "Microsoft.Extensions.Telemetry.Abstractions": "10.7.0",
+ "Polly.Extensions": "8.4.2",
+ "Polly.RateLimiting": "8.4.2"
+ }
+ },
+ "Microsoft.Extensions.ServiceDiscovery.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "1a/tCYg7+5HdJRQ0BQDDGzANBaw/1fony7eNsMwQ5n9FZmO3K5JCls02o8fwQc296l0szNBwroLRtXf94OZw9A=="
+ },
+ "Microsoft.Extensions.Telemetry": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "vZFNVvkz+7IABEv4klzPX/ZdmZQ6TrcReKUfeYIrQ2bbnvEcgZtG1RmOGeWkc1hFg8cq9sAgUc2lHCqlXSqf5A==",
+ "dependencies": {
+ "Microsoft.Extensions.AmbientMetadata.Application": "10.7.0",
+ "Microsoft.Extensions.DependencyInjection.AutoActivation": "10.7.0",
+ "Microsoft.Extensions.Telemetry.Abstractions": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.Telemetry.Abstractions": {
+ "type": "Transitive",
+ "resolved": "10.7.0",
+ "contentHash": "ir1QKShZzfEmqO9LUWESVMUDZdnxYBSKQyulYPMeaye531lAuT8YTotthx+htrrS8hZY52HANeqowLQyCYBCZg==",
+ "dependencies": {
+ "Microsoft.Extensions.Compliance.Abstractions": "10.7.0"
+ }
+ },
+ "Microsoft.OpenApi": {
+ "type": "Transitive",
+ "resolved": "2.7.5",
+ "contentHash": "0FA67RSnRM4tcBKqiqVu/HPdZ9+QOKbmeRjxRUGTCjPU4C0bmUhd97Dso7Yild5P7nOV6GxJ2xrK0Kv/O9xp0w=="
+ },
+ "Npgsql": {
+ "type": "Transitive",
+ "resolved": "10.0.3",
+ "contentHash": "7nb5YzXuvWWJxB0J8DiyL3we+X4FOctZrt0fIBnucOIaIevFEEwGQVZKtiu9olXdlNAK1eNgqSral6r/jlhI4w=="
+ },
+ "OpenTelemetry": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "nE/Px3MUvQC8c0UG0DOP5OJE7vMtiMaPYi/6TkSS/o/O0s/oPq+8WaPYTVEPzb7lwu/QyLgknc+sFm2FjPXe2A==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Api": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "WZP8Eb6vZTeNqeV+fjBitc7iefBoTHIhaWorqg/h/YiQBlcQJu0bICuTqKV0XRyjiE0eWs80yLlnUtHAFSkFWA=="
+ },
+ "OpenTelemetry.Api.ProviderBuilderExtensions": {
+ "type": "Transitive",
+ "resolved": "1.16.0",
+ "contentHash": "hZwaHAkXvUNn9+cS+vEvYBgIrIQOQRz2cIRUODZ5gxHsDsLeNCueLgZFkybopjE0jUhLut6lm5eL3LTqbW0hMg==",
+ "dependencies": {
+ "OpenTelemetry.Api": "1.16.0"
+ }
+ },
+ "Pipelines.Sockets.Unofficial": {
+ "type": "Transitive",
+ "resolved": "2.2.16",
+ "contentHash": "nonu9l0YrZH6krVYbskBjE7uG0VMAnvOQ9PU+RmzUsy+++vHkqzzCkHRoP877OiA3iRTxJyNDLfpcU8hrJ3/YQ=="
+ },
+ "Polly.Core": {
+ "type": "Transitive",
+ "resolved": "8.4.2",
+ "contentHash": "BpE2I6HBYYA5tF0Vn4eoQOGYTYIK1BlF5EXVgkWGn3mqUUjbXAr13J6fZVbp7Q3epRR8yshacBMlsHMhpOiV3g=="
+ },
+ "Polly.Extensions": {
+ "type": "Transitive",
+ "resolved": "8.4.2",
+ "contentHash": "GZ9vRVmR0jV2JtZavt+pGUsQ1O1cuRKG7R7VOZI6ZDy9y6RNPvRvXK1tuS4ffUrv8L0FTea59oEuQzgS0R7zSA==",
+ "dependencies": {
+ "Polly.Core": "8.4.2"
+ }
+ },
+ "Polly.RateLimiting": {
+ "type": "Transitive",
+ "resolved": "8.4.2",
+ "contentHash": "ehTImQ/eUyO07VYW2WvwSmU9rRH200SKJ/3jku9rOkyWE0A2JxNFmAVms8dSn49QLSjmjFRRSgfNyOgr/2PSmA==",
+ "dependencies": {
+ "Polly.Core": "8.4.2"
+ }
+ },
+ "ReactiveUI.Disposables": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "+4SXyR40eHcCoAeLZWWMM4SE6uxxJgJSStMrRkbFVIFd3n8Pqzd/wCkVDt2q6Z9VC4TTF2HRDa3M6BY73iyS2g=="
+ },
+ "ReactiveUI.Primitives": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "LHJCaF4dmmLCyl7pyBYTx3BuV17uwQj5oqR3yCIN+M0abd5536eH+KW4Fu9Bc+rFe4x6LD5YioKO27ytPUXy5A==",
+ "dependencies": {
+ "ReactiveUI.Disposables": "6.0.0",
+ "ReactiveUI.Primitives.Core": "6.0.0"
+ }
+ },
+ "ReactiveUI.Primitives.Core": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "Ffky9BPfRbWJYeUWVLjno07/GcvFFnkXZ+NnrXmAkNnmGfKmSDGYvz2xvmaoUECucT7UBSUr7WO2+X/4fRpPDw==",
+ "dependencies": {
+ "ReactiveUI.Disposables": "6.0.0"
+ }
+ },
+ "Refit": {
+ "type": "Transitive",
+ "resolved": "13.1.0",
+ "contentHash": "Hd0zEcLAm/7Hk8xRRaXftxbLzvQ04La6IZBFYG2g/dC9e6jQBYEVBEr8OA/iSbLYQFEhTJ3XyjpFSz1MFHpYEg==",
+ "dependencies": {
+ "ReactiveUI.Primitives": "6.0.0"
+ }
+ },
+ "StackExchange.Redis": {
+ "type": "Transitive",
+ "resolved": "2.13.1",
+ "contentHash": "jC5wkRe8K6HPoDENUws+fl2d7+GKz+ky8SWEDzYzPx6hHt2EwxWm01gmYPWLzlT49jfYYap0guB5bExtyX9aIQ==",
+ "dependencies": {
+ "Pipelines.Sockets.Unofficial": "2.2.16",
+ "System.IO.Hashing": "10.0.2"
+ }
+ },
+ "Swashbuckle.AspNetCore.Swagger": {
+ "type": "Transitive",
+ "resolved": "10.2.3",
+ "contentHash": "1jUUs3WQnrS0FUtaZPLSy1yYMEwS1zlvDmvQ2/eldPHUANX0LJSLVZecCMgSMdeGiRqeaRrIXLtSz++TCiTMww==",
+ "dependencies": {
+ "Microsoft.OpenApi": "2.7.5"
+ }
+ },
+ "Swashbuckle.AspNetCore.SwaggerGen": {
+ "type": "Transitive",
+ "resolved": "10.2.3",
+ "contentHash": "y7t4coDRAeFYChmvlMRiH2OjbiRrm9AVIDgt17fQfs3x9PVAI5PiwWYOhg+4F13R4Q36WDc9lqfoOnNa3tNbGg==",
+ "dependencies": {
+ "Swashbuckle.AspNetCore.Swagger": "10.2.3"
+ }
+ },
+ "System.IO.Hashing": {
+ "type": "Transitive",
+ "resolved": "10.0.8",
+ "contentHash": "+dJsbPJ3FyUbTZNplFj0RCKePFizmv6ewDV46JE9q/IVH4c3xTCftHfHelLsAKf0jryIPqgMb5GpS0x7TAY3mg=="
+ },
+ "System.Security.Cryptography.Pkcs": {
+ "type": "Transitive",
+ "resolved": "8.0.1",
+ "contentHash": "CoCRHFym33aUSf/NtWSVSZa99dkd0Hm7OCZUxORBjRB16LNhIEOf8THPqzIYlvKM0nNDAPTRBa1FxEECrgaxxA=="
+ },
+ "adminassistant.api.client": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.Api.Contracts": "[1.0.0, )",
+ "Refit.HttpClientFactory": "[13.1.0, )"
+ }
+ },
+ "adminassistant.api.contracts": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.DomainModel": "[1.0.0, )",
+ "Swashbuckle.AspNetCore.Annotations": "[10.2.3, )"
+ }
+ },
+ "adminassistant.aspire.servicedefaults": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Extensions.Http.Resilience": "[10.7.0, )",
+ "Microsoft.Extensions.ServiceDiscovery": "[10.7.0, )",
+ "Npgsql.OpenTelemetry": "[10.0.3, )",
+ "OpenTelemetry.Exporter.Console": "[1.16.0, )",
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": "[1.16.0, )",
+ "OpenTelemetry.Extensions.Hosting": "[1.16.0, )",
+ "OpenTelemetry.Instrumentation.AspNetCore": "[1.16.0, )",
+ "OpenTelemetry.Instrumentation.EntityFrameworkCore": "[1.0.0-beta.8, )",
+ "OpenTelemetry.Instrumentation.GrpcNetClient": "[1.6.0-beta.3, )",
+ "OpenTelemetry.Instrumentation.Http": "[1.16.0, )",
+ "OpenTelemetry.Instrumentation.Runtime": "[1.15.1, )",
+ "OpenTelemetry.Instrumentation.SqlClient": "[1.16.0, )"
+ }
+ },
+ "adminassistant.domainmodel": {
+ "type": "Project",
+ "dependencies": {
+ "Ardalis.Extensions": "[0.9.4, )",
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "Ardalis.Result": "[10.1.0, )",
+ "FluentValidation": "[12.1.1, )",
+ "SimonGeering.Framework": "[1.0.0, )"
+ }
+ },
+ "adminassistant.infrastructure.clientside": {
+ "type": "Project",
+ "dependencies": {
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "PDFsharp": "[6.2.4, )"
+ }
+ },
+ "adminassistant.ui": {
+ "type": "Project",
+ "dependencies": {
+ "AdminAssistant.Api.Client": "[1.0.0, )",
+ "AdminAssistant.DomainModel": "[1.0.0, )",
+ "AdminAssistant.Infrastructure.ClientSide": "[1.0.0, )",
+ "Ardalis.GuardClauses": "[5.0.0, )",
+ "CommunityToolkit.Mvvm": "[8.4.2, )"
+ }
+ },
+ "simongeering.framework": {
+ "type": "Project"
+ },
+ "Ardalis.Extensions": {
+ "type": "CentralTransitive",
+ "requested": "[0.9.4, )",
+ "resolved": "0.9.4",
+ "contentHash": "5JDKpMiEsxbz9N1yynsMFc2rBXDQ5iHLockW8lxahqlj9B5gxbENTAXBY2Jswp4vcGG+cNQxv81KrUqd4mXQSA==",
+ "dependencies": {
+ "Ardalis.GuardClauses": "3.2.0"
+ }
+ },
+ "Ardalis.GuardClauses": {
+ "type": "CentralTransitive",
+ "requested": "[5.0.0, )",
+ "resolved": "5.0.0",
+ "contentHash": "jVPRvLw0xIUFto2cMrKgRYADWIHbEEfzZHGiU/swwNgl1zo28Q1zfSa3VUC3C0s9DyhFDPSaF4dEDQRyTZUcyQ=="
+ },
+ "Ardalis.Result": {
+ "type": "CentralTransitive",
+ "requested": "[10.1.0, )",
+ "resolved": "10.1.0",
+ "contentHash": "+WgsXh+JRm0d8BZPlBUc5w0+FTda4vbWRa/IF2q4zDoRsU5BXr8w4rTbYEklZIMNgQQZTcNouR/QfBV5I/4XYQ=="
+ },
+ "CommunityToolkit.Mvvm": {
+ "type": "CentralTransitive",
+ "requested": "[8.4.2, )",
+ "resolved": "8.4.2",
+ "contentHash": "WadCzGEc2U+3e20avRLng4qNtt4zoOGWrdUISqJWrHe3/FSnrYjuM5Sb4yQb09LhkBXrrI4Zt3dLKgRMbItsrg=="
+ },
+ "FluentValidation": {
+ "type": "CentralTransitive",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "EPpkIe1yh1a0OXyC100oOA8WMbZvqUu5plwhvYcb7oSELfyUZzfxV48BLhvs3kKo4NwG7MGLNgy1RJiYtT8Dpw=="
+ },
+ "Microsoft.Extensions.Http.Resilience": {
+ "type": "CentralTransitive",
+ "requested": "[10.7.0, )",
+ "resolved": "10.7.0",
+ "contentHash": "3Lip0MkBVPtqU1wCM2M2Y8CzsqxA1BanVNMV9LQYMTwBgy25NDe6U9nSk6SfmsxXlh77iwSQuPsyjt5mxrOGmQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Http.Diagnostics": "10.7.0",
+ "Microsoft.Extensions.Resilience": "10.7.0"
+ }
+ },
+ "Microsoft.Extensions.ServiceDiscovery": {
+ "type": "CentralTransitive",
+ "requested": "[10.7.0, )",
+ "resolved": "10.7.0",
+ "contentHash": "UgBfP98NmKDjx/2jbLGkckSlc8XG4ubkjPrqACE2i9LPmrgoYGWTh9snybRUGBm0sTchsq3on81XRxfvX+XC5g==",
+ "dependencies": {
+ "Microsoft.Extensions.ServiceDiscovery.Abstractions": "10.7.0"
+ }
+ },
+ "Npgsql.OpenTelemetry": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.3, )",
+ "resolved": "10.0.3",
+ "contentHash": "ShsdG/FHxJ2VuWM6tebJL/mCWkcxymmvtENN59c85EsJdT4TStWwwtgZoBu/9UvC0qi1jpFZ6bOfl9ijiWD+vA==",
+ "dependencies": {
+ "Npgsql": "10.0.3",
+ "OpenTelemetry.API": "1.15.3"
+ }
+ },
+ "OpenTelemetry.Exporter.Console": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "cv3pKEn3KyJUNz9o8kvu5UN0NJEUoNSo5hJR4rgbfvqM6oA3moj+tkpbbQrE3bDvetBvYBes17ZxQxBBTvnJ+w==",
+ "dependencies": {
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "gzYLY8sVDY5FYtVlCYSzBYX53xslRlvBLxwFYOdNIhc76SgKdFYUoDQXOeQI3WPBCrZp51QNcP6fZHh1+HtpIQ==",
+ "dependencies": {
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Extensions.Hosting": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "/YfrO5MRaA156vhNanYGPX2JjOwKUrA0+Jf7ltT2eD3VkfHqXcEJY5Oxt/nWH8lqBOTc1nJpn2soBtD5Cml8Dg==",
+ "dependencies": {
+ "OpenTelemetry": "1.16.0"
+ }
+ },
+ "OpenTelemetry.Instrumentation.AspNetCore": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "vSC5EsmBVNcqXMh9BGkkq8zkoUjrg8ghBDb9zbKR8Bqjd05utjVgVft+fqsqQVsvlV5olGj1pBliHBngcIGSIg==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.EntityFrameworkCore": {
+ "type": "CentralTransitive",
+ "requested": "[1.0.0-beta.8, )",
+ "resolved": "1.0.0-beta.8",
+ "contentHash": "ilfbH1bDPm9YytgspAnQRVy3Hw0rNkYhjNJSNeT9QFWrwXAjCYVPVGTpHOgzM9gB5bS/u+04IgQainDzthUnVA==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.6.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.GrpcNetClient": {
+ "type": "CentralTransitive",
+ "requested": "[1.6.0-beta.3, )",
+ "resolved": "1.6.0-beta.3",
+ "contentHash": "nzw8D5in6Hg/GbjNlq2FETP4GjSckae9hPGTxAUO7UiOS1lqkyxZJ7f4ntIjFKbiS3wuA9wPfQVH/3CaPV6EvQ==",
+ "dependencies": {
+ "OpenTelemetry": "1.6.0"
+ }
+ },
+ "OpenTelemetry.Instrumentation.Http": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "+Sz3lfvMXwWE8s/sMruHCDlO/+cArFVc6oBg1tCb70BKlL9FCC7uK4Ar2/VP9Hhwvs+UwaW1vGzE/uiByVHXiA==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.Runtime": {
+ "type": "CentralTransitive",
+ "requested": "[1.15.1, )",
+ "resolved": "1.15.1",
+ "contentHash": "cpPwlUT5HXcLGPaIgsbSy0W9eFYAPGVbTP1p8/uyQ4Osvf5BJuPpEXE7crL09SmEd44r0DGNKDtsqxaAz0HxQw==",
+ "dependencies": {
+ "OpenTelemetry.Api": "[1.15.3, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.SqlClient": {
+ "type": "CentralTransitive",
+ "requested": "[1.16.0, )",
+ "resolved": "1.16.0",
+ "contentHash": "gZCmdQN24ty9FNLKYUR0VAojTByO650HgN89Ddoi9AIA2L3XqIHyUadNnFuIOKNo6+Pgrn4NgehvOzcmYhcl7A==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.16.0, 2.0.0)"
+ }
+ },
+ "PDFsharp": {
+ "type": "CentralTransitive",
+ "requested": "[6.2.4, )",
+ "resolved": "6.2.4",
+ "contentHash": "GhTr9F1uOYXHCIEOB5PXIgqn5a8WLsJL2m0eewTA0IvY1j6N4HGXHKKmEyB90/N6vrjmYamf41V9zbmdW2HY3g==",
+ "dependencies": {
+ "System.Security.Cryptography.Pkcs": "8.0.1"
+ }
+ },
+ "Refit.HttpClientFactory": {
+ "type": "CentralTransitive",
+ "requested": "[13.1.0, )",
+ "resolved": "13.1.0",
+ "contentHash": "hlAGIM0fXyZ2Vcv/WkkL2j24vi3JI3HAXyxjx0FrLzCbJIAps2RQvfOtE9NwtYGEf5/fa6qQld6k4e0YAHhQTg==",
+ "dependencies": {
+ "ReactiveUI.Primitives": "6.0.0",
+ "Refit": "13.1.0"
+ }
+ },
+ "Swashbuckle.AspNetCore.Annotations": {
+ "type": "CentralTransitive",
+ "requested": "[10.2.3, )",
+ "resolved": "10.2.3",
+ "contentHash": "plbv/9BrcOQfCop5avxdMzp9Qw3jRPdCDaCkwIAYmEcjPUhNwUKqIYBPcXfAU4Jw5gVGj1bKTUuwYx9M43hPPg==",
+ "dependencies": {
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.2.3"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index 663bb5ba..eac136d1 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -13,6 +13,11 @@
AllEnabledByDefault
true
true
+ true
+ true
+ true
+ true
+
$(NoWarn);S1133;S1135;S1125;1701;1702;1591;NU1605;CS1591
diff --git a/src/SimonGeering.Framework.Test/packages.lock.json b/src/SimonGeering.Framework.Test/packages.lock.json
new file mode 100644
index 00000000..e1d7e694
--- /dev/null
+++ b/src/SimonGeering.Framework.Test/packages.lock.json
@@ -0,0 +1,205 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "coverlet.collector": {
+ "type": "Direct",
+ "requested": "[10.0.1, )",
+ "resolved": "10.0.1",
+ "contentHash": "27jXSV/0DbVqF5jDrAxuQFZ9oaz6gmG03p8ttxAFk+X0M4woFYj7MoWDLCna5EGLb0CE6OE7X6ZH3Wt5smTtaA=="
+ },
+ "Microsoft.Extensions.DependencyInjection": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "NijozhERJDIaJ4k5TSMy1jOi0cSC2HfkvRD/Sl+kGSSKgVbFnF4GxgtMN/MrzHB8D1JxIrD4xSer9Blh9v3axQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.9"
+ }
+ },
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[18.7.0, )",
+ "resolved": "18.7.0",
+ "contentHash": "49xH9j4UzCh2hMohJp53g3wUTvyycECw7CtVht4gfCz5ykudB1uBcF6D0TtgJPjCtP76UPW53bQElKdCeX+dUg==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "18.7.0",
+ "Microsoft.TestPlatform.TestHost": "18.7.0"
+ }
+ },
+ "Moq": {
+ "type": "Direct",
+ "requested": "[4.20.72, )",
+ "resolved": "4.20.72",
+ "contentHash": "EA55cjyNn8eTNWrgrdZJH5QLFp2L43oxl1tlkoYUKIE9pRwL784OWiTXeCV5ApS+AMYEAlt7Fo03A2XfouvHmQ==",
+ "dependencies": {
+ "Castle.Core": "5.1.1"
+ }
+ },
+ "Shouldly": {
+ "type": "Direct",
+ "requested": "[4.3.0, )",
+ "resolved": "4.3.0",
+ "contentHash": "sDetrWXrl6YXZ4HeLsdBoNk3uIa7K+V4uvIJ+cqdRa5DrFxeTED7VkjoxCuU1kJWpUuBDZz2QXFzSxBtVXLwRQ==",
+ "dependencies": {
+ "DiffEngine": "11.3.0",
+ "EmptyFiles": "4.4.0"
+ }
+ },
+ "SonarAnalyzer.CSharp": {
+ "type": "Direct",
+ "requested": "[10.28.0.143324, )",
+ "resolved": "10.28.0.143324",
+ "contentHash": "ZnmYHFiQw2Aph2ft9c7UqVrqe79aZR5l7oeG59+sgrSAO9J159meglP1Zo34+Mcw4etIUTC9btYnP0Ar/rQIyg=="
+ },
+ "xunit": {
+ "type": "Direct",
+ "requested": "[2.9.3, )",
+ "resolved": "2.9.3",
+ "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==",
+ "dependencies": {
+ "xunit.analyzers": "1.18.0",
+ "xunit.assert": "2.9.3",
+ "xunit.core": "[2.9.3]"
+ }
+ },
+ "xunit.runner.visualstudio": {
+ "type": "Direct",
+ "requested": "[3.1.5, )",
+ "resolved": "3.1.5",
+ "contentHash": "tKi7dSTwP4m5m9eXPM2Ime4Kn7xNf4x4zT9sdLO/G4hZVnQCRiMTWoSZqI/pYTVeI27oPPqHBKYI/DjJ9GsYgA=="
+ },
+ "Xunit.SkippableFact": {
+ "type": "Direct",
+ "requested": "[1.5.61, )",
+ "resolved": "1.5.61",
+ "contentHash": "ZoahExHGire3U1b9RLUQJuoofMKwJKd6U60cqaomh0llL8ns1evvl8ivXLP1Bw3nPUR0ELfSVZ0giKnMoqPCfQ==",
+ "dependencies": {
+ "Validation": "2.6.68",
+ "xunit.extensibility.execution": "2.4.0"
+ }
+ },
+ "Castle.Core": {
+ "type": "Transitive",
+ "resolved": "5.1.1",
+ "contentHash": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==",
+ "dependencies": {
+ "System.Diagnostics.EventLog": "6.0.0"
+ }
+ },
+ "DiffEngine": {
+ "type": "Transitive",
+ "resolved": "11.3.0",
+ "contentHash": "k0ZgZqd09jLZQjR8FyQbSQE86Q7QZnjEzq1LPHtj1R2AoWO8sjV5x+jlSisL7NZAbUOI4y+7Bog8gkr9WIRBGw==",
+ "dependencies": {
+ "EmptyFiles": "4.4.0",
+ "System.Management": "6.0.1"
+ }
+ },
+ "EmptyFiles": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "gwJEfIGS7FhykvtZoscwXj/XwW+mJY6UbAZk+qtLKFUGWC95kfKXnj8VkxsZQnWBxJemM/q664rGLN5nf+OHZw=="
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "18.7.0",
+ "contentHash": "+wFfx9s7D9wegM0RziXMj2kvYDT4qcqXXtyjiQwSZOGQ2wwcOAJQcD6eQXk02jt0MvRNawtp8TJxTrV+wD8X1g=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "18.7.0",
+ "contentHash": "6rmgU4q3/WOpOPcncI0YW0Q/QpcQtwR2TTEXDR5+4TfSimPBAk6Z/BgKLeGgp1SOun0ROVUCCafXhRLwsHaPpA=="
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "18.7.0",
+ "contentHash": "kYwfmebCs8992zaxEDkvG7S+YEouTeKfYVKUFEkwh1W2dIoOaevBt80XSKVXCUFEhusjOIm1sFfHBnoJgygrRA==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "18.7.0",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "CPc6tWO1LAer3IzfZufDBRL+UZQcj5uS207NHALQzP84Vp/z6wF0Aa0YZImOQY8iStY0A2zI/e3ihKNPfUm8XA=="
+ },
+ "System.Diagnostics.EventLog": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "lcyUiXTsETK2ALsZrX+nWuHSIQeazhqPphLfaRxzdGaG93+0kELqpgEHtwWOlQe7+jSFnKwaCAgL4kjeZCQJnw=="
+ },
+ "System.Management": {
+ "type": "Transitive",
+ "resolved": "6.0.1",
+ "contentHash": "10J1D0h/lioojphfJ4Fuh5ZUThT/xOVHdV9roGBittKKNP2PMjrvibEdbVTGZcPra1399Ja3tqIJLyQrc5Wmhg==",
+ "dependencies": {
+ "System.CodeDom": "6.0.0"
+ }
+ },
+ "Validation": {
+ "type": "Transitive",
+ "resolved": "2.6.68",
+ "contentHash": "5mZ+aXsYQnr3Wxz5O2tmbgPaa5kn9R+ZlfnPyGBogXI2sh4uTiHtvU++N4bURtn9vmDYIu2Zu323K9hFz9poXQ=="
+ },
+ "xunit.abstractions": {
+ "type": "Transitive",
+ "resolved": "2.0.3",
+ "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
+ },
+ "xunit.analyzers": {
+ "type": "Transitive",
+ "resolved": "1.18.0",
+ "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ=="
+ },
+ "xunit.assert": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA=="
+ },
+ "xunit.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]",
+ "xunit.extensibility.execution": "[2.9.3]"
+ }
+ },
+ "xunit.extensibility.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==",
+ "dependencies": {
+ "xunit.abstractions": "2.0.3"
+ }
+ },
+ "xunit.extensibility.execution": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]"
+ }
+ },
+ "simongeering.framework": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.9, )"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "g41l/30G3K4B/d/L8kjux0+30e27c8D0FVQ/PFCpbekgfDpj9mnDhieP67EqXWvl1EWNeZh2rpR4F5B/jcDOHA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/SimonGeering.Framework/packages.lock.json b/src/SimonGeering.Framework/packages.lock.json
new file mode 100644
index 00000000..55bb959c
--- /dev/null
+++ b/src/SimonGeering.Framework/packages.lock.json
@@ -0,0 +1,19 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Direct",
+ "requested": "[10.0.9, )",
+ "resolved": "10.0.9",
+ "contentHash": "g41l/30G3K4B/d/L8kjux0+30e27c8D0FVQ/PFCpbekgfDpj9mnDhieP67EqXWvl1EWNeZh2rpR4F5B/jcDOHA=="
+ },
+ "SonarAnalyzer.CSharp": {
+ "type": "Direct",
+ "requested": "[10.28.0.143324, )",
+ "resolved": "10.28.0.143324",
+ "contentHash": "ZnmYHFiQw2Aph2ft9c7UqVrqe79aZR5l7oeG59+sgrSAO9J159meglP1Zo34+Mcw4etIUTC9btYnP0Ar/rQIyg=="
+ }
+ }
+ }
+}
\ No newline at end of file
From 8b837374f8cca8407bc533ecfb242935e6914631 Mon Sep 17 00:00:00 2001
From: Simon Geering <25039878+SimonGeering@users.noreply.github.com>
Date: Tue, 11 Aug 2026 22:48:14 +0100
Subject: [PATCH 14/16] Updated build pipelines for improved security.
---
DevOps/ContinuousIntegration.yml | 40 +++++++++++++++++++++++++++++++-
DevOps/ManualFullBuild.yml | 40 +++++++++++++++++++++++++++++++-
DevOps/PullRequest.yml | 40 +++++++++++++++++++++++++++++++-
3 files changed, 117 insertions(+), 3 deletions(-)
diff --git a/DevOps/ContinuousIntegration.yml b/DevOps/ContinuousIntegration.yml
index 0d88792f..c8155bfd 100644
--- a/DevOps/ContinuousIntegration.yml
+++ b/DevOps/ContinuousIntegration.yml
@@ -11,7 +11,7 @@ trigger: # CI Builds
- ./DevOps
- ./docs
-pr: none # Disable PR builds
+pr: none # Disable PR builds for security - require manual approval.
resources:
- repo: self
@@ -25,6 +25,21 @@ stages:
vmImage: 'windows-latest' # Need windows to get code coverage report - https://github.com/actions/virtual-environments/tree/master/images/win
#name: Self-Hosted
steps:
+ #
+ # Remove Azure DevOps access token ...
+ - powershell: |
+ Remove-Item Env:SYSTEM_ACCESSTOKEN -ErrorAction SilentlyContinue
+ displayName: "Remove Azure DevOps access token"
+ #
+ # Secret usage detection ...
+ - powershell: |
+ $hits = Get-ChildItem -Recurse -File | Select-String -Pattern "PAT"
+ if ($hits) {
+ Write-Host "PAT detected — pipeline must not use long-lived secrets"
+ exit 1
+ }
+ displayName: "Check for PAT usage"
+ #
# Set-up build environment ...
- task: UseDotNet@2
displayName: 'Ensure CI uses correct sdk Version'
@@ -32,6 +47,15 @@ stages:
packageType: 'sdk'
version: '10.0.100'
includePreviewVersions: false
+ #
+ # Clear NuGet cache ...
+ - powershell: |
+ $nuget = Join-Path $HOME ".nuget/packages"
+ if (Test-Path $nuget) {
+ Remove-Item -Recurse -Force $nuget
+ }
+ displayName: "Clear NuGet cache"
+ #
# Restore dependencies ...
- task: DotNetCoreCLI@2
displayName: 'dotnet restore'
@@ -40,6 +64,8 @@ stages:
projects: 'src/AdminAssistant.slnx'
feedsToUse: 'config'
nugetConfigPath: 'DevOps/NuGet.config'
+ arguments: '--locked-mode'
+ #
# Sonar Cloud Prepare ...
# - task: SonarCloudPrepare@1
# inputs:
@@ -48,6 +74,7 @@ stages:
# scannerMode: 'MSBuild'
# projectKey: 'SimonGeering_AdminAssistant'
# projectName: 'AdminAssistant'
+ #
# Build ...
- task: DotNetCoreCLI@2
displayName: 'dotnet build'
@@ -55,6 +82,7 @@ stages:
command: 'build'
projects: 'src/AdminAssistant.slnx'
arguments: '--configuration Release --no-restore'
+ #
# Run Unit Tests ...
- task: DotNetCoreCLI@2
displayName: 'dotnet test'
@@ -64,6 +92,16 @@ stages:
arguments: '--configuration Release --no-build --collect "Code coverage" --settings "$(Build.SourcesDirectory)\src\AdminAssistant.Test\.runsettings" --filter "Category=Unit"'
publishTestResults: true
testRunTitle: 'Unit Tests'
+ #
+ # Dependency provenance report ...
+ - task: DotNetCoreCLI@2
+ displayName: "dotnet list package"
+ inputs:
+ command: 'custom'
+ custom: 'list'
+ arguments: 'package --include-transitive'
+ projects: 'src/AdminAssistant.slnx'
+ #
# Sonar Cloud Analyze and Publish ...
# - task: SonarCloudAnalyze@1
# - task: SonarCloudPublish@1
diff --git a/DevOps/ManualFullBuild.yml b/DevOps/ManualFullBuild.yml
index ee334065..7b77474d 100644
--- a/DevOps/ManualFullBuild.yml
+++ b/DevOps/ManualFullBuild.yml
@@ -1,7 +1,7 @@
name: $(BuildID)
pr: none # Disable PR builds
-trigger: none # Disable CI Builds
+trigger: none # Disable CI Builds for security - require manual approval.
resources:
- repo: self
@@ -14,6 +14,21 @@ stages:
pool: # https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops
vmImage: 'windows-latest' # Need windows to get code coverage report - https://github.com/actions/virtual-environments/tree/master/images/win
steps:
+ #
+ # Remove Azure DevOps access token ...
+ - powershell: |
+ Remove-Item Env:SYSTEM_ACCESSTOKEN -ErrorAction SilentlyContinue
+ displayName: "Remove Azure DevOps access token"
+ #
+ # Secret usage detection ...
+ - powershell: |
+ $hits = Get-ChildItem -Recurse -File | Select-String -Pattern "PAT"
+ if ($hits) {
+ Write-Host "PAT detected — pipeline must not use long-lived secrets"
+ exit 1
+ }
+ displayName: "Check for PAT usage"
+ #
# Set-up build environment ...
- task: UseDotNet@2
displayName: 'Ensure CI uses correct sdk Version'
@@ -21,6 +36,15 @@ stages:
packageType: 'sdk'
version: '10.0.100'
includePreviewVersions: false
+ #
+ # Clear NuGet cache ...
+ - powershell: |
+ $nuget = Join-Path $HOME ".nuget/packages"
+ if (Test-Path $nuget) {
+ Remove-Item -Recurse -Force $nuget
+ }
+ displayName: "Clear NuGet cache"
+ #
# Restore dependencies ...
- task: DotNetCoreCLI@2
displayName: 'dotnet restore'
@@ -29,6 +53,8 @@ stages:
projects: 'src/AdminAssistant.slnx'
feedsToUse: 'config'
nugetConfigPath: 'DevOps/NuGet.config'
+ arguments: '--locked-mode'
+ #
# Sonar Cloud Prepare ...
# - task: SonarCloudPrepare@1
# inputs:
@@ -37,6 +63,7 @@ stages:
# scannerMode: 'MSBuild'
# projectKey: 'SimonGeering_AdminAssistant'
# projectName: 'AdminAssistant'
+ #
# Build ...
- task: DotNetCoreCLI@2
displayName: 'dotnet build'
@@ -44,6 +71,7 @@ stages:
command: 'build'
projects: 'src/AdminAssistant.slnx'
arguments: '--configuration Release --no-restore'
+ #
# Run Unit Tests ...
- task: DotNetCoreCLI@2
displayName: 'dotnet test'
@@ -53,6 +81,16 @@ stages:
arguments: '--configuration Release --no-build --collect "Code coverage" --settings "$(Build.SourcesDirectory)\src\AdminAssistant.Test\.runsettings" --filter "Category=Unit"'
publishTestResults: true
testRunTitle: 'Unit Tests'
+ #
+ # Dependency provenance report ...
+ - task: DotNetCoreCLI@2
+ displayName: "dotnet list package"
+ inputs:
+ command: 'custom'
+ custom: 'list'
+ arguments: 'package --include-transitive'
+ projects: 'src/AdminAssistant.slnx'
+ #
# Sonar Cloud Analyze and Publish ...
# - task: SonarCloudAnalyze@1
# - task: SonarCloudPublish@1
diff --git a/DevOps/PullRequest.yml b/DevOps/PullRequest.yml
index 982bef48..52d145f2 100644
--- a/DevOps/PullRequest.yml
+++ b/DevOps/PullRequest.yml
@@ -11,7 +11,7 @@ pr: # PR builds
- ./DevOps
- ./docs
-trigger: none # Disable CI Builds
+trigger: none # Disable CI Builds for security - require manual approval.
resources:
- repo: self
@@ -24,6 +24,21 @@ stages:
pool: # https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops
vmImage: 'windows-latest' # Need windows to get code coverage report - https://github.com/actions/virtual-environments/tree/master/images/win
steps:
+ #
+ # Remove Azure DevOps access token ...
+ - powershell: |
+ Remove-Item Env:SYSTEM_ACCESSTOKEN -ErrorAction SilentlyContinue
+ displayName: "Remove Azure DevOps access token"
+ #
+ # Secret usage detection ...
+ - powershell: |
+ $hits = Get-ChildItem -Recurse -File | Select-String -Pattern "PAT"
+ if ($hits) {
+ Write-Host "PAT detected — pipeline must not use long-lived secrets"
+ exit 1
+ }
+ displayName: "Check for PAT usage"
+ #
# Set-up build environment ...
- task: UseDotNet@2
displayName: 'Ensure CI uses correct sdk Version'
@@ -31,6 +46,15 @@ stages:
packageType: 'sdk'
version: '10.0.100'
includePreviewVersions: false
+ #
+ # Clear NuGet cache ...
+ - powershell: |
+ $nuget = Join-Path $HOME ".nuget/packages"
+ if (Test-Path $nuget) {
+ Remove-Item -Recurse -Force $nuget
+ }
+ displayName: "Clear NuGet cache"
+ #
# Restore dependencies ...
- task: DotNetCoreCLI@2
displayName: 'dotnet restore'
@@ -39,6 +63,8 @@ stages:
projects: 'src/AdminAssistant.slnx'
feedsToUse: 'config'
nugetConfigPath: 'DevOps/NuGet.config'
+ arguments: '--locked-mode'
+ #
# Sonar Cloud Prepare ...
# - task: SonarCloudPrepare@1
# inputs:
@@ -47,6 +73,7 @@ stages:
# scannerMode: 'MSBuild'
# projectKey: 'SimonGeering_AdminAssistant'
# projectName: 'AdminAssistant'
+ #
# Build ...
- task: DotNetCoreCLI@2
displayName: 'dotnet build'
@@ -54,6 +81,7 @@ stages:
command: 'build'
projects: 'src/AdminAssistant.slnx'
arguments: '--configuration Release --no-restore'
+ #
# Run Unit Tests ...
- task: DotNetCoreCLI@2
displayName: 'dotnet test'
@@ -63,6 +91,16 @@ stages:
arguments: '--configuration Release --no-build --collect "Code coverage" --settings "$(Build.SourcesDirectory)\src\AdminAssistant.Test\.runsettings" --filter "Category=Unit"'
publishTestResults: true
testRunTitle: 'Unit Tests'
+ #
+ # Dependency provenance report ...
+ - task: DotNetCoreCLI@2
+ displayName: "dotnet list package"
+ inputs:
+ command: 'custom'
+ custom: 'list'
+ arguments: 'package --include-transitive'
+ projects: 'src/AdminAssistant.slnx'
+ #
# Sonar Cloud Analyze and Publish ...
# - task: SonarCloudAnalyze@1
# - task: SonarCloudPublish@1
From 8a5fd52ff57e9eb79694a3bbf16ade28ecd72742 Mon Sep 17 00:00:00 2001
From: Simon Geering <25039878+SimonGeering@users.noreply.github.com>
Date: Tue, 11 Aug 2026 23:11:07 +0100
Subject: [PATCH 15/16] Fixed PS script and pr / triggers
---
DevOps/ContinuousIntegration.yml | 17 ++++-------------
DevOps/ManualFullBuild.yml | 7 ++++---
DevOps/PullRequest.yml | 17 ++++-------------
3 files changed, 12 insertions(+), 29 deletions(-)
diff --git a/DevOps/ContinuousIntegration.yml b/DevOps/ContinuousIntegration.yml
index c8155bfd..62ea3933 100644
--- a/DevOps/ContinuousIntegration.yml
+++ b/DevOps/ContinuousIntegration.yml
@@ -1,17 +1,7 @@
name: $(BuildID)
-trigger: # CI Builds
- batch: true
- branches:
- include:
- - dev
- - main
- paths:
- exclude:
- - ./DevOps
- - ./docs
-
pr: none # Disable PR builds for security - require manual approval.
+trigger: none # Disable CI Builds for security - require manual approval.
resources:
- repo: self
@@ -33,9 +23,10 @@ stages:
#
# Secret usage detection ...
- powershell: |
- $hits = Get-ChildItem -Recurse -File | Select-String -Pattern "PAT"
+ $patterns = @("ghp_","github_pat_","gho_","azdops_")
+ $hits = Get-ChildItem -Recurse -File | Select-String -Pattern $patterns
if ($hits) {
- Write-Host "PAT detected — pipeline must not use long-lived secrets"
+ Write-Host "Long-lived token detected — pipeline must not use secrets"
exit 1
}
displayName: "Check for PAT usage"
diff --git a/DevOps/ManualFullBuild.yml b/DevOps/ManualFullBuild.yml
index 7b77474d..ce4337b0 100644
--- a/DevOps/ManualFullBuild.yml
+++ b/DevOps/ManualFullBuild.yml
@@ -1,6 +1,6 @@
name: $(BuildID)
-pr: none # Disable PR builds
+pr: none # Disable PR builds for security - require manual approval.
trigger: none # Disable CI Builds for security - require manual approval.
resources:
@@ -22,9 +22,10 @@ stages:
#
# Secret usage detection ...
- powershell: |
- $hits = Get-ChildItem -Recurse -File | Select-String -Pattern "PAT"
+ $patterns = @("ghp_","github_pat_","gho_","azdops_")
+ $hits = Get-ChildItem -Recurse -File | Select-String -Pattern $patterns
if ($hits) {
- Write-Host "PAT detected — pipeline must not use long-lived secrets"
+ Write-Host "Long-lived token detected — pipeline must not use secrets"
exit 1
}
displayName: "Check for PAT usage"
diff --git a/DevOps/PullRequest.yml b/DevOps/PullRequest.yml
index 52d145f2..1f9ab6e7 100644
--- a/DevOps/PullRequest.yml
+++ b/DevOps/PullRequest.yml
@@ -1,16 +1,6 @@
name: $(BuildID)
-pr: # PR builds
- autoCancel: true
- branches:
- include:
- - dev
- - main
- paths:
- exclude:
- - ./DevOps
- - ./docs
-
+pr: none # Disable PR builds for security - require manual approval.
trigger: none # Disable CI Builds for security - require manual approval.
resources:
@@ -32,9 +22,10 @@ stages:
#
# Secret usage detection ...
- powershell: |
- $hits = Get-ChildItem -Recurse -File | Select-String -Pattern "PAT"
+ $patterns = @("ghp_","github_pat_","gho_","azdops_")
+ $hits = Get-ChildItem -Recurse -File | Select-String -Pattern $patterns
if ($hits) {
- Write-Host "PAT detected — pipeline must not use long-lived secrets"
+ Write-Host "Long-lived token detected — pipeline must not use secrets"
exit 1
}
displayName: "Check for PAT usage"
From deb83f9d9b5ef02704a42403b76a7d292e3ace6d Mon Sep 17 00:00:00 2001
From: Simon Geering <25039878+SimonGeering@users.noreply.github.com>
Date: Tue, 11 Aug 2026 23:39:26 +0100
Subject: [PATCH 16/16] CI fixes - interim
---
DevOps/ContinuousIntegration.yml | 14 ++++++++++++--
DevOps/ManualFullBuild.yml | 4 ++--
DevOps/PullRequest.yml | 14 ++++++++++++--
3 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/DevOps/ContinuousIntegration.yml b/DevOps/ContinuousIntegration.yml
index 62ea3933..2e192023 100644
--- a/DevOps/ContinuousIntegration.yml
+++ b/DevOps/ContinuousIntegration.yml
@@ -1,7 +1,17 @@
name: $(BuildID)
-pr: none # Disable PR builds for security - require manual approval.
-trigger: none # Disable CI Builds for security - require manual approval.
+trigger: # CI Builds
+ batch: true
+ branches:
+ include:
+ - dev
+ - main
+ paths:
+ exclude:
+ - ./DevOps
+ - ./docs
+
+pr: none # Disable PR builds
resources:
- repo: self
diff --git a/DevOps/ManualFullBuild.yml b/DevOps/ManualFullBuild.yml
index ce4337b0..b4851567 100644
--- a/DevOps/ManualFullBuild.yml
+++ b/DevOps/ManualFullBuild.yml
@@ -1,7 +1,7 @@
name: $(BuildID)
-pr: none # Disable PR builds for security - require manual approval.
-trigger: none # Disable CI Builds for security - require manual approval.
+pr: none # Disable PR builds
+trigger: none # Disable CI Builds
resources:
- repo: self
diff --git a/DevOps/PullRequest.yml b/DevOps/PullRequest.yml
index 1f9ab6e7..9f4c9ca3 100644
--- a/DevOps/PullRequest.yml
+++ b/DevOps/PullRequest.yml
@@ -1,7 +1,17 @@
name: $(BuildID)
-pr: none # Disable PR builds for security - require manual approval.
-trigger: none # Disable CI Builds for security - require manual approval.
+pr: # PR builds
+ autoCancel: true
+ branches:
+ include:
+ - dev
+ - main
+ paths:
+ exclude:
+ - ./DevOps
+ - ./docs
+
+trigger: none # Disable CI Builds
resources:
- repo: self