mostly ignore files

This commit is contained in:
= 2024-08-15 20:06:56 +02:00
parent 7bf1613927
commit 5c3c4aef27
361 changed files with 833 additions and 18016 deletions

57
.gitignore vendored
View File

@ -1,4 +1,35 @@
# ---> VisualStudio
# Created by https://www.toptal.com/developers/gitignore/api/dotnetcore,visualstudiocode,visualstudio
# Edit at https://www.toptal.com/developers/gitignore?templates=dotnetcore,visualstudiocode,visualstudio
### DotnetCore ###
# .NET Core build folders
bin/
obj/
# Common node modules locations
/node_modules
/wwwroot/node_modules
### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets
# Local History for Visual Studio Code
.history/
# Built Visual Studio Code Extensions
*.vsix
### VisualStudioCode Patch ###
# Ignore all local history of files
.history
.ionide
### VisualStudio ###
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
@ -303,8 +334,6 @@ node_modules/
*.dsp
# Visual Studio 6 technical files
*.ncb
*.aps
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
@ -378,15 +407,9 @@ MigrationBackup/
FodyWeavers.xsd
# VS Code files for those working on multiple tools
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
*.code-workspace
# Local History for Visual Studio Code
.history/
# Windows Installer files from build outputs
*.cab
@ -398,17 +421,7 @@ FodyWeavers.xsd
# JetBrains Rider
*.sln.iml
# ---> VisualStudioCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets
# Local History for Visual Studio Code
.history/
# Built Visual Studio Code Extensions
*.vsix
### VisualStudio Patch ###
# Additional files built by Visual Studio
# End of https://www.toptal.com/developers/gitignore/api/dotnetcore,visualstudiocode,visualstudio

Binary file not shown.

Binary file not shown.

View File

@ -1,484 +0,0 @@
{
"Version": 1,
"WorkspaceRootPath": "C:\\Users\\khouw\\source\\repos\\Medusa\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.core\\endpoints\\postcoreendpoint.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|solutionrelative:medusa.core\\endpoints\\postcoreendpoint.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.core\\handlers\\common\\card\\getrefidcardmanagmenthandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|solutionrelative:medusa.core\\handlers\\common\\card\\getrefidcardmanagmenthandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.core\\handlers\\common\\card\\inquirecardmanagmenthandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|solutionrelative:medusa.core\\handlers\\common\\card\\inquirecardmanagmenthandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.core\\handlers\\common\\putpcbeventhandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|solutionrelative:medusa.core\\handlers\\common\\putpcbeventhandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.core\\services\\handlerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|solutionrelative:medusa.core\\services\\handlerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.core\\handlers\\common\\card\\authpasscardmanagmenthandker.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|solutionrelative:medusa.core\\handlers\\common\\card\\authpasscardmanagmenthandker.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.core\\middlewares\\bodyparsingmiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|solutionrelative:medusa.core\\middlewares\\bodyparsingmiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.core\\handlers\\common\\otaupdates\\progressdlstatushandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|solutionrelative:medusa.core\\handlers\\common\\otaupdates\\progressdlstatushandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.core\\handlers\\common\\otaupdates\\listpackagehandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|solutionrelative:medusa.core\\handlers\\common\\otaupdates\\listpackagehandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.core\\handlers\\common\\getfacilityhandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|solutionrelative:medusa.core\\handlers\\common\\getfacilityhandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\khouw\\AppData\\Local\\SourceServer\\edb40751fff708a3da4e147a6af0640ab794d0ccebd8fd133c6b820cb9c77107\\Src\\Library\\Endpoint\\Endpoint.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.core\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|solutionrelative:medusa.core\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.core\\handlers\\common\\alivepcbtrackerhandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|solutionrelative:medusa.core\\handlers\\common\\alivepcbtrackerhandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\khouw\\AppData\\Local\\SourceServer\\909cacc2478379831232b3434105b37c53f0813049ac57e89232bb02b7970cfc\\src\\libraries\\System.Private.CoreLib\\src\\System\\Threading\\ThreadPoolWorkQueue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.core\\services\\ihandlerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|solutionrelative:medusa.core\\services\\ihandlerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.core\\handlers\\ihandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|solutionrelative:medusa.core\\handlers\\ihandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.core\\medusa.core.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}",
"RelativeMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|solutionrelative:medusa.core\\medusa.core.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}"
},
{
"AbsoluteMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.core\\handlers\\boot\\getserviceshandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|solutionrelative:medusa.core\\handlers\\boot\\getserviceshandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.core\\attributes\\handlerattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|solutionrelative:medusa.core\\attributes\\handlerattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{724FCE14-F3AC-4A5B-9F96-5F4BE90A6DCD}|Medusa.Web\\Server\\Medusa.Web.Server.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.web\\server\\medusa.web.server.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
"RelativeMoniker": "D:0:0:{724FCE14-F3AC-4A5B-9F96-5F4BE90A6DCD}|Medusa.Web\\Server\\Medusa.Web.Server.csproj|solutionrelative:medusa.web\\server\\medusa.web.server.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
},
{
"AbsoluteMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.core\\extensions\\servicecollectionextensions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|solutionrelative:medusa.core\\extensions\\servicecollectionextensions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\khouw\\AppData\\Local\\SourceServer\\af48b09c27d6b8e92adb20818ef3216dfd1c27ffe9efb5641d9c6859ac675ace\\src\\coreclr\\System.Private.CoreLib\\src\\System\\Threading\\Monitor.CoreCLR.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.core\\extensions\\applicationbuilderextensions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8C5A78E1-FAC6-487B-8C9F-FAA2A3F2C49D}|Medusa.Core\\Medusa.Core.csproj|solutionrelative:medusa.core\\extensions\\applicationbuilderextensions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{7117790F-732B-4FD4-B2D5-8303D4C6DB46}|Medusa.AppHost\\Medusa.AppHost.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.apphost\\appsettings.development.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
"RelativeMoniker": "D:0:0:{7117790F-732B-4FD4-B2D5-8303D4C6DB46}|Medusa.AppHost\\Medusa.AppHost.csproj|solutionrelative:medusa.apphost\\appsettings.development.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
},
{
"AbsoluteMoniker": "D:0:0:{7117790F-732B-4FD4-B2D5-8303D4C6DB46}|Medusa.AppHost\\Medusa.AppHost.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.apphost\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{7117790F-732B-4FD4-B2D5-8303D4C6DB46}|Medusa.AppHost\\Medusa.AppHost.csproj|solutionrelative:medusa.apphost\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{7117790F-732B-4FD4-B2D5-8303D4C6DB46}|Medusa.AppHost\\Medusa.AppHost.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.apphost\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
"RelativeMoniker": "D:0:0:{7117790F-732B-4FD4-B2D5-8303D4C6DB46}|Medusa.AppHost\\Medusa.AppHost.csproj|solutionrelative:medusa.apphost\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
},
{
"AbsoluteMoniker": "D:0:0:{7117790F-732B-4FD4-B2D5-8303D4C6DB46}|Medusa.AppHost\\Medusa.AppHost.csproj|c:\\users\\khouw\\source\\repos\\medusa\\medusa.apphost\\medusa.apphost.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
"RelativeMoniker": "D:0:0:{7117790F-732B-4FD4-B2D5-8303D4C6DB46}|Medusa.AppHost\\Medusa.AppHost.csproj|solutionrelative:medusa.apphost\\medusa.apphost.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\khouw\\.nuget\\packages\\aspire.hosting.apphost\\8.0.0\\build\\Aspire.Hosting.AppHost.targets||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 8,
"Children": [
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "GetRefIdCardManagmentHandler.cs",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Handlers\\Common\\Card\\GetRefIdCardManagmentHandler.cs",
"RelativeDocumentMoniker": "Medusa.Core\\Handlers\\Common\\Card\\GetRefIdCardManagmentHandler.cs",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Handlers\\Common\\Card\\GetRefIdCardManagmentHandler.cs",
"RelativeToolTip": "Medusa.Core\\Handlers\\Common\\Card\\GetRefIdCardManagmentHandler.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAABkAAAAMAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-13T22:48:34.622Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "PutPcbEventHandler.cs",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Handlers\\Common\\PutPcbEventHandler.cs",
"RelativeDocumentMoniker": "Medusa.Core\\Handlers\\Common\\PutPcbEventHandler.cs",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Handlers\\Common\\PutPcbEventHandler.cs",
"RelativeToolTip": "Medusa.Core\\Handlers\\Common\\PutPcbEventHandler.cs",
"ViewState": "AQIAAAwAAAAAAAAAAAAcwBoAAAAMAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-13T21:33:24.752Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 17,
"Title": "GetServicesHandler.cs",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Handlers\\Boot\\GetServicesHandler.cs",
"RelativeDocumentMoniker": "Medusa.Core\\Handlers\\Boot\\GetServicesHandler.cs",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Handlers\\Boot\\GetServicesHandler.cs",
"RelativeToolTip": "Medusa.Core\\Handlers\\Boot\\GetServicesHandler.cs",
"ViewState": "AQIAABYAAAAAAAAAAAAAAA4AAAA0AAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-13T08:16:00.258Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 18,
"Title": "HandlerAttribute.cs",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Attributes\\HandlerAttribute.cs",
"RelativeDocumentMoniker": "Medusa.Core\\Attributes\\HandlerAttribute.cs",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Attributes\\HandlerAttribute.cs",
"RelativeToolTip": "Medusa.Core\\Attributes\\HandlerAttribute.cs",
"ViewState": "AQIAAAEAAAAAAAAAAAAAAAMAAAARAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-12T23:10:43.098Z"
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "HandlerService.cs",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Services\\HandlerService.cs",
"RelativeDocumentMoniker": "Medusa.Core\\Services\\HandlerService.cs",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Services\\HandlerService.cs",
"RelativeToolTip": "Medusa.Core\\Services\\HandlerService.cs",
"ViewState": "AQIAAAsAAAAAAAAAAAAqwCEAAAAUAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-12T11:03:18.969Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "InquireCardManagmentHandler.cs",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Handlers\\Common\\Card\\InquireCardManagmentHandler.cs",
"RelativeDocumentMoniker": "Medusa.Core\\Handlers\\Common\\Card\\InquireCardManagmentHandler.cs",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Handlers\\Common\\Card\\InquireCardManagmentHandler.cs",
"RelativeToolTip": "Medusa.Core\\Handlers\\Common\\Card\\InquireCardManagmentHandler.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAsAAABJAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-13T21:51:38.752Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 5,
"Title": "AuthPassCardManagmentHandker.cs",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Handlers\\Common\\Card\\AuthPassCardManagmentHandker.cs",
"RelativeDocumentMoniker": "Medusa.Core\\Handlers\\Common\\Card\\AuthPassCardManagmentHandker.cs",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Handlers\\Common\\Card\\AuthPassCardManagmentHandker.cs",
"RelativeToolTip": "Medusa.Core\\Handlers\\Common\\Card\\AuthPassCardManagmentHandker.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAwAAABCAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-13T21:55:49.315Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 11,
"Title": "Program.cs",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Program.cs",
"RelativeDocumentMoniker": "Medusa.Core\\Program.cs",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Program.cs",
"RelativeToolTip": "Medusa.Core\\Program.cs",
"ViewState": "AQIAAAcAAAAAAAAAAAAAABUAAAArAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-12T11:00:55.364Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "PostCoreEndpoint.cs",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Endpoints\\PostCoreEndpoint.cs",
"RelativeDocumentMoniker": "Medusa.Core\\Endpoints\\PostCoreEndpoint.cs",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Endpoints\\PostCoreEndpoint.cs",
"RelativeToolTip": "Medusa.Core\\Endpoints\\PostCoreEndpoint.cs",
"ViewState": "AQIAACkAAAAAAAAAAAAAAEIAAABtAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-12T10:59:18.037Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "ProgressDLStatusHandler.cs",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Handlers\\Common\\OTAUpdates\\ProgressDLStatusHandler.cs",
"RelativeDocumentMoniker": "Medusa.Core\\Handlers\\Common\\OTAUpdates\\ProgressDLStatusHandler.cs",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Handlers\\Common\\OTAUpdates\\ProgressDLStatusHandler.cs",
"RelativeToolTip": "Medusa.Core\\Handlers\\Common\\OTAUpdates\\ProgressDLStatusHandler.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAABAAAAAtAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-13T21:41:53.975Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 15,
"Title": "IHandler.cs",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Handlers\\IHandler.cs",
"RelativeDocumentMoniker": "Medusa.Core\\Handlers\\IHandler.cs",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Handlers\\IHandler.cs",
"RelativeToolTip": "Medusa.Core\\Handlers\\IHandler.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAYAAAAjAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-12T23:11:03.231Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 6,
"Title": "BodyParsingMiddleware.cs",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Middlewares\\BodyParsingMiddleware.cs",
"RelativeDocumentMoniker": "Medusa.Core\\Middlewares\\BodyParsingMiddleware.cs",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Middlewares\\BodyParsingMiddleware.cs",
"RelativeToolTip": "Medusa.Core\\Middlewares\\BodyParsingMiddleware.cs",
"ViewState": "AQIAAAgAAAAAAAAAAAAuwCYAAABXAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-12T23:21:31.455Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 8,
"Title": "ListPackageHandler.cs",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Handlers\\Common\\OTAUpdates\\ListPackageHandler.cs",
"RelativeDocumentMoniker": "Medusa.Core\\Handlers\\Common\\OTAUpdates\\ListPackageHandler.cs",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Handlers\\Common\\OTAUpdates\\ListPackageHandler.cs",
"RelativeToolTip": "Medusa.Core\\Handlers\\Common\\OTAUpdates\\ListPackageHandler.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAABQAAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-13T19:55:09.71Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 12,
"Title": "AlivePcbTrackerHandler.cs",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Handlers\\Common\\AlivePcbTrackerHandler.cs",
"RelativeDocumentMoniker": "Medusa.Core\\Handlers\\Common\\AlivePcbTrackerHandler.cs",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Handlers\\Common\\AlivePcbTrackerHandler.cs",
"RelativeToolTip": "Medusa.Core\\Handlers\\Common\\AlivePcbTrackerHandler.cs",
"ViewState": "AQIAAAYAAAAAAAAAAAAtwA0AAAAIAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-13T12:47:03.969Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 9,
"Title": "GetFacilityHandler.cs",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Handlers\\Common\\GetFacilityHandler.cs",
"RelativeDocumentMoniker": "Medusa.Core\\Handlers\\Common\\GetFacilityHandler.cs",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Handlers\\Common\\GetFacilityHandler.cs",
"RelativeToolTip": "Medusa.Core\\Handlers\\Common\\GetFacilityHandler.cs",
"ViewState": "AQIAACUAAAAAAAAAAAAAAD0AAAAMAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-13T13:00:35.411Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 10,
"Title": "Endpoint.cs",
"DocumentMoniker": "C:\\Users\\khouw\\AppData\\Local\\SourceServer\\edb40751fff708a3da4e147a6af0640ab794d0ccebd8fd133c6b820cb9c77107\\Src\\Library\\Endpoint\\Endpoint.cs",
"RelativeDocumentMoniker": "..\\..\\..\\AppData\\Local\\SourceServer\\edb40751fff708a3da4e147a6af0640ab794d0ccebd8fd133c6b820cb9c77107\\Src\\Library\\Endpoint\\Endpoint.cs",
"ToolTip": "C:\\Users\\khouw\\AppData\\Local\\SourceServer\\edb40751fff708a3da4e147a6af0640ab794d0ccebd8fd133c6b820cb9c77107\\Src\\Library\\Endpoint\\Endpoint.cs",
"RelativeToolTip": "..\\..\\..\\AppData\\Local\\SourceServer\\edb40751fff708a3da4e147a6af0640ab794d0ccebd8fd133c6b820cb9c77107\\Src\\Library\\Endpoint\\Endpoint.cs",
"ViewState": "AQIAAE0AAAAAAAAAAAAqwF4AAAAQAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-13T19:54:06.74Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 13,
"Title": "ThreadPoolWorkQueue.cs",
"DocumentMoniker": "C:\\Users\\khouw\\AppData\\Local\\SourceServer\\909cacc2478379831232b3434105b37c53f0813049ac57e89232bb02b7970cfc\\src\\libraries\\System.Private.CoreLib\\src\\System\\Threading\\ThreadPoolWorkQueue.cs",
"RelativeDocumentMoniker": "..\\..\\..\\AppData\\Local\\SourceServer\\909cacc2478379831232b3434105b37c53f0813049ac57e89232bb02b7970cfc\\src\\libraries\\System.Private.CoreLib\\src\\System\\Threading\\ThreadPoolWorkQueue.cs",
"ToolTip": "C:\\Users\\khouw\\AppData\\Local\\SourceServer\\909cacc2478379831232b3434105b37c53f0813049ac57e89232bb02b7970cfc\\src\\libraries\\System.Private.CoreLib\\src\\System\\Threading\\ThreadPoolWorkQueue.cs",
"RelativeToolTip": "..\\..\\..\\AppData\\Local\\SourceServer\\909cacc2478379831232b3434105b37c53f0813049ac57e89232bb02b7970cfc\\src\\libraries\\System.Private.CoreLib\\src\\System\\Threading\\ThreadPoolWorkQueue.cs",
"ViewState": "AQIAAH0DAAAAAAAAAAApwJADAAAUAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-13T19:54:10.357Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 14,
"Title": "IHandlerService.cs",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Services\\IHandlerService.cs",
"RelativeDocumentMoniker": "Medusa.Core\\Services\\IHandlerService.cs",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Services\\IHandlerService.cs",
"RelativeToolTip": "Medusa.Core\\Services\\IHandlerService.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAgAAAAYAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-12T11:03:19.833Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 16,
"Title": "Medusa.Core",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Medusa.Core.csproj",
"RelativeDocumentMoniker": "Medusa.Core\\Medusa.Core.csproj",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Medusa.Core.csproj",
"RelativeToolTip": "Medusa.Core\\Medusa.Core.csproj",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAoAAAANAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
"WhenOpened": "2024-08-13T18:12:47.277Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 20,
"Title": "ServiceCollectionExtensions.cs",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Extensions\\ServiceCollectionExtensions.cs",
"RelativeDocumentMoniker": "Medusa.Core\\Extensions\\ServiceCollectionExtensions.cs",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Extensions\\ServiceCollectionExtensions.cs",
"RelativeToolTip": "Medusa.Core\\Extensions\\ServiceCollectionExtensions.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAgAAAB7AAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-12T11:01:45.739Z"
},
{
"$type": "Document",
"DocumentIndex": 19,
"Title": "Medusa.Web.Server.csproj",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Web\\Server\\Medusa.Web.Server.csproj",
"RelativeDocumentMoniker": "Medusa.Web\\Server\\Medusa.Web.Server.csproj",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Web\\Server\\Medusa.Web.Server.csproj",
"RelativeToolTip": "Medusa.Web\\Server\\Medusa.Web.Server.csproj",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAkAAAAgAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
"WhenOpened": "2024-08-13T10:49:04.975Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 21,
"Title": "Monitor.CoreCLR.cs",
"DocumentMoniker": "C:\\Users\\khouw\\AppData\\Local\\SourceServer\\af48b09c27d6b8e92adb20818ef3216dfd1c27ffe9efb5641d9c6859ac675ace\\src\\coreclr\\System.Private.CoreLib\\src\\System\\Threading\\Monitor.CoreCLR.cs",
"RelativeDocumentMoniker": "..\\..\\..\\AppData\\Local\\SourceServer\\af48b09c27d6b8e92adb20818ef3216dfd1c27ffe9efb5641d9c6859ac675ace\\src\\coreclr\\System.Private.CoreLib\\src\\System\\Threading\\Monitor.CoreCLR.cs",
"ToolTip": "C:\\Users\\khouw\\AppData\\Local\\SourceServer\\af48b09c27d6b8e92adb20818ef3216dfd1c27ffe9efb5641d9c6859ac675ace\\src\\coreclr\\System.Private.CoreLib\\src\\System\\Threading\\Monitor.CoreCLR.cs",
"RelativeToolTip": "..\\..\\..\\AppData\\Local\\SourceServer\\af48b09c27d6b8e92adb20818ef3216dfd1c27ffe9efb5641d9c6859ac675ace\\src\\coreclr\\System.Private.CoreLib\\src\\System\\Threading\\Monitor.CoreCLR.cs",
"ViewState": "AQIAAI0AAAAAAAAAAAAawJsAAAAMAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-13T09:13:59.869Z"
},
{
"$type": "Document",
"DocumentIndex": 22,
"Title": "ApplicationBuilderExtensions.cs",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Extensions\\ApplicationBuilderExtensions.cs",
"RelativeDocumentMoniker": "Medusa.Core\\Extensions\\ApplicationBuilderExtensions.cs",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.Core\\Extensions\\ApplicationBuilderExtensions.cs",
"RelativeToolTip": "Medusa.Core\\Extensions\\ApplicationBuilderExtensions.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAkAAAAIAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-12T11:02:04.376Z"
},
{
"$type": "Document",
"DocumentIndex": 27,
"Title": "Aspire.Hosting.AppHost.targets",
"DocumentMoniker": "C:\\Users\\khouw\\.nuget\\packages\\aspire.hosting.apphost\\8.0.0\\build\\Aspire.Hosting.AppHost.targets",
"RelativeDocumentMoniker": "..\\..\\..\\.nuget\\packages\\aspire.hosting.apphost\\8.0.0\\build\\Aspire.Hosting.AppHost.targets",
"ToolTip": "C:\\Users\\khouw\\.nuget\\packages\\aspire.hosting.apphost\\8.0.0\\build\\Aspire.Hosting.AppHost.targets",
"RelativeToolTip": "..\\..\\..\\.nuget\\packages\\aspire.hosting.apphost\\8.0.0\\build\\Aspire.Hosting.AppHost.targets",
"ViewState": "AQIAAIsAAAAAAAAAAAAvwJ8AAAAEAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003801|",
"WhenOpened": "2024-08-13T08:26:18.975Z"
},
{
"$type": "Document",
"DocumentIndex": 26,
"Title": "Medusa.AppHost.csproj",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost\\Medusa.AppHost.csproj",
"RelativeDocumentMoniker": "Medusa.AppHost\\Medusa.AppHost.csproj",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost\\Medusa.AppHost.csproj",
"RelativeToolTip": "Medusa.AppHost\\Medusa.AppHost.csproj",
"ViewState": "AQIAAAMAAAAAAAAAAAAAABEAAAAtAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
"WhenOpened": "2024-08-13T08:26:41.884Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 25,
"Title": "appsettings.json",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost\\appsettings.json",
"RelativeDocumentMoniker": "Medusa.AppHost\\appsettings.json",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost\\appsettings.json",
"RelativeToolTip": "Medusa.AppHost\\appsettings.json",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
"WhenOpened": "2024-08-13T08:27:17.321Z"
},
{
"$type": "Document",
"DocumentIndex": 23,
"Title": "appsettings.Development.json",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost\\appsettings.Development.json",
"RelativeDocumentMoniker": "Medusa.AppHost\\appsettings.Development.json",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost\\appsettings.Development.json",
"RelativeToolTip": "Medusa.AppHost\\appsettings.Development.json",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAkAAAADAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
"WhenOpened": "2024-08-13T08:27:18.677Z"
},
{
"$type": "Document",
"DocumentIndex": 24,
"Title": "Program.cs",
"DocumentMoniker": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost\\Program.cs",
"RelativeDocumentMoniker": "Medusa.AppHost\\Program.cs",
"ToolTip": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost\\Program.cs",
"RelativeToolTip": "Medusa.AppHost\\Program.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAQAAAApAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-08-13T08:28:18.103Z"
}
]
}
]
}
]
}

View File

@ -11,10 +11,14 @@
<ItemGroup>
<PackageReference Include="Aspire.Hosting.AppHost" Version="8.0.0" />
<PackageReference Include="Aspire.Hosting.PostgreSQL" Version="8.1.0" />
<PackageReference Include="Aspire.Hosting.RabbitMQ" Version="8.1.0" />
<PackageReference Include="Aspire.Hosting.Redis" Version="8.1.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Medusa.Core\Medusa.Core.csproj" />
<ProjectReference Include="..\Medusa.Data\Medusa.Data.csproj" />
<ProjectReference Include="..\Medusa.Web\Server\Medusa.Web.Server.csproj" />
</ItemGroup>

View File

@ -1,12 +1,38 @@
using Aspire.Hosting;
using Medusa.AppHost;
var builder = DistributedApplication.CreateBuilder(args);
var weburl = builder.AddParameter("weburl");
var dbVolumeName = "MedusaDB";
var cache = builder.AddRedis("cache")
.WithRedisCommander()
.WithOtlpExporter();
var postgres = builder.AddPostgres("database", password: builder.AddParameter("dbPass", true))
.WithDataVolume(dbVolumeName)
.WithPgAdmin()
.WithOtlpExporter();
var messenger = builder.AddRabbitMQ("messenger")
.WithManagementPlugin()
.WithOtlpExporter();
var medusaDB = postgres.AddDatabase(dbVolumeName);
builder.AddProject<Projects.Medusa_Core>("Medusa-core")
.WithReference(cache)
.WithReference(messenger)
.WithEnvironment("weburl", weburl);
builder.AddProject<Projects.Medusa_Web_Server>("Medusa-web-server");
builder.AddProject<Projects.Medusa_Data>("medusa-data")
.WithReference(cache)
.WithReference(messenger)
.WithReference(medusaDB)
.WaitOn(postgres);
builder.Build().Run();

View File

@ -0,0 +1,223 @@
using System.Collections.Concurrent;
using System.Runtime.ExceptionServices;
using Aspire.Hosting.Lifecycle;
using Microsoft.Extensions.Diagnostics.HealthChecks;
using Microsoft.Extensions.Logging;
using Polly;
using Polly.Retry;
namespace Medusa.AppHost;
// An annotation that associates a health check factory with a resource
public class HealthCheckAnnotation(Func<string, IHealthCheck> healthCheckFactory) : IResourceAnnotation
{
public Func<string, IHealthCheck> HealthCheckFactory { get; } = healthCheckFactory;
}
public static class WaitForDependenciesExtensions
{
/// <summary>
/// Wait for a resource to be running before starting another resource.
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="builder"></param>
/// <param name="other"></param>
/// <returns></returns>
public static IResourceBuilder<T> WaitOn<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> other)
where T : IResource
{
builder.ApplicationBuilder.AddWaitForDependencies();
return builder.WithAnnotation(new WaitOnAnnotation(other.Resource));
}
/// <summary>
/// Adds a lifecycle hook that waits for all dependencies to be "running" before starting resources. If that resource
/// has a health check, it will be executed before the resource is considered "running".
/// </summary>
/// <param name="builder">The <see cref="IDistributedApplicationBuilder"/>.</param>
private static IDistributedApplicationBuilder AddWaitForDependencies(this IDistributedApplicationBuilder builder)
{
builder.Services.TryAddLifecycleHook<WaitForDependenciesRunningHook>();
return builder;
}
private class WaitOnAnnotation(IResource resource) : IResourceAnnotation
{
public IResource Resource { get; } = resource;
}
private class WaitForDependenciesRunningHook(DistributedApplicationExecutionContext executionContext,
ResourceNotificationService resourceNotificationService) :
IDistributedApplicationLifecycleHook,
IAsyncDisposable
{
private readonly CancellationTokenSource _cts = new();
public Task BeforeStartAsync(DistributedApplicationModel appModel, CancellationToken cancellationToken = default)
{
// We don't need to execute any of this logic in publish mode
if(executionContext.IsPublishMode)
{
return Task.CompletedTask;
}
// The global list of resources being waited on
var waitingResources = new ConcurrentDictionary<IResource, TaskCompletionSource>();
// For each resource, add an environment callback that waits for dependencies to be running
foreach(var r in appModel.Resources)
{
var resourcesToWaitOn = r.Annotations.OfType<WaitOnAnnotation>().Select(a => a.Resource).Distinct().ToArray();
if(resourcesToWaitOn.Length == 0)
{
continue;
}
// Abuse the environment callback to wait for dependencies to be running
r.Annotations.Add(new EnvironmentCallbackAnnotation(async context =>
{
var dependencies = new List<Task>();
// Find connection strings and endpoint references and get the resource they point to
foreach(var resource in resourcesToWaitOn)
{
// REVIEW: This logic does not handle cycles in the dependency graph (that would result in a deadlock)
// Don't wait for yourself
if(resource != r && resource is not null)
{
context.Logger?.LogInformation("Waiting for {Resource} to be running", resource.Name);
dependencies.Add(waitingResources.GetOrAdd(resource, _ => new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously)).Task);
}
}
await Task.WhenAll(dependencies).WaitAsync(context.CancellationToken);
}));
}
_ = Task.Run(async () =>
{
var stoppingToken = _cts.Token;
// Watch for global resource state changes
await foreach(var resourceEvent in resourceNotificationService.WatchAsync(stoppingToken))
{
// These states are terminal but we need a better way to detect that
if(resourceEvent.Snapshot.State == "FailedToStart" ||
resourceEvent.Snapshot.State == "Exited" ||
resourceEvent.Snapshot.ExitCode is not null)
{
if(waitingResources.TryRemove(resourceEvent.Resource, out var tcs))
{
tcs.TrySetCanceled();
}
}
else if(resourceEvent.Snapshot.State == "Running" && waitingResources.TryRemove(resourceEvent.Resource, out var tcs))
{
_ = DoTheHealthCheck(resourceEvent, tcs);
}
}
},
cancellationToken);
return Task.CompletedTask;
}
private async Task DoTheHealthCheck(ResourceEvent resourceEvent, TaskCompletionSource tcs)
{
var url = resourceEvent.Snapshot.Urls.Select(u => new Uri(u.Url)).FirstOrDefault();
resourceEvent.Resource.TryGetLastAnnotation<HealthCheckAnnotation>(out var healthCheckAnnotation);
Func<CancellationToken, ValueTask>? operation = (url?.Scheme, healthCheckAnnotation?.HealthCheckFactory) switch
{
("http" or "https", null) => async (ct) =>
{
// For an HTTP resource, see if we can make a request to the endpoint
using var client = new HttpClient();
var response = await client.GetAsync(url, ct);
}
,
(_, Func<string, IHealthCheck> factory) => async (ct) =>
{
if(resourceEvent.Resource is not IResourceWithConnectionString c)
{
return;
}
// Get the connection string from the resource so we can create the health check
// with the correct connection information
// TODO: We could cache this lookup
var cs = await c.GetConnectionStringAsync(ct);
if(cs is null)
{
return;
}
var check = factory(cs);
var context = new HealthCheckContext()
{
Registration = new HealthCheckRegistration("", check, HealthStatus.Unhealthy, [])
};
var result = await check.CheckHealthAsync(context, ct);
if(result.Exception is not null)
{
ExceptionDispatchInfo.Throw(result.Exception);
}
if(result.Status != HealthStatus.Healthy)
{
throw new Exception("Health check failed");
}
}
,
_ => null,
};
try
{
if(operation is not null)
{
await ResiliencePipeline.ExecuteAsync(operation);
}
tcs.TrySetResult();
}
catch(Exception ex)
{
tcs.TrySetException(ex);
}
}
private ResiliencePipeline? _resiliencePipeline;
private ResiliencePipeline ResiliencePipeline => _resiliencePipeline ??= CreateResiliencyPipeline();
private static ResiliencePipeline CreateResiliencyPipeline()
{
var retryUntilCancelled = new RetryStrategyOptions()
{
ShouldHandle = new PredicateBuilder().HandleInner<Exception>(),
BackoffType = DelayBackoffType.Exponential,
MaxRetryAttempts = 5,
UseJitter = true,
MaxDelay = TimeSpan.FromSeconds(30)
};
return new ResiliencePipelineBuilder().AddRetry(retryUntilCancelled).Build();
}
public ValueTask DisposeAsync()
{
_cts.Cancel();
return default;
}
}
}

View File

@ -6,6 +6,7 @@
}
},
"Parameters": {
"dbpass": "kay2001",
"weburl": "https://localhost"
}
}

View File

@ -1,914 +0,0 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v8.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v8.0": {
"Medusa.AppHost/1.0.0": {
"dependencies": {
"Aspire.Hosting.AppHost": "8.0.0"
},
"runtime": {
"Medusa.AppHost.dll": {}
}
},
"Aspire.Hosting/8.0.0": {
"dependencies": {
"Grpc.AspNetCore": "2.60.0",
"KubernetesClient": "13.0.11",
"Microsoft.Extensions.Hosting": "8.0.0",
"Polly.Core": "8.3.1"
},
"runtime": {
"lib/net8.0/Aspire.Hosting.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.24.25802"
}
},
"resources": {
"lib/net8.0/cs/Aspire.Hosting.resources.dll": {
"locale": "cs"
},
"lib/net8.0/de/Aspire.Hosting.resources.dll": {
"locale": "de"
},
"lib/net8.0/es/Aspire.Hosting.resources.dll": {
"locale": "es"
},
"lib/net8.0/fr/Aspire.Hosting.resources.dll": {
"locale": "fr"
},
"lib/net8.0/it/Aspire.Hosting.resources.dll": {
"locale": "it"
},
"lib/net8.0/ja/Aspire.Hosting.resources.dll": {
"locale": "ja"
},
"lib/net8.0/ko/Aspire.Hosting.resources.dll": {
"locale": "ko"
},
"lib/net8.0/pl/Aspire.Hosting.resources.dll": {
"locale": "pl"
},
"lib/net8.0/pt-BR/Aspire.Hosting.resources.dll": {
"locale": "pt-BR"
},
"lib/net8.0/ru/Aspire.Hosting.resources.dll": {
"locale": "ru"
},
"lib/net8.0/tr/Aspire.Hosting.resources.dll": {
"locale": "tr"
},
"lib/net8.0/zh-Hans/Aspire.Hosting.resources.dll": {
"locale": "zh-Hans"
},
"lib/net8.0/zh-Hant/Aspire.Hosting.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Aspire.Hosting.AppHost/8.0.0": {
"dependencies": {
"Aspire.Hosting": "8.0.0"
},
"runtime": {
"lib/net8.0/Aspire.Hosting.AppHost.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.24.25802"
}
}
},
"Fractions/7.3.0": {
"runtime": {
"lib/netstandard2.1/Fractions.dll": {
"assemblyVersion": "7.3.0.0",
"fileVersion": "7.3.0.0"
}
}
},
"Google.Protobuf/3.24.0": {
"runtime": {
"lib/net5.0/Google.Protobuf.dll": {
"assemblyVersion": "3.24.0.0",
"fileVersion": "3.24.0.0"
}
}
},
"Grpc.AspNetCore/2.60.0": {
"dependencies": {
"Google.Protobuf": "3.24.0",
"Grpc.AspNetCore.Server.ClientFactory": "2.60.0",
"Grpc.Tools": "2.60.0"
}
},
"Grpc.AspNetCore.Server/2.60.0": {
"dependencies": {
"Grpc.Net.Common": "2.60.0"
},
"runtime": {
"lib/net8.0/Grpc.AspNetCore.Server.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.60.0.0"
}
}
},
"Grpc.AspNetCore.Server.ClientFactory/2.60.0": {
"dependencies": {
"Grpc.AspNetCore.Server": "2.60.0",
"Grpc.Net.ClientFactory": "2.60.0"
},
"runtime": {
"lib/net8.0/Grpc.AspNetCore.Server.ClientFactory.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.60.0.0"
}
}
},
"Grpc.Core.Api/2.60.0": {
"runtime": {
"lib/netstandard2.1/Grpc.Core.Api.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.60.0.0"
}
}
},
"Grpc.Net.Client/2.60.0": {
"dependencies": {
"Grpc.Net.Common": "2.60.0",
"Microsoft.Extensions.Logging.Abstractions": "8.0.0"
},
"runtime": {
"lib/net8.0/Grpc.Net.Client.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.60.0.0"
}
}
},
"Grpc.Net.ClientFactory/2.60.0": {
"dependencies": {
"Grpc.Net.Client": "2.60.0",
"Microsoft.Extensions.Http": "6.0.0"
},
"runtime": {
"lib/net8.0/Grpc.Net.ClientFactory.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.60.0.0"
}
}
},
"Grpc.Net.Common/2.60.0": {
"dependencies": {
"Grpc.Core.Api": "2.60.0"
},
"runtime": {
"lib/net8.0/Grpc.Net.Common.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.60.0.0"
}
}
},
"Grpc.Tools/2.60.0": {},
"IdentityModel/5.2.0": {
"runtime": {
"lib/net5.0/IdentityModel.dll": {
"assemblyVersion": "5.2.0.0",
"fileVersion": "5.2.0.0"
}
}
},
"IdentityModel.OidcClient/5.2.1": {
"dependencies": {
"IdentityModel": "5.2.0",
"Microsoft.Extensions.Logging": "8.0.0"
},
"runtime": {
"lib/netstandard2.0/IdentityModel.OidcClient.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.2.1.0"
}
}
},
"KubernetesClient/13.0.11": {
"dependencies": {
"Fractions": "7.3.0",
"IdentityModel.OidcClient": "5.2.1",
"Microsoft.VisualStudio.SlnGen": "11.1.0",
"System.IdentityModel.Tokens.Jwt": "7.1.2",
"YamlDotNet": "15.1.0",
"prometheus-net": "8.2.1"
},
"runtime": {
"lib/net8.0/KubernetesClient.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.11.196"
}
}
},
"Microsoft.Extensions.Configuration/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.Configuration.Abstractions/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.Configuration.Binder/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0"
}
},
"Microsoft.Extensions.Configuration.CommandLine/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "8.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0"
}
},
"Microsoft.Extensions.Configuration.EnvironmentVariables/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "8.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0"
}
},
"Microsoft.Extensions.Configuration.FileExtensions/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "8.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
"Microsoft.Extensions.FileProviders.Physical": "8.0.0",
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.Configuration.Json/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "8.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "8.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
"System.Text.Json": "8.0.0"
}
},
"Microsoft.Extensions.Configuration.UserSecrets/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
"Microsoft.Extensions.Configuration.Json": "8.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
"Microsoft.Extensions.FileProviders.Physical": "8.0.0"
}
},
"Microsoft.Extensions.DependencyInjection/8.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.0": {},
"Microsoft.Extensions.Diagnostics/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "8.0.0",
"Microsoft.Extensions.Diagnostics.Abstractions": "8.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0"
}
},
"Microsoft.Extensions.Diagnostics.Abstractions/8.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
"Microsoft.Extensions.Options": "8.0.0",
"System.Diagnostics.DiagnosticSource": "8.0.0"
}
},
"Microsoft.Extensions.FileProviders.Abstractions/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.FileProviders.Physical/8.0.0": {
"dependencies": {
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
"Microsoft.Extensions.FileSystemGlobbing": "8.0.0",
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.FileSystemGlobbing/8.0.0": {},
"Microsoft.Extensions.Hosting/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "8.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
"Microsoft.Extensions.Configuration.Binder": "8.0.0",
"Microsoft.Extensions.Configuration.CommandLine": "8.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "8.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "8.0.0",
"Microsoft.Extensions.Configuration.Json": "8.0.0",
"Microsoft.Extensions.Configuration.UserSecrets": "8.0.0",
"Microsoft.Extensions.DependencyInjection": "8.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
"Microsoft.Extensions.Diagnostics": "8.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
"Microsoft.Extensions.FileProviders.Physical": "8.0.0",
"Microsoft.Extensions.Hosting.Abstractions": "8.0.0",
"Microsoft.Extensions.Logging": "8.0.0",
"Microsoft.Extensions.Logging.Abstractions": "8.0.0",
"Microsoft.Extensions.Logging.Configuration": "8.0.0",
"Microsoft.Extensions.Logging.Console": "8.0.0",
"Microsoft.Extensions.Logging.Debug": "8.0.0",
"Microsoft.Extensions.Logging.EventLog": "8.0.0",
"Microsoft.Extensions.Logging.EventSource": "8.0.0",
"Microsoft.Extensions.Options": "8.0.0"
}
},
"Microsoft.Extensions.Hosting.Abstractions/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
"Microsoft.Extensions.Diagnostics.Abstractions": "8.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
"Microsoft.Extensions.Logging.Abstractions": "8.0.0"
}
},
"Microsoft.Extensions.Http/6.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
"Microsoft.Extensions.Logging": "8.0.0",
"Microsoft.Extensions.Logging.Abstractions": "8.0.0",
"Microsoft.Extensions.Options": "8.0.0"
}
},
"Microsoft.Extensions.Logging/8.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "8.0.0",
"Microsoft.Extensions.Logging.Abstractions": "8.0.0",
"Microsoft.Extensions.Options": "8.0.0"
}
},
"Microsoft.Extensions.Logging.Abstractions/8.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
}
},
"Microsoft.Extensions.Logging.Configuration/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "8.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
"Microsoft.Extensions.Configuration.Binder": "8.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
"Microsoft.Extensions.Logging": "8.0.0",
"Microsoft.Extensions.Logging.Abstractions": "8.0.0",
"Microsoft.Extensions.Options": "8.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0"
}
},
"Microsoft.Extensions.Logging.Console/8.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
"Microsoft.Extensions.Logging": "8.0.0",
"Microsoft.Extensions.Logging.Abstractions": "8.0.0",
"Microsoft.Extensions.Logging.Configuration": "8.0.0",
"Microsoft.Extensions.Options": "8.0.0",
"System.Text.Json": "8.0.0"
}
},
"Microsoft.Extensions.Logging.Debug/8.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
"Microsoft.Extensions.Logging": "8.0.0",
"Microsoft.Extensions.Logging.Abstractions": "8.0.0"
}
},
"Microsoft.Extensions.Logging.EventLog/8.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
"Microsoft.Extensions.Logging": "8.0.0",
"Microsoft.Extensions.Logging.Abstractions": "8.0.0",
"Microsoft.Extensions.Options": "8.0.0",
"System.Diagnostics.EventLog": "8.0.0"
}
},
"Microsoft.Extensions.Logging.EventSource/8.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
"Microsoft.Extensions.Logging": "8.0.0",
"Microsoft.Extensions.Logging.Abstractions": "8.0.0",
"Microsoft.Extensions.Options": "8.0.0",
"Microsoft.Extensions.Primitives": "8.0.0",
"System.Text.Json": "8.0.0"
}
},
"Microsoft.Extensions.ObjectPool/7.0.0": {},
"Microsoft.Extensions.Options/8.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.Options.ConfigurationExtensions/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
"Microsoft.Extensions.Configuration.Binder": "8.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
"Microsoft.Extensions.Options": "8.0.0",
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.Primitives/8.0.0": {},
"Microsoft.IdentityModel.Abstractions/7.1.2": {
"runtime": {
"lib/net8.0/Microsoft.IdentityModel.Abstractions.dll": {
"assemblyVersion": "7.1.2.0",
"fileVersion": "7.1.2.41121"
}
}
},
"Microsoft.IdentityModel.JsonWebTokens/7.1.2": {
"dependencies": {
"Microsoft.IdentityModel.Tokens": "7.1.2"
},
"runtime": {
"lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll": {
"assemblyVersion": "7.1.2.0",
"fileVersion": "7.1.2.41121"
}
}
},
"Microsoft.IdentityModel.Logging/7.1.2": {
"dependencies": {
"Microsoft.IdentityModel.Abstractions": "7.1.2"
},
"runtime": {
"lib/net8.0/Microsoft.IdentityModel.Logging.dll": {
"assemblyVersion": "7.1.2.0",
"fileVersion": "7.1.2.41121"
}
}
},
"Microsoft.IdentityModel.Tokens/7.1.2": {
"dependencies": {
"Microsoft.IdentityModel.Logging": "7.1.2"
},
"runtime": {
"lib/net8.0/Microsoft.IdentityModel.Tokens.dll": {
"assemblyVersion": "7.1.2.0",
"fileVersion": "7.1.2.41121"
}
}
},
"Microsoft.VisualStudio.SlnGen/11.1.0": {},
"Polly.Core/8.3.1": {
"runtime": {
"lib/net8.0/Polly.Core.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.3.1.3207"
}
}
},
"prometheus-net/8.2.1": {
"dependencies": {
"Microsoft.Extensions.Http": "6.0.0",
"Microsoft.Extensions.ObjectPool": "7.0.0"
},
"runtime": {
"lib/net7.0/Prometheus.NetStandard.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.2.1.0"
}
}
},
"System.Diagnostics.DiagnosticSource/8.0.0": {},
"System.Diagnostics.EventLog/8.0.0": {},
"System.IdentityModel.Tokens.Jwt/7.1.2": {
"dependencies": {
"Microsoft.IdentityModel.JsonWebTokens": "7.1.2",
"Microsoft.IdentityModel.Tokens": "7.1.2"
},
"runtime": {
"lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": {
"assemblyVersion": "7.1.2.0",
"fileVersion": "7.1.2.41121"
}
}
},
"System.Text.Encodings.Web/8.0.0": {},
"System.Text.Json/8.0.0": {
"dependencies": {
"System.Text.Encodings.Web": "8.0.0"
}
},
"YamlDotNet/15.1.0": {
"runtime": {
"lib/net8.0/YamlDotNet.dll": {
"assemblyVersion": "15.0.0.0",
"fileVersion": "15.1.0.0"
}
}
}
}
},
"libraries": {
"Medusa.AppHost/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Aspire.Hosting/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ubs9mDceZ2O+wrNAyjEcv1OOht+ZKl4S8sIZw+Psu3lBe0YAG/T6rEl2Ia8pjXasU/aD6XDKoa5FjHFik8FIgw==",
"path": "aspire.hosting/8.0.0",
"hashPath": "aspire.hosting.8.0.0.nupkg.sha512"
},
"Aspire.Hosting.AppHost/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-m3xv5s0Jha7+320r0E3EzvJv+to4fcaE2lOdq/Z6x+QPxFjloUCsYhJNyqyh+BpQg2bCR3tXSm6Qopt8/zz/Tg==",
"path": "aspire.hosting.apphost/8.0.0",
"hashPath": "aspire.hosting.apphost.8.0.0.nupkg.sha512"
},
"Fractions/7.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-2bETFWLBc8b7Ut2SVi+bxhGVwiSpknHYGBh2PADyGWONLkTxT7bKyDRhF8ao+XUv90tq8Fl7GTPxSI5bacIRJw==",
"path": "fractions/7.3.0",
"hashPath": "fractions.7.3.0.nupkg.sha512"
},
"Google.Protobuf/3.24.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-5j/OBUVWPTeRYlG3Dm4PSupyU6nJmbnnhPeqjePzCqtzrh5vErx8dToStuhTnG1ZYZ+dawGziC7DN1I6FEQH0g==",
"path": "google.protobuf/3.24.0",
"hashPath": "google.protobuf.3.24.0.nupkg.sha512"
},
"Grpc.AspNetCore/2.60.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-fFLF1/7C+ZZ10vpw63jNRp9VMIXAAmSFKD8pp8rDtD6Z51H4qYYto/go+XhBs7av5piG+GziSP0uA1VZAYLgAA==",
"path": "grpc.aspnetcore/2.60.0",
"hashPath": "grpc.aspnetcore.2.60.0.nupkg.sha512"
},
"Grpc.AspNetCore.Server/2.60.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BwBvT8WJm5YfUtRdUxG1iqxd1p0rVo3GC/+gM93vS2MvQQa+E9o8PH6hrTrS9OMXeN3IzpU0yv27QBryl4OKZw==",
"path": "grpc.aspnetcore.server/2.60.0",
"hashPath": "grpc.aspnetcore.server.2.60.0.nupkg.sha512"
},
"Grpc.AspNetCore.Server.ClientFactory/2.60.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-QjhyB/vW1RkvdT2ddxvsOzA5gRhiYxGww3VMXlXVBXD2rKrSj9m8Z3BlatdTtiM+W+zsMfgoggxCIIktcxyWkA==",
"path": "grpc.aspnetcore.server.clientfactory/2.60.0",
"hashPath": "grpc.aspnetcore.server.clientfactory.2.60.0.nupkg.sha512"
},
"Grpc.Core.Api/2.60.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VWah+8dGJhhsay5BQ/Ljq6GYDWj0lSjdzqyoBgUQhXTbBqhs+q5dRFROKxI1xxzlL4pfUO45cf/y+KnHVFG9ew==",
"path": "grpc.core.api/2.60.0",
"hashPath": "grpc.core.api.2.60.0.nupkg.sha512"
},
"Grpc.Net.Client/2.60.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-J9U96gjZHOcqSgAThg9vZZhLsbTD005bUggPtMP/RVQnGc3+tQJTpkRUCJtJWq9cykNydsRVoyU38TjPP/VJ4A==",
"path": "grpc.net.client/2.60.0",
"hashPath": "grpc.net.client.2.60.0.nupkg.sha512"
},
"Grpc.Net.ClientFactory/2.60.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-lCUZjbv6TtI1FbOUE593PLCkXqW2Yrf3KsFfzxIMdJ54o4ELwCEQ26xjfrm+hMTefiXxvXf9FO7zL1rGLWWSig==",
"path": "grpc.net.clientfactory/2.60.0",
"hashPath": "grpc.net.clientfactory.2.60.0.nupkg.sha512"
},
"Grpc.Net.Common/2.60.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Y/917aplgD1RA0q1cd9WpnMGyl9Luu3WZl6ZMpPvNQwg2TNw/3uXUDSriDBybeCtxnKUCtxUcWO3WsVkhM1DcA==",
"path": "grpc.net.common/2.60.0",
"hashPath": "grpc.net.common.2.60.0.nupkg.sha512"
},
"Grpc.Tools/2.60.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-gX2YT08W+4eM25T+ypdbrena91iqz1QywTseu4wVEfYEFpUWbb3G7tDCNU4Fb2D01SS+EipjmRRfXx/BWryrvA==",
"path": "grpc.tools/2.60.0",
"hashPath": "grpc.tools.2.60.0.nupkg.sha512"
},
"IdentityModel/5.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-nuhkbaDH9l5QzNJp2MtP3qio57MPtiRneUN8Ocr7od0JvSYaIe3gBj/vxllr11S/Qvu1AG4GZXoyv5469ewYDA==",
"path": "identitymodel/5.2.0",
"hashPath": "identitymodel.5.2.0.nupkg.sha512"
},
"IdentityModel.OidcClient/5.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OuPhDNAw/EoJVEmYO6/ChZUBcug4OGoGKTKLUyBCsGhlKegxJk25LYQ0EL7GCBMgkEL+BYNJukNZyaJ+JNaWog==",
"path": "identitymodel.oidcclient/5.2.1",
"hashPath": "identitymodel.oidcclient.5.2.1.nupkg.sha512"
},
"KubernetesClient/13.0.11": {
"type": "package",
"serviceable": true,
"sha512": "sha512-FCzf5tIoVlD3eilPm3/nbklQx7HN1CagQbjAGti6jvI/PyWdhMB8JFquIyWgqQ+uzDJ4XwTA+DeROHeRZJWsCw==",
"path": "kubernetesclient/13.0.11",
"hashPath": "kubernetesclient.13.0.11.nupkg.sha512"
},
"Microsoft.Extensions.Configuration/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==",
"path": "microsoft.extensions.configuration/8.0.0",
"hashPath": "microsoft.extensions.configuration.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Abstractions/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==",
"path": "microsoft.extensions.configuration.abstractions/8.0.0",
"hashPath": "microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Binder/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-mBMoXLsr5s1y2zOHWmKsE9veDcx8h1x/c3rz4baEdQKTeDcmQAPNbB54Pi/lhFO3K431eEq6PFbMgLaa6PHFfA==",
"path": "microsoft.extensions.configuration.binder/8.0.0",
"hashPath": "microsoft.extensions.configuration.binder.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.CommandLine/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-NZuZMz3Q8Z780nKX3ifV1fE7lS+6pynDHK71OfU4OZ1ItgvDOhyOC7E6z+JMZrAj63zRpwbdldYFk499t3+1dQ==",
"path": "microsoft.extensions.configuration.commandline/8.0.0",
"hashPath": "microsoft.extensions.configuration.commandline.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.EnvironmentVariables/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-plvZ0ZIpq+97gdPNNvhwvrEZ92kNml9hd1pe3idMA7svR0PztdzVLkoWLcRFgySYXUJc3kSM3Xw3mNFMo/bxRA==",
"path": "microsoft.extensions.configuration.environmentvariables/8.0.0",
"hashPath": "microsoft.extensions.configuration.environmentvariables.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.FileExtensions/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-McP+Lz/EKwvtCv48z0YImw+L1gi1gy5rHhNaNIY2CrjloV+XY8gydT8DjMR6zWeL13AFK+DioVpppwAuO1Gi1w==",
"path": "microsoft.extensions.configuration.fileextensions/8.0.0",
"hashPath": "microsoft.extensions.configuration.fileextensions.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Json/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-C2wqUoh9OmRL1akaCcKSTmRU8z0kckfImG7zLNI8uyi47Lp+zd5LWAD17waPQEqCz3ioWOCrFUo+JJuoeZLOBw==",
"path": "microsoft.extensions.configuration.json/8.0.0",
"hashPath": "microsoft.extensions.configuration.json.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.UserSecrets/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ihDHu2dJYQird9pl2CbdwuNDfvCZdOS0S7SPlNfhPt0B81UTT+yyZKz2pimFZGUp3AfuBRnqUCxB2SjsZKHVUw==",
"path": "microsoft.extensions.configuration.usersecrets/8.0.0",
"hashPath": "microsoft.extensions.configuration.usersecrets.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-V8S3bsm50ig6JSyrbcJJ8bW2b9QLGouz+G1miK3UTaOWmMtFwNNNzUf4AleyDWUmTrWMLNnFSLEQtxmxgNQnNQ==",
"path": "microsoft.extensions.dependencyinjection/8.0.0",
"hashPath": "microsoft.extensions.dependencyinjection.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-cjWrLkJXK0rs4zofsK4bSdg+jhDLTaxrkXu4gS6Y7MAlCvRyNNgwY/lJi5RDlQOnSZweHqoyvgvbdvQsRIW+hg==",
"path": "microsoft.extensions.dependencyinjection.abstractions/8.0.0",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Diagnostics/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3PZp/YSkIXrF7QK7PfC1bkyRYwqOHpWFad8Qx+4wkuumAeXo1NHaxpS9LboNA9OvNSAu+QOVlXbMyoY+pHSqcw==",
"path": "microsoft.extensions.diagnostics/8.0.0",
"hashPath": "microsoft.extensions.diagnostics.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Diagnostics.Abstractions/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-JHYCQG7HmugNYUhOl368g+NMxYE/N/AiclCYRNlgCY9eVyiBkOHMwK4x60RYMxv9EL3+rmj1mqHvdCiPpC+D4Q==",
"path": "microsoft.extensions.diagnostics.abstractions/8.0.0",
"hashPath": "microsoft.extensions.diagnostics.abstractions.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Abstractions/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==",
"path": "microsoft.extensions.fileproviders.abstractions/8.0.0",
"hashPath": "microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Physical/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-UboiXxpPUpwulHvIAVE36Knq0VSHaAmfrFkegLyBZeaADuKezJ/AIXYAW8F5GBlGk/VaibN2k/Zn1ca8YAfVdA==",
"path": "microsoft.extensions.fileproviders.physical/8.0.0",
"hashPath": "microsoft.extensions.fileproviders.physical.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileSystemGlobbing/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==",
"path": "microsoft.extensions.filesystemglobbing/8.0.0",
"hashPath": "microsoft.extensions.filesystemglobbing.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Hosting/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ItYHpdqVp5/oFLT5QqbopnkKlyFG9EW/9nhM6/yfObeKt6Su0wkBio6AizgRHGNwhJuAtlE5VIjow5JOTrip6w==",
"path": "microsoft.extensions.hosting/8.0.0",
"hashPath": "microsoft.extensions.hosting.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Hosting.Abstractions/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-AG7HWwVRdCHlaA++1oKDxLsXIBxmDpMPb3VoyOoAghEWnkUvEAdYQUwnV4jJbAaa/nMYNiEh5ByoLauZBEiovg==",
"path": "microsoft.extensions.hosting.abstractions/8.0.0",
"hashPath": "microsoft.extensions.hosting.abstractions.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Http/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-15+pa2G0bAMHbHewaQIdr/y6ag2H3yh4rd9hTXavtWDzQBkvpe2RMqFg8BxDpcQWssmjmBApGPcw93QRz6YcMg==",
"path": "microsoft.extensions.http/6.0.0",
"hashPath": "microsoft.extensions.http.6.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-tvRkov9tAJ3xP51LCv3FJ2zINmv1P8Hi8lhhtcKGqM+ImiTCC84uOPEI4z8Cdq2C3o9e+Aa0Gw0rmrsJD77W+w==",
"path": "microsoft.extensions.logging/8.0.0",
"hashPath": "microsoft.extensions.logging.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-arDBqTgFCyS0EvRV7O3MZturChstm50OJ0y9bDJvAcmEPJm0FFpFyjU/JLYyStNGGey081DvnQYlncNX5SJJGA==",
"path": "microsoft.extensions.logging.abstractions/8.0.0",
"hashPath": "microsoft.extensions.logging.abstractions.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Configuration/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ixXXV0G/12g6MXK65TLngYN9V5hQQRuV+fZi882WIoVJT7h5JvoYoxTEwCgdqwLjSneqh1O+66gM8sMr9z/rsQ==",
"path": "microsoft.extensions.logging.configuration/8.0.0",
"hashPath": "microsoft.extensions.logging.configuration.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Console/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-e+48o7DztoYog+PY430lPxrM4mm3PbA6qucvQtUDDwVo4MO+ejMw7YGc/o2rnxbxj4isPxdfKFzTxvXMwAz83A==",
"path": "microsoft.extensions.logging.console/8.0.0",
"hashPath": "microsoft.extensions.logging.console.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Debug/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-dt0x21qBdudHLW/bjMJpkixv858RRr8eSomgVbU8qljOyfrfDGi1JQvpF9w8S7ziRPtRKisuWaOwFxJM82GxeA==",
"path": "microsoft.extensions.logging.debug/8.0.0",
"hashPath": "microsoft.extensions.logging.debug.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging.EventLog/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3X9D3sl7EmOu7vQp5MJrmIJBl5XSdOhZPYXUeFfYa6Nnm9+tok8x3t3IVPLhm7UJtPOU61ohFchw8rNm9tIYOQ==",
"path": "microsoft.extensions.logging.eventlog/8.0.0",
"hashPath": "microsoft.extensions.logging.eventlog.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging.EventSource/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-oKcPMrw+luz2DUAKhwFXrmFikZWnyc8l2RKoQwqU3KIZZjcfoJE0zRHAnqATfhRZhtcbjl/QkiY2Xjxp0xu+6w==",
"path": "microsoft.extensions.logging.eventsource/8.0.0",
"hashPath": "microsoft.extensions.logging.eventsource.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.ObjectPool/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-udvKco0sAVgYGTBnHUb0tY9JQzJ/nPDiv/8PIyz69wl1AibeCDZOLVVI+6156dPfHmJH7ws5oUJRiW4ZmAvuuA==",
"path": "microsoft.extensions.objectpool/7.0.0",
"hashPath": "microsoft.extensions.objectpool.7.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Options/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-JOVOfqpnqlVLUzINQ2fox8evY2SKLYJ3BV8QDe/Jyp21u1T7r45x/R/5QdteURMR5r01GxeJSBBUOCOyaNXA3g==",
"path": "microsoft.extensions.options/8.0.0",
"hashPath": "microsoft.extensions.options.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Options.ConfigurationExtensions/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-0f4DMRqEd50zQh+UyJc+/HiBsZ3vhAQALgdkcQEalSH1L2isdC7Yj54M3cyo5e+BeO5fcBQ7Dxly8XiBBcvRgw==",
"path": "microsoft.extensions.options.configurationextensions/8.0.0",
"hashPath": "microsoft.extensions.options.configurationextensions.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==",
"path": "microsoft.extensions.primitives/8.0.0",
"hashPath": "microsoft.extensions.primitives.8.0.0.nupkg.sha512"
},
"Microsoft.IdentityModel.Abstractions/7.1.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-33eTIA2uO/L9utJjZWbKsMSVsQf7F8vtd6q5mQX7ZJzNvCpci5fleD6AeANGlbbb7WX7XKxq9+Dkb5e3GNDrmQ==",
"path": "microsoft.identitymodel.abstractions/7.1.2",
"hashPath": "microsoft.identitymodel.abstractions.7.1.2.nupkg.sha512"
},
"Microsoft.IdentityModel.JsonWebTokens/7.1.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-cloLGeZolXbCJhJBc5OC05uhrdhdPL6MWHuVUnkkUvPDeK7HkwThBaLZ1XjBQVk9YhxXE2OvHXnKi0PLleXxDg==",
"path": "microsoft.identitymodel.jsonwebtokens/7.1.2",
"hashPath": "microsoft.identitymodel.jsonwebtokens.7.1.2.nupkg.sha512"
},
"Microsoft.IdentityModel.Logging/7.1.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-YCxBt2EeJP8fcXk9desChkWI+0vFqFLvBwrz5hBMsoh0KJE6BC66DnzkdzkJNqMltLromc52dkdT206jJ38cTw==",
"path": "microsoft.identitymodel.logging/7.1.2",
"hashPath": "microsoft.identitymodel.logging.7.1.2.nupkg.sha512"
},
"Microsoft.IdentityModel.Tokens/7.1.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-oICJMqr3aNEDZOwnH5SK49bR6Z4aX0zEAnOLuhloumOSuqnNq+GWBdQyrgILnlcT5xj09xKCP/7Y7gJYB+ls/g==",
"path": "microsoft.identitymodel.tokens/7.1.2",
"hashPath": "microsoft.identitymodel.tokens.7.1.2.nupkg.sha512"
},
"Microsoft.VisualStudio.SlnGen/11.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-MwRcasXXtPrsLm2eNpoOj8aElTBiTAXAjG3DWjCstnnhY2DJ2bKAK0PzuZIMr3nWvyf2FzaWwCSJ70ei/1jKvg==",
"path": "microsoft.visualstudio.slngen/11.1.0",
"hashPath": "microsoft.visualstudio.slngen.11.1.0.nupkg.sha512"
},
"Polly.Core/8.3.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-b9mMAjqXuCXFCtf/RtRPwFUkAm/sz37s7G+taDvS5EqfkJsLiWfO2xO2cSISjIgIY+88oIZTGguP6UrRGRlqzg==",
"path": "polly.core/8.3.1",
"hashPath": "polly.core.8.3.1.nupkg.sha512"
},
"prometheus-net/8.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3wVgdEPOCBF752s2xps5T+VH+c9mJK8S8GKEDg49084P6JZMumTZI5Te6aJ9MQpX0sx7om6JOnBpIi7ZBmmiDQ==",
"path": "prometheus-net/8.2.1",
"hashPath": "prometheus-net.8.2.1.nupkg.sha512"
},
"System.Diagnostics.DiagnosticSource/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-c9xLpVz6PL9lp/djOWtk5KPDZq3cSYpmXoJQY524EOtuFl5z9ZtsotpsyrDW40U1DRnQSYvcPKEUV0X//u6gkQ==",
"path": "system.diagnostics.diagnosticsource/8.0.0",
"hashPath": "system.diagnostics.diagnosticsource.8.0.0.nupkg.sha512"
},
"System.Diagnostics.EventLog/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-fdYxcRjQqTTacKId/2IECojlDSFvp7LP5N78+0z/xH7v/Tuw5ZAxu23Y6PTCRinqyu2ePx+Gn1098NC6jM6d+A==",
"path": "system.diagnostics.eventlog/8.0.0",
"hashPath": "system.diagnostics.eventlog.8.0.0.nupkg.sha512"
},
"System.IdentityModel.Tokens.Jwt/7.1.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Thhbe1peAmtSBFaV/ohtykXiZSOkx59Da44hvtWfIMFofDA3M3LaVyjstACf2rKGn4dEDR2cUpRAZ0Xs/zB+7Q==",
"path": "system.identitymodel.tokens.jwt/7.1.2",
"hashPath": "system.identitymodel.tokens.jwt.7.1.2.nupkg.sha512"
},
"System.Text.Encodings.Web/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==",
"path": "system.text.encodings.web/8.0.0",
"hashPath": "system.text.encodings.web.8.0.0.nupkg.sha512"
},
"System.Text.Json/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OdrZO2WjkiEG6ajEFRABTRCi/wuXQPxeV6g8xvUJqdxMvvuCCEk86zPla8UiIQJz3durtUEbNyY/3lIhS0yZvQ==",
"path": "system.text.json/8.0.0",
"hashPath": "system.text.json.8.0.0.nupkg.sha512"
},
"YamlDotNet/15.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-fXrqmKkzBtXeJiHEsZOPEWkonHweiwk/l0Hqhz4yMIZPh57kZy03Xbj2/e8HV1QIkTw7yeBe9bbphuE3YiI4vQ==",
"path": "yamldotnet/15.1.0",
"hashPath": "yamldotnet.15.1.0.nupkg.sha512"
}
}
}

View File

@ -1,18 +0,0 @@
{
"runtimeOptions": {
"tfm": "net8.0",
"frameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "8.0.0"
},
{
"name": "Microsoft.AspNetCore.App",
"version": "8.0.0"
}
],
"configProperties": {
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}

View File

@ -1,4 +0,0 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]

View File

@ -1,33 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: Microsoft.Extensions.Configuration.UserSecrets.UserSecretsIdAttribute("0cb174ad-1163-4ac4-9ae1-456f6d1fa241")]
[assembly: System.Reflection.AssemblyMetadata("dcpclipath", "C:\\Program Files\\dotnet\\packs\\Aspire.Hosting.Orchestration.win-x64\\8.0.0\\tools\\dc" +
"p.exe")]
[assembly: System.Reflection.AssemblyMetadata("dcpextensionpaths", "C:\\Program Files\\dotnet\\packs\\Aspire.Hosting.Orchestration.win-x64\\8.0.0\\tools\\ex" +
"t\\")]
[assembly: System.Reflection.AssemblyMetadata("dcpbinpath", "C:\\Program Files\\dotnet\\packs\\Aspire.Hosting.Orchestration.win-x64\\8.0.0\\tools\\ex" +
"t\\bin\\")]
[assembly: System.Reflection.AssemblyMetadata("apphostprojectpath", "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost")]
[assembly: System.Reflection.AssemblyMetadata("aspiredashboardpath", "C:\\Program Files\\dotnet\\packs\\Aspire.Dashboard.Sdk.win-x64\\8.0.0\\tools\\Aspire.Das" +
"hboard.exe")]
[assembly: System.Reflection.AssemblyCompanyAttribute("Medusa.AppHost")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("Medusa.AppHost")]
[assembly: System.Reflection.AssemblyTitleAttribute("Medusa.AppHost")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.

View File

@ -1 +0,0 @@
5463481e0a7eb9d5c79ec269ca9a04d8ff7107b03cc998a37b0453c1edbce3ec

View File

@ -1,13 +0,0 @@
is_global = true
build_property.TargetFramework = net8.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Madusa.AppHost
build_property.ProjectDir = C:\Users\khouw\source\repos\Madusa\Madusa.AppHost\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =

View File

@ -1,10 +0,0 @@
// <auto-generated/>
global using global::Aspire.Hosting;
global using global::Aspire.Hosting.ApplicationModel;
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;

View File

@ -1 +0,0 @@
d3987521f26a23c70677494d0d6ac2a36db8d990c7caa3b5e50ad0d0a0ad6029

View File

@ -1,53 +0,0 @@
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Medusa.AppHost.exe
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Medusa.AppHost.deps.json
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Medusa.AppHost.runtimeconfig.json
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Medusa.AppHost.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Medusa.AppHost.pdb
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Aspire.Hosting.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Aspire.Hosting.AppHost.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Fractions.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Google.Protobuf.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Grpc.AspNetCore.Server.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Grpc.AspNetCore.Server.ClientFactory.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Grpc.Core.Api.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Grpc.Net.Client.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Grpc.Net.ClientFactory.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Grpc.Net.Common.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\IdentityModel.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\IdentityModel.OidcClient.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\KubernetesClient.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Microsoft.IdentityModel.Abstractions.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Microsoft.IdentityModel.JsonWebTokens.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Microsoft.IdentityModel.Logging.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Microsoft.IdentityModel.Tokens.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Polly.Core.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\Prometheus.NetStandard.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\System.IdentityModel.Tokens.Jwt.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\YamlDotNet.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\cs\Aspire.Hosting.resources.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\de\Aspire.Hosting.resources.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\es\Aspire.Hosting.resources.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\fr\Aspire.Hosting.resources.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\it\Aspire.Hosting.resources.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\ja\Aspire.Hosting.resources.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\ko\Aspire.Hosting.resources.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\pl\Aspire.Hosting.resources.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\pt-BR\Aspire.Hosting.resources.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\ru\Aspire.Hosting.resources.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\tr\Aspire.Hosting.resources.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\zh-Hans\Aspire.Hosting.resources.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\bin\Debug\net8.0\zh-Hant\Aspire.Hosting.resources.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\obj\Debug\net8.0\Medusa.AppHost.csproj.AssemblyReference.cache
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\obj\Debug\net8.0\Medusa.AppHost.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\obj\Debug\net8.0\Medusa.AppHost.AssemblyInfoInputs.cache
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\obj\Debug\net8.0\Medusa.AppHost.AssemblyInfo.cs
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\obj\Debug\net8.0\Medusa.AppHost.csproj.CoreCompileInputs.cache
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\obj\Debug\net8.0\Aspire\references\Medusa_Core.ProjectMetadata.g.cs
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\obj\Debug\net8.0\Aspire\references\_AppHost.ProjectMetadata.g.cs
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\obj\Debug\net8.0\Medusa.A.8BF6B724.Up2Date
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\obj\Debug\net8.0\Medusa.AppHost.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\obj\Debug\net8.0\refint\Medusa.AppHost.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\obj\Debug\net8.0\Medusa.AppHost.pdb
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\obj\Debug\net8.0\Medusa.AppHost.genruntimeconfig.cache
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\obj\Debug\net8.0\ref\Medusa.AppHost.dll
C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\obj\Debug\net8.0\Aspire\references\Medusa_Web_Server.ProjectMetadata.g.cs

View File

@ -1 +0,0 @@
594a9919974c7f86903bc8cdf04b73e456efa68f7a4f37e846ef155ea0a0ea3a

View File

@ -1,33 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: Microsoft.Extensions.Configuration.UserSecrets.UserSecretsIdAttribute("0cb174ad-1163-4ac4-9ae1-456f6d1fa241")]
[assembly: System.Reflection.AssemblyMetadata("dcpclipath", "C:\\Program Files\\dotnet\\packs\\Aspire.Hosting.Orchestration.win-x64\\8.0.0\\tools\\dc" +
"p.exe")]
[assembly: System.Reflection.AssemblyMetadata("dcpextensionpaths", "C:\\Program Files\\dotnet\\packs\\Aspire.Hosting.Orchestration.win-x64\\8.0.0\\tools\\ex" +
"t\\")]
[assembly: System.Reflection.AssemblyMetadata("dcpbinpath", "C:\\Program Files\\dotnet\\packs\\Aspire.Hosting.Orchestration.win-x64\\8.0.0\\tools\\ex" +
"t\\bin\\")]
[assembly: System.Reflection.AssemblyMetadata("apphostprojectpath", "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost")]
[assembly: System.Reflection.AssemblyMetadata("aspiredashboardpath", "C:\\Program Files\\dotnet\\packs\\Aspire.Dashboard.Sdk.win-x64\\8.0.0\\tools\\Aspire.Das" +
"hboard.exe")]
[assembly: System.Reflection.AssemblyCompanyAttribute("Medusa.AppHost")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+542957620eaa47fb5f3c0cd3f2ddae4efef863dc")]
[assembly: System.Reflection.AssemblyProductAttribute("Medusa.AppHost")]
[assembly: System.Reflection.AssemblyTitleAttribute("Medusa.AppHost")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.

View File

@ -1 +0,0 @@
ec7f354a4610b8d134f7641a67c2c1abefe396d4a440d666c2251c1e17e454a1

View File

@ -1,13 +0,0 @@
is_global = true
build_property.TargetFramework = net8.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Medusa.AppHost
build_property.ProjectDir = C:\Users\khouw\source\repos\Medusa\Medusa.AppHost\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =

View File

@ -1,10 +0,0 @@
// <auto-generated/>
global using global::Aspire.Hosting;
global using global::Aspire.Hosting.ApplicationModel;
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;

View File

@ -1,79 +0,0 @@
{
"format": 1,
"restore": {
"C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost\\Medusa.AppHost.csproj": {}
},
"projects": {
"C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost\\Medusa.AppHost.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost\\Medusa.AppHost.csproj",
"projectName": "Medusa.AppHost",
"projectPath": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost\\Medusa.AppHost.csproj",
"packagesPath": "C:\\Users\\khouw\\.nuget\\packages\\",
"outputPath": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\khouw\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net8.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"C:\\Program Files\\dotnet\\library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"dependencies": {
"Aspire.Hosting.AppHost": {
"target": "Package",
"version": "[8.0.0, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.302/PortableRuntimeIdentifierGraph.json"
}
}
}
}
}

View File

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\khouw\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.10.1</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\khouw\.nuget\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
</ItemGroup>
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.usersecrets\8.0.0\buildTransitive\net6.0\Microsoft.Extensions.Configuration.UserSecrets.props" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.usersecrets\8.0.0\buildTransitive\net6.0\Microsoft.Extensions.Configuration.UserSecrets.props')" />
<Import Project="$(NuGetPackageRoot)aspire.hosting.apphost\8.0.0\buildTransitive\Aspire.Hosting.AppHost.props" Condition="Exists('$(NuGetPackageRoot)aspire.hosting.apphost\8.0.0\buildTransitive\Aspire.Hosting.AppHost.props')" />
</ImportGroup>
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<PkgMicrosoft_VisualStudio_SlnGen Condition=" '$(PkgMicrosoft_VisualStudio_SlnGen)' == '' ">C:\Users\khouw\.nuget\packages\microsoft.visualstudio.slngen\11.1.0</PkgMicrosoft_VisualStudio_SlnGen>
<PkgGrpc_Tools Condition=" '$(PkgGrpc_Tools)' == '' ">C:\Users\khouw\.nuget\packages\grpc.tools\2.60.0</PkgGrpc_Tools>
</PropertyGroup>
</Project>

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)system.text.json\8.0.0\buildTransitive\net6.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\8.0.0\buildTransitive\net6.0\System.Text.Json.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options\8.0.0\buildTransitive\net6.0\Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options\8.0.0\buildTransitive\net6.0\Microsoft.Extensions.Options.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\8.0.0\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\8.0.0\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.binder\8.0.0\buildTransitive\netstandard2.0\Microsoft.Extensions.Configuration.Binder.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.binder\8.0.0\buildTransitive\netstandard2.0\Microsoft.Extensions.Configuration.Binder.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.usersecrets\8.0.0\buildTransitive\net6.0\Microsoft.Extensions.Configuration.UserSecrets.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.usersecrets\8.0.0\buildTransitive\net6.0\Microsoft.Extensions.Configuration.UserSecrets.targets')" />
<Import Project="$(NuGetPackageRoot)aspire.hosting.apphost\8.0.0\buildTransitive\Aspire.Hosting.AppHost.targets" Condition="Exists('$(NuGetPackageRoot)aspire.hosting.apphost\8.0.0\buildTransitive\Aspire.Hosting.AppHost.targets')" />
</ImportGroup>
</Project>

View File

@ -1,79 +0,0 @@
{
"format": 1,
"restore": {
"C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost\\Medusa.AppHost.csproj": {}
},
"projects": {
"C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost\\Medusa.AppHost.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost\\Medusa.AppHost.csproj",
"projectName": "Medusa.AppHost",
"projectPath": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost\\Medusa.AppHost.csproj",
"packagesPath": "C:\\Users\\khouw\\.nuget\\packages\\",
"outputPath": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\khouw\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net8.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"C:\\Program Files\\dotnet\\library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"dependencies": {
"Aspire.Hosting.AppHost": {
"target": "Package",
"version": "[8.0.0, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.302/PortableRuntimeIdentifierGraph.json"
}
}
}
}
}

View File

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\khouw\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.10.1</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\khouw\.nuget\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
</ItemGroup>
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.usersecrets\8.0.0\buildTransitive\net6.0\Microsoft.Extensions.Configuration.UserSecrets.props" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.usersecrets\8.0.0\buildTransitive\net6.0\Microsoft.Extensions.Configuration.UserSecrets.props')" />
<Import Project="$(NuGetPackageRoot)aspire.hosting.apphost\8.0.0\buildTransitive\Aspire.Hosting.AppHost.props" Condition="Exists('$(NuGetPackageRoot)aspire.hosting.apphost\8.0.0\buildTransitive\Aspire.Hosting.AppHost.props')" />
</ImportGroup>
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<PkgMicrosoft_VisualStudio_SlnGen Condition=" '$(PkgMicrosoft_VisualStudio_SlnGen)' == '' ">C:\Users\khouw\.nuget\packages\microsoft.visualstudio.slngen\11.1.0</PkgMicrosoft_VisualStudio_SlnGen>
<PkgGrpc_Tools Condition=" '$(PkgGrpc_Tools)' == '' ">C:\Users\khouw\.nuget\packages\grpc.tools\2.60.0</PkgGrpc_Tools>
</PropertyGroup>
</Project>

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)system.text.json\8.0.0\buildTransitive\net6.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\8.0.0\buildTransitive\net6.0\System.Text.Json.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options\8.0.0\buildTransitive\net6.0\Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options\8.0.0\buildTransitive\net6.0\Microsoft.Extensions.Options.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\8.0.0\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\8.0.0\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.binder\8.0.0\buildTransitive\netstandard2.0\Microsoft.Extensions.Configuration.Binder.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.binder\8.0.0\buildTransitive\netstandard2.0\Microsoft.Extensions.Configuration.Binder.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.usersecrets\8.0.0\buildTransitive\net6.0\Microsoft.Extensions.Configuration.UserSecrets.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.usersecrets\8.0.0\buildTransitive\net6.0\Microsoft.Extensions.Configuration.UserSecrets.targets')" />
<Import Project="$(NuGetPackageRoot)aspire.hosting.apphost\8.0.0\buildTransitive\Aspire.Hosting.AppHost.targets" Condition="Exists('$(NuGetPackageRoot)aspire.hosting.apphost\8.0.0\buildTransitive\Aspire.Hosting.AppHost.targets')" />
</ImportGroup>
</Project>

File diff suppressed because it is too large Load Diff

View File

@ -1,66 +0,0 @@
{
"version": 2,
"dgSpecHash": "Dww892BY3nA=",
"success": true,
"projectFilePath": "C:\\Users\\khouw\\source\\repos\\Medusa\\Medusa.AppHost\\Medusa.AppHost.csproj",
"expectedPackageFiles": [
"C:\\Users\\khouw\\.nuget\\packages\\aspire.hosting\\8.0.0\\aspire.hosting.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\aspire.hosting.apphost\\8.0.0\\aspire.hosting.apphost.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\fractions\\7.3.0\\fractions.7.3.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\google.protobuf\\3.24.0\\google.protobuf.3.24.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\grpc.aspnetcore\\2.60.0\\grpc.aspnetcore.2.60.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\grpc.aspnetcore.server\\2.60.0\\grpc.aspnetcore.server.2.60.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\grpc.aspnetcore.server.clientfactory\\2.60.0\\grpc.aspnetcore.server.clientfactory.2.60.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\grpc.core.api\\2.60.0\\grpc.core.api.2.60.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\grpc.net.client\\2.60.0\\grpc.net.client.2.60.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\grpc.net.clientfactory\\2.60.0\\grpc.net.clientfactory.2.60.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\grpc.net.common\\2.60.0\\grpc.net.common.2.60.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\grpc.tools\\2.60.0\\grpc.tools.2.60.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\identitymodel\\5.2.0\\identitymodel.5.2.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\identitymodel.oidcclient\\5.2.1\\identitymodel.oidcclient.5.2.1.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\kubernetesclient\\13.0.11\\kubernetesclient.13.0.11.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.configuration\\8.0.0\\microsoft.extensions.configuration.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\8.0.0\\microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.configuration.binder\\8.0.0\\microsoft.extensions.configuration.binder.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.configuration.commandline\\8.0.0\\microsoft.extensions.configuration.commandline.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.configuration.environmentvariables\\8.0.0\\microsoft.extensions.configuration.environmentvariables.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.configuration.fileextensions\\8.0.0\\microsoft.extensions.configuration.fileextensions.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.configuration.json\\8.0.0\\microsoft.extensions.configuration.json.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.configuration.usersecrets\\8.0.0\\microsoft.extensions.configuration.usersecrets.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\8.0.0\\microsoft.extensions.dependencyinjection.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\8.0.0\\microsoft.extensions.dependencyinjection.abstractions.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.diagnostics\\8.0.0\\microsoft.extensions.diagnostics.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.diagnostics.abstractions\\8.0.0\\microsoft.extensions.diagnostics.abstractions.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.fileproviders.abstractions\\8.0.0\\microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.fileproviders.physical\\8.0.0\\microsoft.extensions.fileproviders.physical.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.filesystemglobbing\\8.0.0\\microsoft.extensions.filesystemglobbing.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.hosting\\8.0.0\\microsoft.extensions.hosting.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.hosting.abstractions\\8.0.0\\microsoft.extensions.hosting.abstractions.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.http\\6.0.0\\microsoft.extensions.http.6.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.logging\\8.0.0\\microsoft.extensions.logging.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\8.0.0\\microsoft.extensions.logging.abstractions.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.logging.configuration\\8.0.0\\microsoft.extensions.logging.configuration.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.logging.console\\8.0.0\\microsoft.extensions.logging.console.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.logging.debug\\8.0.0\\microsoft.extensions.logging.debug.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.logging.eventlog\\8.0.0\\microsoft.extensions.logging.eventlog.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.logging.eventsource\\8.0.0\\microsoft.extensions.logging.eventsource.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.objectpool\\7.0.0\\microsoft.extensions.objectpool.7.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.options\\8.0.0\\microsoft.extensions.options.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.options.configurationextensions\\8.0.0\\microsoft.extensions.options.configurationextensions.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.extensions.primitives\\8.0.0\\microsoft.extensions.primitives.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.identitymodel.abstractions\\7.1.2\\microsoft.identitymodel.abstractions.7.1.2.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.identitymodel.jsonwebtokens\\7.1.2\\microsoft.identitymodel.jsonwebtokens.7.1.2.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.identitymodel.logging\\7.1.2\\microsoft.identitymodel.logging.7.1.2.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.identitymodel.tokens\\7.1.2\\microsoft.identitymodel.tokens.7.1.2.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\microsoft.visualstudio.slngen\\11.1.0\\microsoft.visualstudio.slngen.11.1.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\polly.core\\8.3.1\\polly.core.8.3.1.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\prometheus-net\\8.2.1\\prometheus-net.8.2.1.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\system.diagnostics.diagnosticsource\\8.0.0\\system.diagnostics.diagnosticsource.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\system.diagnostics.eventlog\\8.0.0\\system.diagnostics.eventlog.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\system.identitymodel.tokens.jwt\\7.1.2\\system.identitymodel.tokens.jwt.7.1.2.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\system.text.encodings.web\\8.0.0\\system.text.encodings.web.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\system.text.json\\8.0.0\\system.text.json.8.0.0.nupkg.sha512",
"C:\\Users\\khouw\\.nuget\\packages\\yamldotnet\\15.1.0\\yamldotnet.15.1.0.nupkg.sha512"
],
"logs": []
}

View File

@ -1,14 +1,225 @@
using Medusa.Core.Services;
using Microsoft.Extensions.DependencyInjection.Extensions;
using System.Collections.Generic;
using System.Reflection;
namespace Medusa.Core.Extensions
{
public static class ServiceCollectionExtensions
{
/// <summary>
/// Add handler service to DI
/// </summary>
/// <param name="services">The extended IServiceCollection</param>
/// <returns></returns>
public static IServiceCollection AddHandlers(this IServiceCollection services)
{
services.Add(new ServiceDescriptor(typeof(IHandlerService), typeof(HandlerService), ServiceLifetime.Singleton));
services.AddTransient<ICardService, CardService>();
return services;
}
/// <summary>
/// Adds services implementing an interface to the DI container.
/// </summary>
/// <typeparam name="TType">The interface type</typeparam>
/// <param name="serviceCollection">The extended IServiceCollection</param>
/// <param name="lifetime">The lifetime of the services</param>
/// <returns></returns>
public static IServiceCollection AddIServicesWithType<TType>(this IServiceCollection serviceCollection,
ServiceLifetime lifetime = ServiceLifetime.Transient)
{
var assembly = typeof(TType).Assembly;
var types = assembly.DefinedTypes
.Where(x => typeof(TType).IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract)
.ToArray();
if(types.Length == 0) return serviceCollection;
foreach(var type in types)
{
serviceCollection.TryAdd(new ServiceDescriptor(typeof(TType), type.AsType(), lifetime));
}
return serviceCollection;
}
/// <summary>
/// Adds services from a namespace that implement an interface to the DI container.
/// </summary>
/// <param name="serviceCollection">The extended IServiceCollection</param>
/// <param name="interfaceNamespace">The namespace of the interfaces</param>
/// <param name="lifetime">The lifetime of the services</param>
/// <returns></returns>
public static IServiceCollection AddServicesInNamespaceWithInterface(this IServiceCollection serviceCollection,
string interfaceNamespace, ServiceLifetime lifetime = ServiceLifetime.Transient)
{
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
var foundAssembly = assemblies.FirstOrDefault(x => x.DefinedTypes.Any(typeInfo => typeInfo.Namespace?.Equals(interfaceNamespace) ?? false));
if(foundAssembly == null)
{
try
{
var loaded = Assembly.Load(interfaceNamespace.Split('.')[0]);
foundAssembly = loaded;
}
catch
{
return serviceCollection;
}
}
var types = foundAssembly.DefinedTypes
.Where(x => x.Namespace == interfaceNamespace && !x.IsInterface && !x.IsAbstract && !x.ContainsGenericParameters && !x.IsNested)
.ToList();
if(types.Count == 0) return serviceCollection;
foreach(var type in types)
{
var interfaceType = type.GetInterfaces().FirstOrDefault();
if(interfaceType != null)
{
serviceCollection.TryAdd(new ServiceDescriptor(interfaceType, type.AsType(), lifetime));
}
}
return serviceCollection;
}
/// <summary>
/// Adds services from multiple namespaces to the DI container.
/// </summary>
/// <param name="serviceCollection">The extended IServiceCollection</param>
/// <param name="namespaces">List of namespaces</param>
/// <param name="lifetime">The lifetime of the services</param>
/// <returns></returns>
public static IServiceCollection AddServicesInNamespaces(this IServiceCollection serviceCollection,
string[] namespaces, ServiceLifetime lifetime = ServiceLifetime.Transient)
{
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
var foundAssemblies = assemblies
.Where(a => a.DefinedTypes.Any(t => namespaces.Contains(t.Namespace)))
.ToList();
var notFoundNamespaces = namespaces.Except(foundAssemblies.SelectMany(a => a.GetTypes().Select(t => t.Namespace))).ToList();
var types = new List<TypeInfo>();
foreach(var assembly in foundAssemblies)
{
var foundTypes = assembly.DefinedTypes
.Where(x => namespaces.Contains(x.Namespace) && !x.IsInterface && !x.IsAbstract && !x.IsNested)
.ToArray();
types.AddRange(foundTypes);
}
foreach(var notFound in notFoundNamespaces)
{
try
{
var assemblyName = notFound?.Split('.')[0];
var assembly = Assembly.Load(assemblyName ?? "");
var foundTypes = assembly.DefinedTypes
.Where(x => x.Namespace == notFound && !x.IsInterface && !x.IsAbstract && !x.IsNested)
.ToArray();
types.AddRange(foundTypes);
}
catch { }
}
if(types.Count == 0) return serviceCollection;
foreach(var type in types)
{
serviceCollection.TryAdd(new ServiceDescriptor(type.AsType(), type.AsType(), lifetime));
}
return serviceCollection;
}
/// <summary>
/// Adds services from a single namespace to the DI container.
/// </summary>
/// <param name="serviceCollection">The extended IServiceCollection</param>
/// <param name="namespace">The namespace to scan</param>
/// <param name="lifetime">The lifetime of the services</param>
/// <returns></returns>
public static IServiceCollection AddServicesInNamespace(this IServiceCollection serviceCollection,
string @namespace, ServiceLifetime lifetime = ServiceLifetime.Transient)
{
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
var assembly = assemblies.FirstOrDefault(x => x.DefinedTypes.Any(typeInfo => typeInfo.Namespace == @namespace));
var types = assembly?.DefinedTypes
.Where(x => x.Namespace == @namespace && !x.IsInterface && !x.IsAbstract && !x.IsNested)
.ToArray();
if(types == null || types.Length == 0) return serviceCollection;
foreach(var type in types)
{
serviceCollection.TryAdd(new ServiceDescriptor(type.AsType(), type.AsType(), lifetime));
}
return serviceCollection;
}
/// <summary>
/// Adds a single class as a service to the DI container.
/// </summary>
/// <param name="serviceCollection">The extended IServiceCollection</param>
/// <param name="serviceClassType">The class type to add</param>
/// <param name="lifetime">The lifetime of the service</param>
/// <returns></returns>
public static IServiceCollection CreateServiceFromClass(this IServiceCollection serviceCollection,
Type serviceClassType, ServiceLifetime lifetime = ServiceLifetime.Transient)
{
serviceCollection.TryAdd(new ServiceDescriptor(serviceClassType, serviceClassType, lifetime));
return serviceCollection;
}
/// <summary>
/// Adds multiple classes as services to the DI container.
/// </summary>
/// <param name="serviceCollection">The extended IServiceCollection</param>
/// <param name="serviceClassTypes">A list of class types</param>
/// <param name="lifetime">The lifetime of the services</param>
/// <returns></returns>
public static IServiceCollection CreateServiceFromClasses(this IServiceCollection serviceCollection,
IEnumerable<Type> serviceClassTypes, ServiceLifetime lifetime = ServiceLifetime.Transient)
{
foreach(var serviceClassType in serviceClassTypes)
{
serviceCollection.TryAdd(new ServiceDescriptor(serviceClassType, serviceClassType, lifetime));
}
return serviceCollection;
}
/// <summary>
/// Adds services based on a type that implements an interface, without adding the interface itself.
/// </summary>
/// <typeparam name="TType">The extended interface</typeparam>
/// <param name="serviceDescriptors">The extended IServiceCollection</param>
/// <param name="lifetime">The lifetime of the services</param>
/// <returns></returns>
public static IServiceCollection AddServicesWithType<TType>(this IServiceCollection serviceDescriptors,
ServiceLifetime lifetime = ServiceLifetime.Transient)
{
var assembly = typeof(TType).Assembly;
var types = assembly.DefinedTypes
.Where(x => typeof(TType).IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract)
.ToArray();
if(types.Length == 0) return serviceDescriptors;
foreach(var type in types)
{
serviceDescriptors.TryAdd(new ServiceDescriptor(type.AsType(), type.AsType(), lifetime));
}
return serviceDescriptors;
}
}
}

View File

@ -1,14 +1,18 @@
using Medusa.Core.Attributes;
using Microsoft.AspNetCore.Hosting.Server;
using Microsoft.AspNetCore.Hosting.Server.Features;
using System.Xml.Linq;
namespace Medusa.Core.Handlers.Boot
{
[Handler("services", "get")]
public class GetServicesHandler(ILogger<GetServicesHandler> logger, XDocument body) : IHandler
public class GetServicesHandler(IServer server, ILogger<GetServicesHandler> logger, XDocument body) : IHandler
{
private readonly IServer _server = server;
private readonly ILogger<GetServicesHandler> _logger = logger;
private readonly XDocument _body = body;
private const string CommonUrl = "http://localhost:5293/service/services/";
private const string CommonUrl = "http://127.0.0.1:8083/";
private string listeningAddress = "http://127.0.0.1:8083";
public Task<XDocument> HandleAsync(string model)
{
@ -22,6 +26,9 @@ namespace Medusa.Core.Handlers.Boot
case "MDX":
AddMdxServices(services);
break;
case "M39":
AddM39Services(services);
break;
}
var document = new XDocument(new XElement("response", services));
@ -53,14 +60,14 @@ namespace Medusa.Core.Handlers.Boot
services.Add(new XElement("item", new XAttribute("name", "keepalive"),
new XAttribute("url",
"http://127.0.0.1/keepalive?pa=127.0.0.1&ia=127.0.0.1&ga=127.0.0.1&ma=127.0.0.1&t1=2&t2=10")));
"http://127.0.0.1:8083/keepalive?pa=127.0.0.1&ia=127.0.0.1&ga=127.0.0.1&ma=127.0.0.1&t1=2&t2=10")));
return services;
}
private static void AddKfcServices(XElement services)
{
const string sdvxurl = "http://127.0.0.1/service/services/sdvx";
const string sdvxurl = $"{CommonUrl}";
string[] kfcServices = [
"local", "local2", "lobby", "slocal", "slocal2", "sglocal", "sglocal2", "lab", "globby",
"slobby", "sglobby"
@ -72,11 +79,20 @@ namespace Medusa.Core.Handlers.Boot
private static void AddMdxServices(XElement services)
{
const string mdxurl = "http://127.0.0.1/service/services/ddr";
const string mdxurl = $"{CommonUrl}";
string[] mdxServices = ["local"];
foreach(string service in mdxServices)
services.Add(new XElement("item", new XAttribute("name", service), new XAttribute("url", mdxurl)));
}
private static void AddM39Services(XElement services)
{
const string m39url = $"{CommonUrl}";
string[] m39Services = ["local"];
foreach(string service in m39Services)
services.Add(new XElement("item", new XAttribute("name", service), new XAttribute("url", m39url)));
}
}
}

View File

@ -16,9 +16,9 @@ namespace Medusa.Core.Handlers.Common
new XElement("pcbtracker",
new XAttribute("status", "0"),
new XAttribute("expire", "1200"),
new XAttribute("ecenable", "1"),
new XAttribute("eclimit", "2000"),
new XAttribute("limit", "2000"),
new XAttribute("ecenable", "0"),
new XAttribute("eclimit", "0"),
new XAttribute("limit", "0"),
new XAttribute("time", DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString())));
var document = new XDocument(new XElement("response", pcbTracker));

View File

@ -1,12 +1,14 @@
using Medusa.Core.Attributes;
using Medusa.Core.Services;
using System.Xml.Linq;
namespace Medusa.Core.Handlers.Common.Card
{
[Handler("cardmng", "getrefid")]
public class GetRefIdCardManagmentHandler(XDocument body) : IHandler
public class GetRefIdCardManagmentHandler(ICardService cardService, XDocument body) : IHandler
{
private readonly XDocument _body = body;
private readonly ICardService _cardService = cardService;
public Task<XDocument> HandleAsync(string model)
{
@ -16,10 +18,12 @@ namespace Medusa.Core.Handlers.Common.Card
var cardId = cardManagement.Attribute("cardid")?.Value;
var password = cardManagement.Attribute("passwd")?.Value;
InquireCardManagmentHandler.CardIds.Add((cardId, password));
var konamiId = _cardService.ConvertUidToKonamiId(cardId);
InquireCardManagmentHandler.CardIds.Add((konamiId, cardId, password));
}
var getRefId = new XElement("cardmng", new XAttribute("status", "0"), new XAttribute("refid", "00000000000"), new XAttribute("dataid", "000000000000000"));
var getRefId = new XElement("cardmng", new XAttribute("status", "0"), new XAttribute("refid", "675678776"), new XAttribute("dataid", "87656787"));
var document = new XDocument(new XElement("response", getRefId));

View File

@ -1,29 +1,45 @@
using Medusa.Core.Attributes;
using Medusa.Core.Services;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace Medusa.Core.Handlers.Common.Card
{
[Handler("cardmng", "inquire")]
public class InquireCardManagmentHandler(XDocument body) : IHandler
public class InquireCardManagmentHandler(ICardService cardService, XDocument body) : IHandler
{
private readonly XDocument _body = body;
private readonly ICardService _cardService = cardService;
public static List<(string cardId, string pincode)> CardIds = [];
public static List<(string konamiId, string cardId, string pincode)> CardIds = [];
public Task<XDocument> HandleAsync(string model)
{
var cardId = _body.Root?.Element("cardmng")?.Attribute("cardid")?.Value;
var existingCard = CardIds.FirstOrDefault(x => x.cardId == cardId);
if (string.IsNullOrEmpty(cardId))
{
var noCardId = new XElement("cardmng", new XAttribute("status", "111"));
return Task.FromResult(new XDocument(new XElement("response", noCardId)));
}
var konamiId = _cardService.ConvertUidToKonamiId(cardId);
if (string.IsNullOrEmpty(konamiId))
{
var noKonamiId = new XElement("cardmng", new XAttribute("status", "111"));
return Task.FromResult(new XDocument(new XElement("response", noKonamiId)));
}
var cardManagment = new XElement("cardmng", new XAttribute("binded", "1"), new XAttribute("dataid", "0000000000000000"),
var existingCard = CardIds.FirstOrDefault(x => x.cardId == cardId && x.konamiId == konamiId);
var cardManagment = new XElement("cardmng", new XAttribute("binded", "1"), new XAttribute("dataid", "675678776"),
new XAttribute("exflag", "1"), new XAttribute("expired", "0"), new XAttribute("newflag", "0"),
new XAttribute("refid", "0000000000000000"), new XAttribute("status", "0"));
new XAttribute("refid", "87656787"), new XAttribute("status", "0"));
var document = new XDocument(new XElement("response", cardManagment));
if (existingCard is (null, null))
if (existingCard is (null, null, null))
{
cardManagment = new XElement("cardmng", new XAttribute("status", "112"));
document = new XDocument(new XElement("response", cardManagment));

View File

@ -16,7 +16,7 @@ namespace Medusa.Core.Handlers.Common
public Task<XDocument> HandleAsync(string model)
{
var port = serverAddressesFeature?.Addresses?.FirstOrDefault(x => x.StartsWith("http://"))?.Split(":")[2] ?? "5293";
var port = "5293";
var facility = new XElement("facility",
new XAttribute("status", "0"));

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ActiveDebugProfile>http</ActiveDebugProfile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,196 @@
using Medusa.Core.Utils;
using System.Text;
using static System.Runtime.InteropServices.JavaScript.JSType;
namespace Medusa.Core.Services
{
public class CardService : ICardService
{
private const string Alphabet = "0123456789ABCDEFGHJKLMNPRSTUWXYZ";
private readonly byte[] RawKey = Encoding.ASCII.GetBytes("?I'llB2c.YouXXXeMeHaYpy!");
private readonly DESEncryption _desEncryption;
private readonly ILogger<CardService> _logger;
public CardService(ILogger<CardService> logger)
{
var encryptionKey = RawKey.Select(x => (byte)(x * 2)).ToArray();
_desEncryption = new DESEncryption(encryptionKey);
_logger = logger;
}
public string ConvertKonamiIdToUid(string konamiId)
{
if(konamiId.Length != 16)
{
_logger.LogError("Invalid Konami ID length must be 16 characters");
return string.Empty;
}
int cardType = konamiId[14] == '1' ? 1 : konamiId[14] == '2' ? 2 : -1;
if(cardType == -1)
{
_logger.LogError("Invalid Konami ID");
return string.Empty;
}
var card = konamiId.Select(k => (byte)Alphabet.IndexOf(k)).ToArray();
if(card[11] % 2 != card[12] % 2 || card[13] != (card[12] ^ 1) || card[15] != CalculateChecksum(card))
{
_logger.LogError("Invalid card data");
return string.Empty;
}
for(int i = 13; i > 0; i--)
{
card[i] ^= card[i - 1];
}
card[0] ^= (byte)cardType;
var packed = Pack5(card.Take(13).ToArray()).Take(8).ToArray();
var decrypted = _desEncryption.Decrypt(packed).Reverse().ToArray();
string cardId = BitConverter.ToString(decrypted).Replace("-", "").ToUpper();
if(cardType == 1 && !cardId.StartsWith("E004") || cardType == 2 && cardId[0] != '0')
{
_logger.LogError("Invalid card `type");
return string.Empty;
}
return cardId;
}
public string ConvertUidToKonamiId(string uid)
{
if(uid.Length != 16)
{
_logger.LogError("Invalid UID length must be 16 characters");
return string.Empty;
}
int cardType = uid.StartsWith("E004") ? 1 : uid[0] == '0' ? 2 : -1;
if(cardType == -1)
{
_logger.LogError("Invalid UID prefix");
return string.Empty;
}
var konamiId = Enumerable.Range(0, uid.Length / 2)
.Select(x => Convert.ToByte(uid.Substring(x * 2, 2), 16))
.ToArray();
konamiId = konamiId.Reverse().ToArray();
if(konamiId.Length != 8)
{
_logger.LogError("Invalid UID length. Must be 8 bytes");
return string.Empty;
}
var encryptedId = _desEncryption.Encrypt(konamiId);
if(encryptedId.Length != 8)
{
_logger.LogError("Invalid ID length. Must be 8 bytes");
return string.Empty;
}
var unpackedId = Unpack5(encryptedId);
unpackedId = unpackedId.Take(13).Concat(new byte[] { 0, 0, 0 }).ToArray();
if(unpackedId.Length != 16)
{
_logger.LogError("Invalid unpacked ID length. Must be 16 bytes");
return string.Empty;
}
unpackedId[0] ^= (byte)cardType;
unpackedId[13] = 1;
for(int i = 1; i < 14; i++)
{
unpackedId[i] ^= unpackedId[i - 1];
}
unpackedId[14] = (byte)cardType;
unpackedId[15] = (byte)CalculateChecksum(unpackedId);
return string.Concat(unpackedId.Select(u => Alphabet[u]));
}
private static byte[] Unpack5(byte[] data)
{
// Convert each byte to an 8-bit binary string and concatenate them
var binaryString = new StringBuilder();
foreach(byte b in data)
{
binaryString.Append(Convert.ToString(b, 2).PadLeft(8, '0'));
}
// Ensure the total length is a multiple of 5 by padding with zeroes if necessary
int remainder = binaryString.Length % 5;
if(remainder != 0)
{
binaryString.Append(new string('0', 5 - remainder));
}
// Convert the 5-bit chunks back into bytes
var result = new List<byte>();
for(int i = 0; i < binaryString.Length; i += 5)
{
string chunk = binaryString.ToString(i, 5);
result.Add(Convert.ToByte(chunk, 2));
}
return [.. result];
}
private static byte[] Pack5(byte[] data)
{
var packed = new StringBuilder();
foreach(byte b in data)
{
packed.Append(Convert.ToString(b, 2).PadLeft(5, '0'));
}
// Padding if not a multiple of 8
if(packed.Length % 8 != 0)
{
packed.Append('0', 8 - packed.Length % 8);
}
return Enumerable.Range(0, packed.Length / 8)
.Select(i => Convert.ToByte(packed.ToString().Substring(i * 8, 8), 2))
.ToArray();
}
private static byte CalculateChecksum(byte[] data)
{
int checksum = 0;
for(int i = 0; i < 15; i++)
{
if(i >= data.Length)
{
break;
}
checksum += data[i] * ((i % 3) + 1);
}
// Reduce the checksum to fit within 5 bits
while(checksum > 31)
{
checksum = (checksum >> 5) + (checksum & 31);
}
// Return the checksum as a byte
return (byte)checksum;
}
}
}

Some files were not shown because too many files have changed in this diff Show More